SPM: Single Point of Maintenance
The task of a maintenance programmer is to implement a requested change to a piece of software in a consistent fashion, for example, a change to the calculation of sales tax affecting multiple programs.
This task is made unnecessarily difficult if the program is constructed in such a way that algorithms and values are duplicated throughout the code, for example through the use of copy and paste, or by hard-coding values into a program.
The concept of a single point of maintenance dictates that frequently used elements should be defined, and modified, in a single location. Duplication of such elements increases the difficulty of change, may decrease clarity and increases the likelihood of inconsistency.
There are three contraventions of Single Point of Maintenance that are easy to detect:
- SPM-1: Magic Numbers
Numeric literals (other than 0 or 1) have been hard-coded into the program.
- SPM-2: Magic Strings
A string literal has been hard-coded into a statement that influences the flow of a program.
- SPM-3: Copy/Paste Programming
An identical or largely similar section of code appears in two or more places in a program or set of programs. Copy and Paste is considered by many industry experts to be a design error.