It provides its rapid-development benefit by delivering selected portions of the software earlier than would otherwise be possible but it does not necessarily deliver the final software product any faster. It provides some ability to change product direction mid-course in response to customer requests.
Evolutionary Delivery has been used successfully on in-house business software and shrink-wrap software. Used thoughtfully , it can lead to improved product quality, reduced code size and more even distribution of development and testing procedures.
As with other lifecycle models, Evolutionary Delivery is a whole-project practice: if we want to use it, we need to start planning to use it early in the project(s).
Potential reduction from nominal schedule: Good
Improvement in progress visibility: Excellent
Effect on schedule risk: Decreased Risk
Chance of first-time success: Very Good
Chance of long-term success: Excellent
- Feature creep
- Diminished project control
- Unrealistic schedule and budget expectations
- Inefficient use of development time by developers
Major Interaction and Trade-Offs
Repeat this cycle until we run out of time, run out of money, we complete the iterations planned or the user is satisfied.
With the evolutionary-delivery model we draw from the control we get with staged delivery and the flexibility we get with evolutionary prototyping. We can tailor it to provide as much control or flexibility as we need.