Preconditions for Incremental Methods to Work


Under what conditions do incremental methods work? Let's examine how the cost of implementing one feature (which includes analysis, design, coding, integration, and testing) changes throughout the duration of a whole software system.

As shown in Figure 18.2, one feature quickly becomes more expensive to implement, while the other feature's price rises slowly.

Figure 18.2. The cost of implementation

graphics/18fig02.gif

In the first case, we would be wise to spend effort as soon as possible while the cost is low. We want to analyze and design this feature as completely as we can; we want to address not only our current needs but also our future needs. If we don't do it today, we will pay dearly for it later. A common cause for rising implementation costs is the breakdown of the design under the stress of new functions when the design is not kept up to date by refactoring.

In the second case, we can safely delay addressing the feature until we really need to. It might be somewhat more costly to design and implement later. For example, the system will have more functions and thus will probably be more complex. But we can invest the unspent effort in other, more profitable features.

It's in this situation that the planning game brings a large benefit to customers: They can select stories to implement based on their business value, without having to be concerned about technical dependencies and future costs.



Extreme Programming Perspectives
Extreme Programming Perspectives
ISBN: 0201770059
EAN: 2147483647
Year: 2005
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net