Programs, Life Cycles, and Laws of Software Evolution
Manny Lehman, 1980 — software degrades over time. Maintenance is not a phase; it is the dominant mode.
Manny Lehman, at Imperial College London, formulated a set of empirical laws governing the evolution of large software systems based on his observations at IBM in the 1960s and his subsequent academic study. The first three laws, originally formulated in 1974: Continuing Change — an evolving system must be continually adapted or it becomes progressively less satisfactory. Increasing Complexity — as a system evolves its complexity increases unless explicit work is done to reduce it. Self Regulation — system evolution is self-regulating, with measurable rhythms. Lehman explicitly invoked the term entropy to describe the second law, drawing the analogy to the second law of thermodynamics. He also reported the figure that defines the discipline: 70% of US software expenditure in 1977 was on maintenance, 30% on new development. Software degrades. Maintenance is the work.