The lack of the need for large material investments at the initial stage. The customer only needs to pay for the development of basic functionality. After that, he receives a product and can release it. The decision to continue the development will be made on the basis of feedback with real customers.
The possibility of timely receipt of feedback to quickly update the terms of technical assignment. Thanks to this approach, the probability of getting an unclaimed product is minimized.
Smaller error price. If any problems are detected in architecture, they can be corrected at a lower cost compared to the two previous models.
Each of the developers’ teams is engaged in the creation of individual functions. This can lead to an inconsistent implementation of the interface of PP. In order to avoid this situation, it is still necessary to accurately determine the final result at the stage of discussing the technical specifications.
Programmers can slow down the process of creating a product, postponing the setting of the main functions and unnecessarily fascinating in small details. Thus, it is necessary to focus on managing the development of software. For this reason, the project manager must exercise strict control over the actions of each team.
Such a model is best suited when working with projects for which the terms of reference are formed in the initial stages, and the PP itself should soon be launched on the market.
Iterative model (iterative model)
This software development technology implies that the customer may not understand which product he needs. In other words, it is not required to scrupulously prescribe a technical task from it.
The ability to quickly receive feedback through the production of the minimum product. Thus, developers can focus on the fundamental features of software and improve them, based on market standards and user reviews.
Thanks to the ongoing testing by users themselves, programmers can timely identify and level various errors.
Application at the start of databases or servers. The problem is that the databases are quite difficult to scale, and servers often do not withstand the load. Because of this, a situation may develop in which it will be necessary to redo the weighty part of the product.
Lack of a fixed budget and deadlines. The customer has no clear idea of what the final result should be and at what time the creation of the product needs to be completed.
This model will be preferable if it is assumed to work on a large -scale project with fuzzy requirements. In addition, an iterative option is suitable for tasks with an innovative approach, when the customer cannot know what happens in the end.
Spiral Model (spiral model)
When using a spiral model, the customer and performers perform a thorough analysis of the project risks and implement it with iterations. Each next stage is based on the previous one. At the same time, at the end of each iteration cycle, it is necessary to make a decision regarding whether the development will be carried out further.
The model began to be used back in 1988. It is similar to the incremental option, but here the emphasis is placed precisely on the assessment of all kinds of risks. Each new spiral cycle complicates the process more and more.
Focus on the analysis of risks.
The likelihood that the development is too fastened at the very initial stage.
Increased cost and duration of development.
Flexible approaches to software development
On the basis of the family of iterative models, an extremely common development option was created – Agile. This is rather an approach than a holistic methodology. The fact is that inside the project at different stages, the use of both iterative and cascading models is allowed.
The essence of this approach is to differentiate the development process on several separate tasks. Programmers can perform these tasks with a high level of independence from each other. Every day, team meetings (Scrum) are organized, within the framework of which the current state of the project is pronounced. Development is differentiated for several stages of sprints (Sprint). During the passage of these sprints, the developers must fulfill the set targets.
This approach is useful if the customer has many ideas, but at the start of work it still does not know which part of them will really be relevant. In addition, the customer may have new ideas directly in the process of implementing the project. The use of Agile also makes sense when working with large projects that are designed for a long life cycle. Such PP must be constantly adapted to changing market conditions.
The creation of software can be started without a detailed plan. It is only necessary to formulate several general ideas.
The customer can control even the smallest changes in the product and adjust it directly in the development process. This minimizes the risk of problems at the final stages.
Development does not require such large financial investments. In addition, thanks to short sprints, there is no need for a constant adaptation of the project to change market changes.
Due to the lack of a clear plan, a situation may be developed in which it will be quite problematic to give an adequate assessment of the budget and the time that will be required to implement the project.
Great risk of collapse at the start. Because of this, budget flexibility is required.
Within the framework of this approach, a number of all kinds of techniques, methodologies and techniques are used. We highlight some of them:
Scrum. Project participants are in constant interaction and discuss current progress.
Kanban. A virtual board with tasks is used. The sequence of performing such tasks is not determined.
Rup. The presence of clear stages of planning, clarification and construction of new software iteration.
Extreme Programming. Frequent updates of the product versions and finding the most high -speed solutions.
Each of the above methods involves a willingness to make adjustments and interaction with the customer. At the forefront, the development of useful software and self -organization of the project participants is put, while maintaining documentation and formal duties of the parties fading into the background.
Speaking of flexible methodologies, you should separately mention the so -called lean development by Lean. Its goal is to increase the level of effectiveness of the creation of the product and increase the effectiveness of all work processes. In other words, the development is organized in such a way that less money and time are spent on the implementation of the project.
The most important task in this case is the collection of the experimental team, as well as its subsequent training. In order to avoid various problems, it is necessary to make the most rational decisions, as well as timely discuss the current state of the project with the customer.