Waterfall model is one of the oldest and simplest models designed and followed during software development process. But the model has its own disadvantages such as there is no fair division of phases in the life cycle, not all the errors/problems related to a phase are resolved during the same phase, instead all those problems related to one phase are carried out in the next phase and are needed to be resolved in the next phase, this takes more time for the next phase to solve them. The risk factor is the most important part, which affects the success rate of the software developed by following this model.
In order to overcome the cons of the above model, it was necessary to develop a new Software Development Model, which could help in ensuring the success of a software project. One such model was developed which incorporated the common methodologies followed in the waterfall model, but it also eliminated almost every possible/known risk factors from it. This model is referred to as the “Spiral Model” or “Boehm’s Model”.
There are four phases in this model which are: Planning, Evaluation, Risk Analysis and Engineering. These four phases are iteratively followed one after another in order to eliminate all the problems, which were faced in the waterfall model. Iterating the phases helps in understating the problems associated with a phase and dealing with those problems when the same phase is repeated next time, planning and developing strategies to be followed while iterating through the phases. The phases are:
- Plan: In this phase, the objectives, alternatives and constraints of the project are determined and are documented. The objectives and other specifications are fixed
- Risk Analysis: This phase is the most important part of spiral model. In this phase, all possible (and available) alternatives, which can help in developing a cost-effective project are analyzed and strategies are decided so as to use them. This phase has been added specially in order to identify and resolve all the possible risks in the project development. If risks indicate any kind of uncertainty in requirements, prototyping may be used to proceed with the available data and find out a possible solution in order to deal with the potential changes in the requirements.
- Engineering: In this phase, the actual development of the project is carried out. The output of this phase is passed through all the phases iteratively in order to obtain improvements in the same.
- Customer Evaluation: In this phase, developed product is passed on to the customer in order to receive customer’s comments and suggestions which can help in identifying and resolving potential problems/errors in the software developed. This phase is very much similar to ‘testing’ phase.
The process progresses in spiral sense to indicate the iterative path followed, progressively a more complete software is built as we go on iterating through all four phases. The first iteration in this model is considered to be most important, as in the first iteration, almost all possible risk factors, constraints, requirements are identified and in the next iterations, all known strategies are used to bring up a complete software system. The radical dimensions indicate evolution of the product towards a complete system.
However, as every system has its own pros and cons, the spiral model does have its pros and cons too. As this model is developed to overcome the disadvantages of the waterfall model, to follow spiral model, highly skilled people in the area of planning, risk analysis and mitigation, development, customer relation etc., are required. This along with the fact that, the process needs to be iterated more than once, demands more time and is somehow an expensive task.