Lehman's Laws of Software Evolution

Note

This summary is referencing Bart Wullems original blog post.

Bio

Manny Lehman was a CompSci professor in Middlesex and London.

Lehman's Laws

  1. A Software System must evolve to make use of it
  2. The complexity of a Software System increases over time, unless we actively work against that
  3. Software Evolution is a continuous process
  4. Software Systems are subject to feedback loops
  5. Both incremental and radical change are part of Software Systems
  6. Humans play the crucial role in Software Systems
  7. Software Systems are limited by the constraints of their architecture

Questions

  1. What are his Laws about?
    Lehman's Laws are about how software evolves over time. What happens if it doesn't and if it does. We can think of Software as an organism that needs to live and has to be maintained otherwise the user (and developers) will suffer.

  2. What is Software Evolution?
    Software Evolution describes the circumstance of Software that changes over time.

  3. How does Waterfall vs. Agile relate to this?
    Iterative and incremental software development started way before agile software development was a thing but nonetheless Lehman would have probably been a supporter of agile.


Terms

References

Lehman's paper from 1980

Software Evolution
Agile