Empiriceme · Evidence · Empirical Regularity

Lehman's Laws of Software Evolution

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

Search every entry·Every entry, A to Z