Thursday, July 06, 2006

Programs, Life Cycles, and Laws of Software Evolution
Meir M. Lehman Proceedings of the IEEE Vol 68 No. 9 , Sept 1980 pp 1060-1-76

5 Laws: (paraphrased)
I A Software System, if it is being used, changes or dies.
II A Software System increases in complexity unless work is done to decrease the complexity.
III Program evolution is subject to laws which describe its dynamics.
IV During the active life of a software system, the global activity rate is statistically invariant.
V During the active life of a software system, the release content is
statistically invariant.

Programs change. They get more complicated, unless you simplify them.
They can be described by statistical regularities. Organizations tend to apply the same amount of work to a software system. Releases tend to incorporate about the same amount of change.

I think we have reached an inflection point now, in some systems, like switching systems,
microsoft windows, perhaps other software system, where they are so complex, that it is
now impossible to manage their change.
Perhaps some problems have arisen lately by those in the industry trying to disregard these
laws.