Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why software changes & how we must change what we change when we change software

Why software changes & how we must change what we change when we change software

Reflecting on Lehman's categories of software system.

Presented at Cukenfest London 2018.

5358df52bd2ef4f57da1b1cc8634cfd9?s=128

Nat Pryce

April 19, 2018
Tweet

Transcript

  1. Why software changes & how we must change what we

    change when we change software Reflecting on Lehman's categories of software system Nat Pryce @natpryce nat@natpryce.com github.com/npryce speakerdeck.com/npryce
  2. None
  3. … any program is a model of a model within

    a theory of a model of an abstraction of some portion of the world or of some universe of discourse. –Manny Lehman Programs, Life Cycles, and Laws of Evolution. 1980
  4. Formally defined by and derivable from a specification Solves a

    real-world problem but does not affect the world it models Embedded in the world it models; its operation changes that world S-Type P-Type E-Type Lehman's categories of software system
  5. Formally defined by and derivable from a specification Solves a

    real-world problem but does not affect the world it models S-Type P-Type Embedded in the world it models; its operation changes that world E-Type Lehman's categories of software system
  6. Law of Continuous Change Any software system used in the

    real-world must change or become less and less useful in that environment. Law of Increasing Complexity As a system evolves, its complexity increases unless work is done to maintain or reduce it. –Manny Lehman (1974, ...)
  7. Evolution processes [of software systems] constitute multi level, multi loop,

    multi agent feedback systems and: The outcome, in the real world, of software system operation is inherently uncertain with the precise area of uncertainty also unknown –Manny Lehman (1974 onwards)
  8. S-programs are … the programming form from which most advanced

    programming methodology and related techniques derive. –Manny Lehman Programs, Life Cycles, and Laws of Evolution. 1980
  9. ...as programming methodology evolves still further, all large programs (software

    systems) will be constructed as structures of S-programs. –Manny Lehman Programs, Life Cycles, and Laws of Evolution. 1980
  10. ...as programming methodology evolves still further, all large programs (software

    systems) will be constructed as structures of S-programs. –Manny Lehman Programs, Life Cycles, and Laws of Evolution. 1980 and Javascript.
  11. What does this mean for how we work in the

    systems we work in?
  12. The people who use the system are part of the

    system
  13. Deploying the system changes what it must do

  14. The system is only useful if you can change what

    it does
  15. The way you change the system is part of the

    system
  16. The tests of the system are part of the system

  17. The people who change the system are part of the

    system
  18. The development tools used to change the system are part

    of the system
  19. The software is an integral part of the organisational system

    that directs its evolution
  20. Changing how the organisation delivers the system is a delivery

    of the system
  21. ...