A system in real use must keep changing, and its complexity rises unless work is spent reducing it.
Lehman's laws from 1974, and the first two are the load-bearing ones: a system in use must change or become useless, and each change increases complexity unless work is spent reducing it.
In practice
- A system left untouched for three years cannot be deployed, because the world it depended on has moved and it has not.
- A codebase where nobody is funded to reduce complexity accretes it until a two-line change takes a fortnight.
- Further reading
- Wikipedia
- Subject
- Technology & Software
- Essay
- The curves, the limits and the laws of software