Agile software development has its roots in the lean manufacturing paradigm developed at Toyota – the Toyota Production System (TPS). Lean manufacturing centers on creating more value with less work. One central principle of lean manufacturing is to relentlessly work on identifying and eliminating all sources of waste from the manufacturing process, and also to eliminate all obstacles that impede the smooth flow of production – usually done using a lean technique known as Value Stream Mapping. ‘Waste’ can take many forms but it basically refers to anything that does not add value from the perspective of your customer. Taichi Ohno, an executive at Toyota, identified seven categories of waste:
- Defects
- Overproduction
- Inventories (in process, or finished goods)
- Unnecessary processing
- Unnecessary movement of people
- Unnecessary transport of goods
- Waiting
Central to the lean philosophy is making improvements in real time: identify a problem, measure it, analyze it, fix it and apply it immediately on the factory floor (or in the next iteration) – don’t wait to read about it in a report later.
It is fairly easy to come up with software examples for each of the above categories of waste (example: reduce ‘Waiting’ by eliminating hand-offs, or reduce ‘Overproduction’ by cutting out all unnecessary features). Lean principles will thus sound very familiar to agile practitioners. In their book, Lean Thinking, the authors Womack and Jones, identified five principles of “lean thinking.”
- Value (Definition of): Specify value from the customer perspective.
- Value Stream: Analyze your processes and eliminate anything that does not add value for the customer.
- Flow: Make process steps flow continuously with minimal queues, delays or handoffs between process steps.
- Pull: Build only in response to specific requests from customers. In other words organizations should not push products or services to customers. Order from suppliers only the material or services required to supply specific customer requests.
- Perfection: Continuously and relentlessly pursue perfection by reducing waste, time, cost and defects.
There is no clear written description of Toyota’s practices, however there is a lot of written material about TPS – most notably The Machine That Changed the World, by Womack, Jones and Moos – now a management classic.
Several authors have boiled down the definition of Lean into Two Pillars:
- The practice of continuous improvement
- The power of respect for people
Continuous Improvement means the relentless elimination of waste in all it’s forms, and, the identification and removal of anything that disrupts the continuous flow of the process.
“Respect for people” is a pretty vague term, but at Toyota it means something very specific, including providing people with the training and tools of improvement, and motivating them to apply these tools every day. At Toyota they would say: “We build people before we build cars”.
The pursuit of lean requires enlightened leadership – represented as the foundational layer of the lean enterprise. The roof represents the vision, or ultimate objective of the enterprise.
To summarize TPS even further in a single sentence: Toyota practices continuous improvement through people. Or, the lean enterprise is a culture where people-driven improvement operates continuously in the pursuit of delivering customer value.