The development of new software poses a great challenge to all involved. The more complex the application is that is to be developed, the more difficult it is to make the development process clearand manageable in its complexity. For this reason, special step-by-step plans, also known as process models, are usually used. These subdivide the entire development process into several manageable phases, which are limited in time and content. One of the best-known models, which is particularly oriented to risk reduction, is the so-called spiral model from 1986.
- What is the spiral model?
- Explanation of the spiral model: How does it work?
- Graphic illustration of the spiral model according to Boehm
- Advantages and disadvantages of the spiral model for software development
What is the spiral model?
After Barry W. Boehm first presented his concept for the development of complex applications in 1986, the American software engineer published his model in 1988 in the publication “A Spiral Model of Software Development and Enhancement” in a more comprehensive framework. In the publication, he describes the spiral model as a possible alternative to the previously established waterfall model, which also served as a basis for experience. In contrast to the waterfall model, the spiral model does not assume that the tasks of software development are designed linearly – but sees them as iterative tasks. In the spiral model, the phases are therefore not run through once step-by-step, but several times in a spiral shape. Although this cyclical repetition means that the project approaches the goals set comparatively slowly, the risk of a failed development process is decisively minimized thanks to the regular controls.
The spiral model is a software development process model developed by Barry W. Boehm in 1986. It is based on the assumption that the development of applications is an iterative cycle that is repeated until the set goal is reached. The spiral model minimizes the risk of failure in large software projects considerably by regularly assessing risks and checking the intermediate product on a regular basis.
Explanation of the spiral model: How does it work?
Problems within the development process can have very different effects on the overall project. Increasing costs, additional effort, and a delayed release are to be expected in any case – factors that can quickly become a threat to your existence, especially for smaller companies. With its incremental, iterative approach – which also provides for regular risk assessment in the form of prototype drafts, analyses, or simulations – the spiral model is intended to prevent scenarios like these or at least mitigate their negative consequences. The software project continuously runs through the spiral model cycle up to the final status, which basically comprises the following four steps:
Phase 1: Determine objectives and alternatives and describe framework conditions
A typical cycle in a spiral model starts with considering which objectives should be associated with the individual steps of software development. This can be, for example, improving the performance or expanding the functions. At the same time, it is necessary to define alternatives for implementation (e.g. design A vs. design B) and to determine the framework conditions as well as costs or time expenditure.
Phase 2: Identifying and resolving the risks
The next step is to evaluate the alternatives, whereby the target and framework conditions serve as decisive reference values. In this phase of the spiral model cycle, areas of uncertainty should be identified that pose a significant risk to the progress of the software project. This will be followed by the development of the least risky and most cost-effective strategy, using methods such as prototyping, simulations, benchmark tests, analytical models, and user surveys.
Phase 3: Developing and testing the intermediate status
Following the risk analysis, the actual development of the software continues, which is always characterized by the relative residual risks. If, for example, performance or user interface risks or internal interface control risks strongly dominate the development process, an evolutionary development strategy is the first option, in which the project is specified more precisely and prototypes are optimized. The actual code is written and tested several times until the desired result is achieved, which then serves as a low-risk basis for further development steps.
Phase 4: Planning the next cycle
Once a cycle is completed, the planning of the next cycle begins. On the one hand, this can be the regular continuation of the project if the objective of the single cycle could be achieved and the definition of the next objective is pending. On the other hand, it can also be a matter of finding solutions if the previous development step was faulty. For example, the existing strategy can be replaced by one of the previously defined alternatives or a new alternative. With this you can then start a new attempt to reach the given goal.
The spiral model (software development) is a generic process model. The four phases only set out the basic objectives of a cycle, but do not have to be reflected in each rotation. Their order is also not strictly determined by the spiral model. For this reason, the model can be combined with other process models at any time.
Graphic illustration of the spiral model according to Boehm
Part of the publication from 1988 is, among other things, a graphic representation of the spiral model, which exemplarily shows what the spiral-shaped, cycle-supported process of software development looks like. In this sketch, each turn of the spiral embodies a completed cycle, whereby four different quadrants are always passed one after the other, which in this case represent the four possible phases of the model. As the size of the spiral increases, so does the progress made, as well as the approval by review (X axis) and development costs (Y axis).
Advantages and disadvantages of the spiral model for software development
Spiral software development is particularly popular for large, complex projects where budget control is a priority for clients and developers. In this case, all participants benefit from the central role of risk analysis, which probably represents the greatest advantage of the spiral model over other procedural models. The regular assessment of risks pays off in particular when novel technical environments are used, which are usually associated with a particular risk potential due to a lack of empirical values.
The cyclic structure is also one of the model's great strengths: conflicts between the design and the technical requirements placed on the software are virtually eliminated thanks to regular checks. In addition, feedback can be obtained and taken into account at any time due to the spiral-shaped progress. In this way, both customers and users can be integrated into the development process right from the start. In order to be able to enjoy these advantages, however, a very active and complex management of the project is a prerequisite, in which the individual cycles are continuously and carefully controlled and documented.
The fact that the many small steps in software development according to the spiral model are not always advantageous has been proven by the fact that – despite versatile tests – it is not uncommon for unfinished program parts to find their way into the production system. As a consequence, there is always the danger that any errors or conceptual weaknesses will also affect the end product. In addition, there can be delays in development at any time if important decisions have to be made within a cycle or when planning the subsequent cycle that affect further action.
Here are the advantages and disadvantages of the spiral model in a tabular overview:
|Flexible, generic model||High management effort required|
|Early integration of clients and users possible||Regular decisions can delay the development process|
|Periodic, risk-driven review||Due to the structured development process, errors and conceptual inconsistencies easily find their way into the end product|
|Perfect coordination between technical requirements and design||Know-how in risk analysis and risk management essential, but often not available|
|Maximum control over costs, resources, and quality of the software project||Unsuitable for smaller projects with manageable risk|
|Well suited for new technical environments|