[Ed: This was previously published as part of this other post from December 2005, but is being republished as a separate post ]
Incremental delivery is a key component of most software projects today – it allows us to deliver the most valuable elements of a system first, which allows our customers to start getting benefit from the system earlier. As additional features are developed, and additional use cases are enabled, they are delivered to the customers, who get incremental value from those features. This can have a significant impact on ROI projections for a project – and can be the difference between getting the deal and losing it.
Imagine that we had an application with four main features providing 50, 25, 15 and 10 units of ROI, and each taking one calendar quarter to develop. If we constrain the analysis for our project to a two year payback period (not untypical with software projects), the return versus time is both faster and higher if we delivered each feature incrementally than if we delivered all features when they were all complete. In the following chart, the green represents incremental delivery and the red represents waterfall delivery. If you’re colorblind, the green is the striped area.