SPIRAL MODEL – DESIGN OF SOFTWARE DEVELOPMENT
The spiral model combines the idea of iterative development (prototyping) with the systematic, controlled aspects of the waterfall model. i.e. allows teams to adopt multiple models based on the risk patterns of the given project.
This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis. It allows incremental releases of the product or incremental refinement through each iteration around the spiral. The spiral model explicitly includes risk management within software development. Identifying major risks, both technical and managerial, and determining how to lessen the risk help keep the software development process under control. At each iteration around the cycle, the products are extensions of an earlier product. The spiral model allows for elements of the product to be added in when they become available or known. This assures that there is no conflict with previous requirements and design.
The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals.
i. Identification
This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase. This phase also includes understanding the system requirements by continuous communication
between the customer and the system analyst. At the end of the spiral, the product is deployed in the identified market.
ii. Design
The Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and the final design in the subsequent spirals.
iii. Construct or Build
The Construct phase refers to production of the actual software product at every spiral. In the baseline spiral, when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback.
Then in the subsequent spirals with higher clarity on requirements and design details a working model of the software called build is produced with a version number. These builds are sent to the customer for feedback.
iv. Evaluation and Risk Analysis
Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback. The following illustration is a representation of the Spiral Model, listing the activities in each phase.

Based on the customer evaluation, the software development process enters the next iteration and subsequently follows the linear approach to implement the feedback suggested by the customer. The process of iterations along the spiral continues throughout the life of the software.
Advantages of Spiral Model:
i. The high amount of risk analysis hence, avoidance of possible risk is certainly reduced.
ii. This model is good for large size and critical projects.
iii. In the spiral model, additional functionality can be added at a later date. I.e. can incorporate changes in user’s needs.
iv. It is more suited for high-risk projects, where business needs may differ from time to time basis
v. Useful in helping to select the best methodology to follow for development of a given software iteration, based on project risk.
vi. Can incorporate waterfall, prototype and incremental methodologies as special cases in the framework, and provide guidance as to which combination of these models’ best fits a given software iteration, based upon the type of project risk.
Disadvantages of Spiral Model:
i. It is certainly the costly model to use in terms of development
ii. The success of the entire project is dependent on the risk analysis phase thus, failure in this phase may damage entire project
iii. It is not appropriate for low-risk projects
iv. The big risk of this methodology is that it may continue indefinitely and never finish
v. Challenging to determine the exact composition of development methodologies to use for each iteration around the spiral.
vi. Highly customized to each project, thus quite complex, limiting reusability.
vii. A skilled and experienced project manager is required to determine how to apply it to any given project.
viii. There are no established controls for moving from one cycle to another. Without control, each cycle may generate more work for next cycle.
ix. There are no firm deadlines. Cycles continues with no clear termination conditions hence there is an inherent risk of not meeting budget or schedule.
x. Possibility exist that the project may ends up implemented following a waterfall framework.
Spiral Model Application situations where most appropriate
The Spiral Model is widely used in the software industry as it is in sync with the natural development process of any product, i.e. learning with maturity which involves minimum risk for the customer as well as the development firms.
i. When there is a budget constraint and risk evaluation is important.
ii. For medium to high-risk projects.
iii. Long-term project commitment because of potential changes to economic priorities as the requirements change with time.
iv. Customer is not sure of their requirements which is usually the case.
v. Requirements are complex and need evaluation to get clarity.
vi. New product line which should be released in phases to get enough customer feedback.
vii. Significant changes are expected in the product during the development cycle.
viii. Minimizing Resource consumption is not an absolute priority
ix. Project managers are skilled and experienced.
x. Project benefit from a mix of other development methodology.
xi. A high level of accuracy is essential.
