Software Development; Software Engineering
Spiral development is a software development methodology that combines elements of the waterfall, iterative, and incremental development methodologies while focusing on risk management. Spiral development is used to develop large, mission-critical systems that face high amounts of risk.
Spiral development is a software development methodology that combines elements of several other development methodologies. It incorporates the linear structure of waterfall development with the iterative processes of iterative and incremental development. Elements of the prototyping methodology can also be used. The main emphasis of spiral development is on risk analysis and management in the design and implementation of software architecture.
At the core of the spiral development methodology are four phases. These phases are repeated in every iteration, or spiral, of a project. However, the actual order and specific content of each phase can vary between projects, and they may be given various names. A common form of the spiral model specifies the four phases as planning, risk analysis, engineering, and evaluation. During the planning (or identification) phase, requirements are identified and refined. This is the stage in which system developers and analysts communicate closely with customers or other stakeholders.
During the risk analysis phase, potential risks are identified. Alternate solutions and other actions designed to minimize risks are developed. Types of risks considered include the risks of using new technologies and other technical aspects, risks that negatively affect the project schedule, financial risks, and market-related or other business-related risks. This phase often requires balancing various risk factors to achieve the greatest risk reduction possible in each situation.
Development and testing of the system occurs during the engineering phase. During the first spiral a proof of concept is developed. This allows system designers, developers, business analysts, and other stakeholders to confirm the feasibility of the proposed design. During subsequent spirals, new releases are developed depending on the specific needs of a given system. These may include prototypes, modules, and builds.
Spiral development's greatest strength is its focus on risk management. Unlike in other software development methodologies, risk management is conducted in every iteration, increasing opportunities to minimize threats to a project's success. This makes the spiral model a good choice for medium to large mission-critical projects and those known to have a high amount of risk.
Spiral development also offers many of the same benefits as the methodologies it draws from. It retains the strong approval and documentation of the waterfall model. Like prototyping and iterative development, it provides deployable systems early in the development process. It can also adapt to changes in the project's requirements and greater end-user involvement relatively easily.
The main drawbacks of the spiral model are due to its complexity. Costs and overhead requirements tend to be high. The time involved may be lengthy, and a project's end may not be immediately clear. For this reason, small projects are usually not good candidates for spiral development. It is also important that project staff have experience in risk analysis and management, which may not be the case with all organizations. If risks are not properly identified and minimized, many of the model's benefits are lost.
Spiral development is most suited for projects that are mission critical, are large in scope, and have a substantial amount of risk. For example, a department store chain with five hundred locations in forty-three states might need to develop a new point-of-sale system to control more than 7,500 cash registers. The system would be used by over twenty-five thousand sales associates daily. It would need to connect all stores to one another and to the company's seven regional offices. The system must be secure and meet all legal requirements for handling consumer credit information. In addition, the project will be developed using several technologies that are being used by the IT department for the first time.
This project would be an excellent candidate for spiral development. The project is large, involving a large IT department, hundreds of locations, and affecting many stakeholders. The system is mission critical, as any problem with the point-of-sale system will negatively affect the company's core business operations. The project also faces substantial risk, including the use of new technologies.
In addition, many elements of the project would benefit from the strengths of the methodologies encapsulated in spiral development. As thousands of employees will need to use the system a daily, involving end users in the development process will be important. A project of this size and scope will likely have to deal changing requirements. Multiple releases will most likely be required to develop, test, evaluated, and deploy the final system. These needs can be met by the spiral model's combination of sequential and iterative methods.
All software development systems attempt to ensure that the development process is brought to a successful conclusion. Different methodologies, from traditional waterfall development to more recently developed models such as rapid application development (RAD) and extreme programming (XP), approach this problem in various ways. Spiral development is notable as a hybrid methodology incorporating elements from other approaches, with an added focus on risk management. Its strengths and flexibility mean it will remain relevant as new innovations in software development project management occur.
—Maura Valentino, MSLIS
Bell, Michael. Incremental Software Architecture: A Method for Saving Failing IT Implementations. John Wiley & Sons, 2016.
Friedman, Daniel P., and Mitchell Wand. Essentials of Programming Languages. 3rd ed., MIT P, 2008.
Jayaswal, Bijay K., and Peter C. Patton. Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software. Prentice Hall, 2007.
MacLennan, Bruce J. Principles of Programming Languages: Design, Evaluation, and Implementation. 3rd ed., Oxford UP, 1999.
Scott, Michael L. Programming Language Pragmatics. 4th ed., Elsevier, 2016.
Van Roy, Peter, and Seif Haridi. Concepts, Techniques, and Models of Computer Programming. MIT P, 2004.
Wysocki, Robert K. Effective Project Management: Traditional, Agile, Extreme. 7th ed., John Wiley & Sons, 2014.