“Programs, Life Cycles, and Laws of Software Evolution”, M. M. Lehman1980-09 (, )⁠:

By classifying programs according to their relationship to the environment in which they are executed [algorithmic vs business-logic], the paper identifies the sources of evolutionary pressure on computer applications and programs and shows why this results in a process of never-ending maintenance activity. The resultant life cycle processes are then briefly discussed.

The paper then introduces Lehman’s laws of Program Evolution that have been formulated following quantitative studies of the evolution of a number of systems.

Finally, an example is provided of the application of Evolution Dynamics models to program release planning.