Figure 7.3 The conventional cycle versus the evolutionary one. The conventional software life cycle (top) starts with an approved but unclearly specified and communicated goal during the first year. In gigantic leaps of effort (Phase 1 and Phase 2) the project moves in roughly the right direction. Part way through the project, the objectives change (‘objective second year’) but this does not really matter since there is no way of matching the exact requirements to the project results. Finally, out of sheer exhaustion, the team declares that the project is completed and, again, because of unclear goal specification, who can argue? In the evolutionary alternative (bottom), the situation is the same but there is much better control over definition and measurement of objectives.