Chapter 34. The 60/60 Rule
WE OFTEN PRETEND that software development is the most important part of the software life cycle. Methodologies abound for development. Books, magazine articles, and blogs focus on development. Development, however, is just not where the money is.
Fully 60% of the life cycle costs of software systems come from maintenance, with a relatively measly 40% coming from development. That is an average, of course. The actual cost of maintenance may vary from 40% to 80%, depending on the system type and the environment it is deployed into. During maintenance, 60% of the costs on average relate to user-generated enhancements (changing requirements), 23% to migration activities, and 17% to bug fixes.
The 60% of life cycle costs related to maintenance, coupled with the fact that 60% of maintenance activities relate to enhancements, gives us the so-called 60/60 Rule, one of the few proposed “laws” of software maintenance.
Migration activities include moving systems to new hardware or software environments. Migration is, of course, a type of changing requirement. Factoring that into our estimates points out an interesting fact: over 80% of maintenance activities relate in some way to changing requirements.
Naturally, the ability to change code suggests that one should understand it first. Understanding changes to be made is a major activity during maintenance. Roughly ...