Everyone seems to be talking about agile these days, but why? Robbie will take a whistle stop tour of the history of agile and lean software development, showing some of the lessons we’ve learnt - and forgotten - along the way.
- March 5th, 2019 1799: The Royal Institution 1900 2000 1818: Institution of Civil Engineers 1875: Human computers 1940s: First Turing complete computer ~1965: Mary Hamilton coins the term “software engineering” 1800
- March 5th, 2019 https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist) “The space mission software had to be man-rated. Not only did it have to work, it had to work the first time. Not only did the software itself have to be ultra-reliable, it needed to be able to perform error detection and recovery in real time.
- March 5th, 2019 1799: The Royal Institution 1900 2000 1818: Institution of Civil Engineers 1875: Human computers 1940s: First Turing complete computer ~1965: Mary Hamilton coins the term “software engineering” 2001: Agile manifesto created and published 1800
- March 5th, 2019 “required design changes are likely to be so disruptive that the software requirements upon which the design is based and which provides the rationale for everything are violated.
- March 5th, 2019 Let’s talk about Therac-25 (1985-1987) 6 occurrences of overdose of radiation issued, hundreds of times the intended amount. Led to 3 deaths due to radiation poisoning. Caused by “overconfident engineers”, lack of process to resolve reported bugs, and poorly designed malfunction alerts to radiologists.
- March 5th, 2019 Let’s talk about computer aided dispatch, 1992 Computer system to replace paper based system, and increase efficiency for London Ambulance Service. Big bang release. Multiple units sent to the same address. No units sent to others. Calls got lost, which resulted in more calls. System became congested. No roll back or plan B. Media reports of loss of life between 30 and 45.
- March 5th, 2019 1965: Mary Hamilton coins “software engineering” 1970: Winston Royce publishes “Managing the development of large software systems” 1976: Bell and Thayer coin the term “waterfall” 1948-75: Toyota Production System created and honed Not much changes in waterfall after 1976!
- March 5th, 2019 Just in time Kanban, track and WIP Jidoka “automation with a human touch” Andon “stop the line” Continuous improvement of people and process https://www.flickr.com/photos/toyotamheurope/8472007819
- March 5th, 2019 1965: Mary Hamilton coins “software engineering” 1970: Winston Royce publishes “Managing the development of large software systems” 1976: Bell and Thayer coin the term “waterfall” 1948-75: Toyota Production System created and honed 1983: The Psychology of Human–Computer Interaction published
- March 5th, 2019 https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/human-computer-interaction-brief-intro
- March 5th, 2019 1965: Mary Hamilton coins “software engineering” 1970: Winston Royce publishes “Managing the development of large software systems” 1976: Bell and Thayer coin the term “waterfall” 1948-75: Toyota Production System created and honed 1984: Goldratt publishes “The Goal” 1983: The Psychology of Human–Computer Interaction published
- March 5th, 2019 Batching seems economical, but can delay value to the customer / business and can cause bottlenecks that require buffers to deal with them. Theory of constraints: batches Reduces cycle time; Reduces variability in flow; Accelerates feedback; Reduces risk; Reduces overhead 1x1 allows each piece of work to flow as it is ready, which can increase throughput and reduce queue time.
- March 5th, 2019 Theory of constraints: bottlenecks Buffers required to deal with backlog If we optimise an upstream process - we haven’t increased our throughput
- March 5th, 2019 1965: Mary Hamilton coins “software engineering” 1970: Winston Royce publishes “Managing the development of large software systems” 1976: Bell and Thayer coin the term “waterfall” 1948-75: Toyota Production System created and honed 1986: “New Product Development Game published” by Hirotaka Takeuchi, Ikujiro Nonaka 1995: Sutherland and Schwaber publish a paper describing Scrum 2001: Schwaber and Beedle publish “Agile Software Development with Scrum” 1984: Goldratt publishes “The Goal” 1983: The Psychology of Human–Computer Interaction published
- March 5th, 2019 1965: Mary Hamilton coins “software engineering” 1970: Winston Royce publishes “Managing the development of large software systems” 1976: Bell and Thayer coin the term “waterfall” 1948-75: Toyota Production System created and honed 1986: “New Product Development Game published” by Hirotaka Takeuchi, Ikujiro Nonaka 1995: Sutherland and Schwaber publish a paper describing Scrum 1999: “Extreme Programming Explained” published 2001: Schwaber and Beedle publish “Agile Software Development with Scrum” 1984: Goldratt publishes “The Goal” 1983: The Psychology of Human–Computer Interaction published
- March 5th, 2019 Embrace (reduce cost of) change Organise for better performance and higher quality Emphasis on listening to the customer, and their feedback Introduces values: communication, simplicity, feedback, courage, and respect.
- March 5th, 2019 Eliminate waste Amplify learning Decide as late as possible Deliver as fast as possible Empower the team Build integrity in See the whole
- March 5th, 2019 2000 2020 2010 2003: Mary and Tom Poppendieck publish “Lean Software Development” 2014: O'Reilly, Humble, and Molesky publish “Lean Enterprise” 2011: Eric Ries publishes “The Lean Startup” 2018: Forsgren, Humble and Kim publish “Accelerate: The Science of Lean Software and Devops” 2009: Mike Roter publishes “Toyota Kata”
- March 5th, 2019 Learn Build Measure • Innovation accounting, and a validated portfolio • Mission control, not command and control • Learn / fail fast • Improving flow through value stream and pull systems
- March 5th, 2019 Research shows that Lean management along with a set of other technical practices known collectively as continuous delivery, do in fact impact culture. You can act your way to a better culture by implementing these practices in technology organisations, just as you can in manufacturing. - Forsgren, Humble and Kim
- March 5th, 2019 The Toyota Production System gave us a focus on productivity and a people centric culture. The Theory of Constraints builds upon kanban, which focuses on delivering working products sooner. Mike Rother details the management and leadership, and the importance of coaching as part of leading teams. Mary Hamilton and NASA pushed for software engineering to be recognised as its own discipline.
- March 5th, 2019 Scrum offers a project management framework, and introduced us to new roles for the team built upon a comparison of lean manufacturing and software development by Takeuchi and Nonaka. Extreme Programming describes a productive work culture and associated values alongside engineering practices that thrive in that environment. Mary and Tom Poppendieck flesh out that comparison, introducing a number of practices into lean software development.
- March 5th, 2019 Lean Startup describes how companies are building new products, and Lean Enterprise expands upon that to show how companies are applying that at scale. Nicole Forsgren provides detailed observations of high performing teams, leveraging agile, lean and devops.
- March 5th, 2019 1799: The Royal Institution 1900 2000 1818: Institution of Civil Engineers 1875: Human computers 1940s: First Turing complete computer ~1965: Mary Hamilton coins the term “software engineering” 2001: Agile manifesto created and published 1800