next up previous
Next: Construction-time versus run-time Up: An evolutionary approach Previous: An evolutionary approach


Preliminary observations

In the theory and practice of software engineering, most attention is given to forward engineering: building new systems. In reality, only 30% of the total costs of a system are devoted to its initial construction: the remaining 70% are spent on maintenance and adjustments to new requirements and new operating environments. These costs are confirmed in many studies (Lientz & Swanson, 1980; Reutter, 1981); McConnell (1996) gives a recent summary of these findings. For instance, based on an extensive case study Reutter (1981) found that 70% of the programming costs occur after installation of the initial product and that only 8% can be attributed to emergency repair and corrective coding. Then 25% of the costs are due to environment changes and 67% can be attributed to upgrades and enhancements of the system. The latter costs include upgrades, changes due to new business conditions, and modifications and/or addition of new subsystems. The remaining costs are directly related to a system's evolution: adjusting to new infrastructure and building new versions and adding new functionality. The conventional models like the waterfall model do not cover these evolutionary aspects very well.

Based on the observations made so-far, we can draw some preliminary conclusions:

The above insights have been stated, maybe in a different wording or a different emphasis, by other authors like, for instance, Yourdon (1993, p. 262). They remain, however, of interest and form the point of departure for the remainder of this paper.


next up previous
Next: Construction-time versus run-time Up: An evolutionary approach Previous: An evolutionary approach
Paul Klint 2001-06-12