Maintainability

Maintainability refers to the facility with which a program can evolve. It has been estimated that more than three-quarters of the total time spent on a particular program is evolution and other modifications, such as fixing bugs. It therefore becomes necessary to write the program not only so that it works in the first place, but also in order to make it easier to modify to produce new, improved versions.

Usually, the person maintaining a particular program is not the same person that wrote it. It is therefore of great importance that the code be written in a way that it can be understood by someone else and modified with predictable results.

While modularity is the key to reusability, and indeed necessary in order for a program to be maintainable as well, it is not enough. The implementation of a module is susceptible to evolution as well. Therefore, maintainability is determined by the way a module was implemented in addition to its interface.