Lehman laws of software engineering
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.