Lehman's Laws of Software Evolution
Updated 2026-08-01
INTRODUCTION
English translation pending.
CORE DEFINITION
Formulated by Manny Lehman beginning while studying IBM's OS/360. The laws describe E-type systems, programs embedded in and serving a real-world environment. The first law holds that such a system must undergo continual change or its usefulness declines. The second holds that internal complexity increases with each change unless dedicated work is done to reduce it. Later laws cover self-regulation, conservation of organizational stability, and declining growth rates, together framing maintenance as unavoidable.
SCAFFOLDING EFFECT
Reduce cognitive load
- Plan maintenance: budget refactoring as a permanent line item rather than a one-off cleanup project - Explain decay: use the laws to justify why untouched systems stop meeting changing needs - Manage debt: track complexity growth and intervene before it becomes unmanageable
Anchor fast decisions
Software models a changing world, so requirements drift away from the implementation that encodes them, and a system that never adapts becomes wrong rather than merely old. Meanwhile each change adds structure that is locally sensible and globally inconsistent, so internal complexity grows monotonically unless effort is spent removing it. Entropy in software is the default state, and maintenance is the counterforce.
MINIMUM ACTION
In progress 0/1Practice this model in one real situation:
account_treeGenealogyexpand_more
menu_bookReferencesexpand_more
Source support: Explicit
- en.wikipedia.orghttps://en.wikipedia.org/wiki/Lehman's_laws_of_software_evolutionverified
PRIVATE NOTES · Only visible to you
SAVED Q&A
ENTRY Q&A · Private saving available
Ask with a clear boundary
thinkingmodels answers from published entry context only.
Your question is sent to thinkingmodels. The answer uses public entry context only.
RELATED MODELS