Lehmans Laws

  1. The law of continuing change. -- Any software system used in the real-world must change or become less and less useful in that environment.
  2. The law of increasing complexity. -- As time flows forwards, entropy increases. That is, as a program evolves, its structure will become more complex. Just as in physics, this effect can, through great cost, be negated in the short term.
  3. The law of large program evolution. -- Program evolution is a self-regulating process and measurements of system attributes such as size, time between releases, number of reported errors, etc., reveal statistically significant trends and invariances.
  4. The law of organizational stability. -- Over the lifetime of a program, the rate of development of that program is approximately constant and independent of the resources devoted to system development.
  5. The law of conservation of familiarity. -- Over the lifetime of a system, the incremental system change in each release is approximately constant.

(Lehman, M., (1980), "Programs, life cycles and the laws of software evolution," Proc. IEEE, 15 (3).)


See also SoftwareLifeCycle


EditText of this page (last edited February 6, 2005) or FindPage with title or text search