How is Scrum different from Spiral Methodology?
Every software product development undergoes a Software Development Life Cycle (or simply SDLC). The SDLC begins with the decision to create a product and ends with the final delivered product.
There are different types of SDLC models, each with a different set of strengths and weaknesses. However, each type of SDLC caters to the basic stages of a software product development: Planning, designing, development, testing and deployment.
Some of the SDLC models include Waterfall Model, V-Shaped Model, Evolutionary Prototyping Model, Spiral Method (SDM), Iterative and Incremental Method and Agile development.
Agile development further comprises SCRUM, Extreme Programming (XP), Crystal, Dynamic Systems Development Method (DSDM), Feature-Driven Development (FDD) and Lean Development.
Here we attempt to differentiate the Scrum method (Agile) from the Spiral Method.
Scrum is an Agile method that is structured on on iterative and incremental development. In Scrum, different time periods are defined, called sprints. Each sprint holds a set of requirements by the customers and the team aims at getting the deliverables for that specific sprint. The final product is the result of ongoing collaboration between cross-functional teams and the customers.
The spiral model combines the characteristics of two models: the prototyping model and the Waterfall model. This model is usually preferred for large scaled, expensive and complex projects. The spiral model makes use of many of the same stages as the waterfall model. It follows the same pattern divided in planning, risk assessment and the building of prototypes and simulations.
Type of Projects:
Each project calls for a different software development cycle with a unique pattern and entities involved over time.
The Agile method is usually preferred for projects that need smaller teams, involvement of senior developers, exhibit lower criticality and witness frequent change in requirements.
On the other hand, the spiral model is better for projects that may have higher criticality, the teams involve more junior developers, requirements do not change regularly, larger teams are hired and the project pattern requires discipline.
Scrum requires minimal planning. Since, it is an iterative process, each sprint comprises overview of last sprint and based on the best practices or failure learnt, the next sprint is planned. Before the project reaches completion, it undergoes multiple stages of planning.
The Spiral methodology requires a certain amount of planning before the project takes off. Requirements such as ‘BRS’ (Business Requirement Specifications) and ‘SRS’ (System Requirement Specifications) are collected in the planning phase.
In the Scrum method (Agile), the rules require minimum documentation mainly in the form of stories and product logs. For this reason, project documentation is easily managed.
In the Spiral Methodology, there is an excessive amount of documentation in intermediate stages. Generally, the list of documents includes requirements understanding document, finalized requirements, documents to highlight the risks and mitigation plans, test cases, test summary reports, defect reports and final features list.
With Scrum, the project can be broken down into smaller cycles called sprints, each sprint ending with a workable functionality. This makes Scrum suitable for projects of all sizes, large scaled or small.
SDM, on the other hand, may not be the best choice for small or low risk projects. Risk Management in Spiral requires specific expertise that can only be done through additional training. For this reason, Spiral can be expensive and not ideal for smaller projects.
Scrum involves iterative cycles known as sprints, where each sprint works towards the objective listed in the corresponding user story. This helps in early delivery of partial working solutions.
The Spiral model caters to both short term deliverables in which small deliverables are released on a frequent basis as well as more wide-ranging content deliverables that may take a longer period of time per release.
Scrum depends heavily on customer involvement and interaction. Each sprint ends with a meeting between the development team and the customer to assess the progress, the issues and how to steer the project in the future.
In the Spiral model, customers usually present their requirements at the start of the SDLC. At the evaluation stage, customers asses the software and provide their feedback or approval. For this reason, this model does not require continuous customer interaction
Have you employed any of the above methods in your software development projects? What other difference have you come across between both approaches?