Evolutionary delivery is a lifecycle model that straddles the ground between evolutionary prototyping and staged delivery. You develop a version of your product, show it to your customer, and refine the product based on customer feedback. How much evolutionary delivery looks like evolutionary prototyping really depends on the extent to which you plan to accommodate customer requests. If you plan to accommodate most requests, evolutionary delivery will look a lot like evolutionary prototyping. If you plan to accommodate few change requests, evolutionary delivery will look a lot like staged delivery. Figure 7-11 illustrates how the process works.
Figure 7-11. The evolutionary-delivery model. This model draws from the control you get with staged delivery and the flexibility you get with evolutionary prototyping. You can tailor it to provide as much control or flexibility as you need.
The main differences between evolutionary prototyping and evolutionary delivery are more differences in emphasis than in fundamental approach. In evolutionary prototyping, your initial emphasis is on the visible aspects of the system; you go back later and plug up holes in the system's foundation.
CROSS-REFERENCE
For details on evolutionary delivery, see Chapter 20, Chapter 20.
In evolutionary delivery, your initial emphasis is on the core of the system, which consists of lower level system functions that are unlikely to be changed by customer feedback.
Incremental Development Practices
The phrase "incremental development practices" refers to development practices that allow a program to be developed and delivered in stages. Incremental practices reduce risk by breaking the project into a series of small subprojects. Completing small subprojects tends to be easier than completing a single monolithic project. Incremental development practices increase progress visibility by providing finished, operational pieces of a system long before you could make the complete system operational. These practices provide a greater ability to make midcourse changes in direction because the system is brought to a shippable state several times during its developmentâyou can use any of the shippable versions as a jumping-off point rather than needing to wait until the very end.
Lifecycle models that support incremental development include the spiral, evolutionary-prototyping, staged-delivery, and evolutionary-delivery models (discussed earlier in this chapter).
18.222.167.183