Lehman's Laws

1 min read Last updated Tue Jun 09 2026 03:05:56 GMT+0000 (Coordinated Universal Time)

Continuing Change

A program in real-world use must change or become progressively less useful.

Increasing Complexity

As a program evolves, its structure becomes more complex. Extra resources are needed to preserve simplicity.

Large Program Evolution

Program evolution is self-regulating. Size, release intervals, and errors are approximately constant per release.

Organizational Stability

Development rate is approximately constant over lifetime, independent of resources devoted.

Conservation of Familiarity

Incremental change in each release is approximately constant over lifetime.

Continuing Growth

Functionality must continually increase to maintain user satisfaction.

Declining Quality

Quality declines unless the system is modified to reflect changes in the operational environment.

Feedback System

Evolution processes are multiagent, multiloop feedback systems.

Was this helpful?