The spiral model is a software development approach that can be considered as a response to the drawbacks of the waterfall model. The spiral model describes the life cycle of a software by means of spirals, which are repeated until the finished product can be delivered. The spiral model is also referred to as an incremental model. The product is continually worked on and improvements often take place in very small steps.
A key feature of the spiral model is the minimization of risks in software development, which could result in an increase in overall costs, more effort, and a delayed release. These risks are countered by the incremental approach by first making prototypes, which then go through the phases of software development at least once. The spiral model is generic and can be combined with other classical and agile development methods, which is why it is also referred to as a second-order model.
The spiral model was proposed by Barry W. Boehm in his essay “A Spiral Model of Software Development and Enhancement.” At this time, the prevailing waterfall model and associated drawbacks were discussed frequently. In contrast to other models such as “code and fix” or the “waterfall model,” it is risk-driven. The identification and resolution of risks plays an important role in different project spirals after the objectives and conditions have been defined. The focus is on possible factors that can cause uncertainties for the software or the entire project. If the risks can be controlled in a cost-effective way, there is nothing which prevents the successful completion of the project, according to the assumption. Approaches to minimizing these risks are, for example, prototypes, simulations, benchmark tests or interviews with users. For certain types of risks, the entire procedure can even be revised and structured differently. Management intervention is possible in every project phase and other development approaches can be adapted.
The spiral model is characterized by the following cycles (also quadrants:
The most important driving force of the spiral model is the risk analysis and assessment. Any risk that threatens the project should be identified from the beginning. The progress of the project is decisively dependent on how risks can be eliminated. The project is considered successful only once there are no risks. The purpose of the cycle is to produce a continuously improving product. The software or application is constantly refined. The spiral model is incremental, but not necessarily iterative. Iterations occur only when risks, errors or conflicts threaten the project. Then the product has to go through one cycle again, called an iteration.
In contrast to a sequential model (for example, the waterfall model) arranged in successive phases, the spiral model sketches the life cycle of a software by means of spirals that have to be run through. Thus, this approach resembles prototyping more than is the case with classical approaches. The spiral model is supposed to avoid the disadvantages of other models and emphasize the advantages. By focusing on minimizing risk, this model has a financial component that can be relevant to decision-makers. By means of customer discussions, analyses, and feasibility studies, large-scale projects can be implemented and their economic impact can be monitored. To what extent agile methods like scrum, extreme programming or DevOps are better choices depend on many different factors such as project scope, budget or the required level of support and maintenance. The more flexibility is required, the more agile methods will be considered.