How do you eat an elephant? One bite at a time! If the sequential, or waterfall, approach is reasonable and even successful for short projects or those with a small amount of novelty or risk, why not break down the lifecycle of a large project into a succession of small waterfall projects? In this way, you can address some requirements and some risks, design a little, implement a little, validate it, and then take on more requirements, design some more, build some more, validate, and so on, until you are finished. This is the iterative approach.
Figure 4-2 compares the iterative approach and the sequential approach. It shows four phases of the sequential process, then it shows what things look like in an iterative process for one development cycle ”from the initial idea to the point when a complete, stable, quality product is delivered to the end users.
The iterative technique is easy to illustrate but not very easy to achieve. It raises more questions than it answers:
How does this work converge to become a product? How do you avoid having each iteration start over from scratch?
How do you select what to do in each iteration? Which requirements do you consider, and which risks do you address?
How does this approach solve the major issues we identified earlier?
The Rational Unified Process answers these questions. We'll discuss the answers in the rest of this chapter and further in Chapter 7, The Project Management Workflow.