While reading “Software Engineering” by Ian Sommerville found a reference to Lehman laws.

An insightful mirror of my own observations.

I - Continuing Change An E-type program that is used must be continually adapted else it becomes progressively less satisfactory.

II - Increasing Complexity: As a program is evolved its complexity increases unless work is done to maintain or reduce it.

III - Self Regulation The program evolution process is self regulating with close to normal distribution of measures of product and process attributes.

IV - Conservation of Organisational Stability (invariant work rate) The average effective global activity rate on an evolving system is invariant over the product life time.

V - Conservation of Familiarity During the active life of an evolving program, the content of successive releases is statistically invariant.

VI - Continuing Growth Functional content of a program must be continually increased to maintain user satisfaction over its lifetime.

VII - Declining Quality E-type programs will be perceived as of declining quality unless rigorously maintained and adapted to a changing operational environment.

VIII - Feedback System E-type Programming Processes constitute Multi-loop, Multi-level Feedback systems and must be treated as such to be successfully modified or improved.