Spiral

At the other end of the sophistication scale from the code-and-fix model is the spiral model. The spiral model is a risk-oriented lifecycle model that breaks a software project up into miniprojects. Each miniproject addresses one or more major risks until all the major risks have been addressed. The concept of "risk" is broadly defined in this context, and it can refer to poorly understood requirements, poorly understood architecture, potential performance problems, problems in the underlying technology, and so on. After the major risks have all been addressed, the spiral model terminates as a waterfall lifecycle model would. Figure 7-4 on the next page illustrates the spiral model, which some people refer to affectionately as "the cinnamon roll."

image with no caption

Figure 7-4 is a complicated diagram, and it is worth studying. The basic idea behind the diagram is that you start on a small scale in the middle of the spine, explore the risks, make a plan to handle the risks, and then commit to an approach for the next iteration. Each iteration moves your project to a larger scale. You roll up one layer of the cinnamon roll, check to be sure that it's what you wanted, and then you begin work on the next layer.

Each iteration involves the six steps shown in bold on the outer edges of the spiral:

  1. Determine objectives, alternatives, and constraints

  2. Identify and resolve risks

  3. Evaluate alternatives

  4. Develop the deliverables for that iteration, and verify that they are correct

  5. Plan the next iteration

  6. Commit to an approach for the next iteration (if you decide to have one)

In the spiral model, the early iterations are the cheapest. You spend less developing the concept of operation than you do developing the requirements, and less developing the requirements than you do developing the design, implementing the product, and testing it.

Don't take the diagram more literally than it's meant to be taken. It isn't important that you have exactly four loops around the spiral, and it isn't important that you perform the six steps exactly as indicated, although that's usually a good order to use. You can tailor each iteration of the spiral to suit the needs of your project.

The spiral model. In the spiral model, you start small and expand the scope of the project in increments. You expand the scope only after you've reduced the risks for the next increment to an acceptable level.

Source: Adapted from "A Spiral Model of Software Development and Enhancement" (Boehm 1988).

Figure 7-4. The spiral model. In the spiral model, you start small and expand the scope of the project in increments. You expand the scope only after you've reduced the risks for the next increment to an acceptable level.

You can combine the model with other lifecycle models in a couple different ways. You can begin your project with a series of risk-reduction iterations; after you've reduced risks to an acceptable level, you can conclude the development effort with a waterfall lifecycle or other non-risk-based lifecycle. You can incorporate other lifecycle models as iterations within the spiral model. For example, if one of your risks is that you're not sure that your performance targets are achievable, you might include a prototyping iteration to investigate whether you can meet the targets.

CROSS-REFERENCE

For more on risk management, see Chapter 5, Chapter 5.

One of the most important advantages of the spiral model is that as costs increase, risks decrease. The more time and money you spend, the less risk you're taking, which is exactly what you want on a rapid-development project.

The spiral model provides at least as much management control as the traditional waterfall model. You have the checkpoints at the end of each iteration. Because the model is risk oriented, it provides you with early indications of any insurmountable risks. If the project can't be done for technical or other reasons, you'll find out early—and it won't have cost you much.

The only disadvantage of the spiral model is that it's complicated. It requires conscientious, attentive, and knowledgeable management. It can be difficult to define objective, verifiable milestones that indicate whether you're ready to add the next layer to the cinnamon roll. In some cases, the product development is straightforward enough and project risks are modest enough that you don't need the flexibility and risk management provided by the spiral model.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.12.207