“A Spiral Model of Software Development and Enhancement” is a paper written by B. W. Boehm who has experience in software management in TRW Defense System Group. Paper mainly suggests using a risk oriented spiral software process model in more or less open ended, rapidly evolving, not easy to a-priori fully analyzable projects. Boehm’s ideas can be summarized as below.
Boehm suggests that, heavily documented, control freak, well structured software process models such as waterfall model may be appropriate in close ended and fully analyzable projects such as space missions, compiler generation and operation system designs. However, this model yields unnecessary and unusable documentation and over analysis, in situations in which the project itself is evolving or experimental.
As an example, I may use spiral model if I have idea of implementing a communication platform using Google’s WebRTC technology. WebRTC is not standardized yet and continuously changing, currently in alpha phase. Evolutionary model may not be feasible also, since I may not have a stable base to evolve, since as stated, WebRTC itself is rapidly changing. What will be more appropriate is, continuously monitoring uncertainty and taking action to handle that specific part.
Boehm’s each spiral cycle starts with discussion of cycle objectives. Areas of biggest uncertainty and sources of risks are spotted and worked on to determine a cost effective solution. Alternatives are investigated in terms of performance, functionality, design, reuse, code, cost etc.
Since process is risk driven, at any time, any of specification-oriented, prototype-oriented, simulation oriented, transform-oriented, or another software process model or even more, any mixture of these, can be applied, as long as they are able to reduce the overall biggest uncertainty.
Boehm’s each spiral cycle ends with a review done with stakeholders of the project. In this review, completed work of the cycle is discussed with next cycles issues and resource planning. This review step enables collaboration and synchronization between project management and business owner. Review may yield to spiral termination if no more improvement seems feasible.
As a result, Boehm suggests risk driven spiral model. In each pase of this model, we try to handle most uncertain and risky part of the problem. There may be overlapping partitions of analysis, design, prototyping, coding testing and validation, in no particular order. In each spiral phase, we aim to reduce remaining risk in a systematic manner, until spiral termination.