In large-scale, complex projects, there can be a number of unknowns that can pose a risk to success. Because of this, it can be helpful to assess and manage risk as often as possible. One such model that has this factor built into its structure is the spiral model.

Assumptions

  • Understanding of SDLC phases

What is the Spiral Model?

The spiral model is a combination of the iterative model, prototyping, and the waterfall model. Each ring of the spiral, called a phase, takes on a waterfall-like approach for a portion of the project.

The spiral model is unique in that it is risk-driven. This allows risk to be tracked and analyzed throughout the project, unlike other models that assess risk once before development begins. Risk is managed and resolved by developing a prototype of the functionality in each phase.

<div style="width:100%; margin:auto;text-align:center;"> <img src="https://www.devmaking.com/img/topics/sdlc/SDLC_spiral_01.png" alt="sprial SDLC model" style="max-width:95%;">

</div>

The four quadrants of the spiral model represent the four major phases of development:

  1. Determine objectives: In this quadrant, the team works with the client to develop a list of requirements and identify objectives for the current phase of development. This also includes compiling a list of alternative objectives should unforeseen difficulties be encountered.

  2. Identify risks and resolutions: Once all objectives and alternatives have been compiled, the best solution is presented. The risk associated with the objective is managed by developing a prototype, that puts the new features on display and acts as a proof of concept for the operational prototype.

  3. Develop and test: After the prototype has been established, the objectives are developed into application features and the resulting software version is tested and made available.

  4. Review planning: Now that the new features are available, the development team meets again with the client to prepare for the next phase of development, where the client reviews the current product, and the team makes note of any desired changes. At the end of this phase, the cycle begins again at step 1 until a finished product is made.

Advantages of the Spiral Model

  • Manages risk well; when there are many unknown variables in a project, continuous risk management helps mitigate change of failures.

  • Easy to integrate changing requirements into the software.

  • Can handle complex projects better than the waterfall model.

  • A working model can be shown early in development, allowing the client to see its progression often.

Disadvantages of the Spiral Model

  • Overly cumbersome for small projects.

  • Expensive to implement; the resources required to follow this model are much greater than others, which further speaks to its ineffectiveness with smaller projects.

  • Difficult to manage effectively; due to the complexity of the model compared to others, it is recommended for more experienced teams.

  • The number of spirals is not known, causing difficulty in determining how long the project will continue for, especially early on in the process.

When to use the Spiral Model

  • When developing software with high-risk components associated.
  • More often suited for large, complex projects.
  • Requirements are not explicitly defined at the beginning of the project.
  • If the client does not have an exhaustive list of requirements at the beginning of the project, but more of a general idea of what they would like to see.