Laws of Software Engineering · Principle
Principle
Lehman's Laws of Software Evolution
Software that is being used must keep changing or it goes stale. Without effort, it gets more complicated over time.
How to use it. Treat ongoing maintenance as the normal state of software. New work is the rare exception. Plan for entropy.
How it gets misused. "We will rewrite it later." Lehman predicts the rewrite will run into the same forces as the original.
Related
- Pattern Technical Debt Shortcuts taken today add a cost that has to be paid later, with interest.
- Pattern Pace Layers Different parts of a system change at different rates. Fast layers innovate. Slow layers stabilise. Each layer constrains and is constrained by its neighbours.