I have a hard time understanding #3 and #8 of Lehman's Laws of Software Evolution.

The laws are:

  1. (1974) "Self Regulation" — E-type system evolution processes are self-regulating with the distribution of product and process measures close to normal


  1. (1996) "Feedback System" (first stated 1974, formalised as law 1996) — E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base

The rest of the laws are clear to me.

Could someone explain these two laws?

  • 2
    What's unclear? – neontapir Apr 22 '15 at 15:59
  • Most of it. I guess it's the language in combination with not having clear context for them. If someone could provide an example where the law(s) clearly apply, I think that would help greatly. – Willy G Apr 22 '15 at 16:20

After talking to a professor at my university, and using the information provided by Ilyas Mohamed and Boris Eetgerink (I will +rep as soon as I recieve 15 rep myself), this is what I have concluded:

Law 3 specifies that the growth of the system will follow the normal distribution curve. This means that the growth will be slower in the beginning and end of the life cycle compared to in the middle.

Law 8 states that software evolution is a complex process where feedback shall be collected from multiple sources (users, managers, runtime environment, application domain, etc.) to achieve significant improvement during the evolution process.

The following link is a pdf which contains alternate explanations for each of the eight laws: http://www.engr.uvic.ca/~seng371/lectures/L12-371-S13-bw.pdf



  1. (1974) "Self Regulation" — E-type system evolution processes are self-regulating with the distribution of product and process measures close to normal

In other words 'an E-type systems growth inevitably slows as it grows older'.



  • Additional information. 'Distribution is close to normal' refers to a normally distributed data set (statistics). – Ilyas Mohamed Apr 25 '15 at 0:04

Not sure about law 3 yet, but here's my take on law 8:

Law 8 would be a perfect example of a successful agile project. The system is adapted to the changing requirements of users, product owners and other stakeholders. By using the system, users find out what they really want to do with the system. Product owners and management prioritize new features according to a changing environment and the team discovers better ways of doing things by gaining domain knowledge and experience. That sounds a lot like a multi-level, multi-loop, multi-agent feedback system.

  • 1
    Nice answer, but I don't think that agile project is entirely appropriate, because a the term project is used to describe something that has a defined goal. Lehman's laws take over once the system has been created and deployed. The modern buzz-word that I think most closely describes this law is DevOps. – Jay Elston Apr 23 '15 at 1:27
  • @JayElston Agile projects take input from the stakeholders after the initial build in order to drive the direction and possibly change the goals. They don't necessarily have a single defined goal or timeline for the entire duration of the project/product. It seems to me like it fits – Izkata Apr 25 '15 at 3:21
  • 1
    Granted that the goals of an Agile project can change as the project moves along, but a project has some definite goal in mind (in the eyes of the stakeholders). One those goals are met, and a system has been created, it will still evolve. If it is a useful system, its lifetime can be measured in years, and over the years different stakeholders may sponsor additional projects to add more features, and also some team will be tasked with the ongoing ownership of the projects (bug fixes, technology roadmapping, etc. It is this evolution that Lehman's laws is covering, not the initial project. – Jay Elston Apr 27 '15 at 1:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.