Skip to content

Lehman's law of continuing growth

State that a long-lived software system must continually expand its functional content to retain users, because satisfaction is judged against a rising competitive reference point — adaptation alone holds fitness constant while rivals grow past it.

Core Idea

Lehman's sixth law — continuing growth — is the empirical observation that an E-type software system's functional content must be continually increased over its lifetime to maintain user satisfaction. The first law requires only defensive adaptation to preserve fit as the environment drifts; the sixth adds that in a field of growing competitors, adaptation alone is not enough, because users' reference point rises and satisfaction with a constant system declines. Growth is a condition of survival, in standing tension with the second law (increasing complexity).

Scope of Application

The law lives within software engineering — the software-evolution, product-strategy, and architecture subfields where long-lived E-type systems compete for users; its reach is bounded there.

  • Empirical software evolution — the home turf: Linux kernel growth (Godfrey and Tu), Apache, GCC.
  • Software product strategy — reframing feature growth as a survival condition where alternatives exist.
  • Roadmap and maintenance planning — splitting "keep it going" into defensive adaptation and offensive growth.
  • Software architecture and refactoring — the refactor cycle read against the second law.
  • Competitive-product analysis — Microsoft Office's growth driven by rivals, not per-feature demand.

Clarity

The sixth law separates two maintenance obligations a roadmap conflates: defensive adaptation (preserve fit as the environment drifts) and offensive growth (expand to keep pace with rivals). It makes a failure mode legible — a drift-corrected, bug-free system can still lose users because the competitive reference point rose. Read against the second law, it exposes a standing tension: every growth increment degrades the structure carrying it, making the refactor cycle a forced resolution, not discretionary cleanup.

Manages Complexity

A whole competitive landscape compresses into one comparative quantity — the gap between this system and the best alternative — governed by one regularity: the gap widens whenever features hold constant, and retention breaks when it exceeds switching cost. The strategist reads "retain or bleed users" off that comparison, sees "adapted but not grown → losing users" as predicted, and tracks two axes — competitive gap and structural complexity — that move oppositely under the same growth action, with the refactor cycle equilibrating.

Abstract Reasoning

The law licenses retention forecasting against a moving reference point, an adapted-but-losing diagnosis reading a healthy-yet-bleeding system as comparative rather than defective, an offensive-versus-defensive budget separation flagging a drift-only roadmap as incomplete, a two-axis tension reading that makes the refactor cycle a forced equilibrating move, and a growth-source attribution reading feature growth as competitively rather than demand driven.

Knowledge Transfer

Within software engineering the law transfers as mechanism across every E-type system facing a developing competitive field — the retention forecast, the adapted-but-losing diagnosis, the budget split, and the two-axis reading move without translation from the Linux kernel to Microsoft Office and WinZip. Beyond software the portable claim — an offering must expand or the field overtakes it — is carried by the parents competition, red_queen_dynamic, feature_creep, and s_curve_diffusion, which transfer as mechanism. The software-specific cargo — functional content, code coupling, the refactor cycle — stays home; the named law is the canonical software case.

Relationships to Other Abstractions

Local relationship map for Lehman's law of continuing growthParents appear above the current abstraction, mutual partners to the right, and children below. Node labels state whether each abstraction is prime or domain-specific; colors identify relation types.Lehman's law ofcontinuing growthDOMAINPrime abstraction: Competition — presupposesCompetitionPRIMEPrime abstraction: Non-Stationary Objective — is a decomposition ofNon-StationaryObjectivePRIME

Current abstraction Lehman's law of continuing growth Domain-specific

Parents (2) — more general patterns this builds on

  • Lehman's law of continuing growth presupposes Competition Prime

    The law's compulsory growth presupposes rival alternatives whose gains raise the reference point and threaten user migration.

  • Lehman's law of continuing growth is a decomposition of Non-Stationary Objective Prime

    The continuing-growth law is a software-market tracking problem whose functional target moves as competing systems expand.

Hierarchy paths (2) — routes to 2 parentless roots

Neighborhood in Abstraction Space

Lehman's law of continuing growth sits in a crowded region of the domain-specific corpus (21st percentile for distinctiveness): several abstractions share nearly its structure, so a description that fits it tends to fit its neighbors too.

Family — Software Evolution & Systemic Laws (16 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-07-12