Lean and Agile both create good conditions for handling frequent problems in many IT projects – but in rather different ways. As the concepts are often confused, Krister Kauppi will help us untangle them.
Step 1: What is Lean?
Lean Software Development is Lean principles applied to software development, as originally described by Mary and Tom Poppendieck (2003).
Lean has its origins in the Japanese company Toyota. The aftermath of the Second World War was tough on the Japanese economy and in order to survive Toyota had to become highly effective with their scarce resources. By visiting a number of Ford factories in the U.S. and Europe Toyota received a greater knowledge of mass production of automobiles. However Toyota lacked the resources needed to fully apply Fords manufacturing process. Toyota streamlined this process to enable fast and cost-effective deliveries, satisfying the demands of a small and multi faceted Japanese market.
Toyota achieved their goals by reducing capital binding inventory, production defects, overproduction and other kinds of waste that did not add value for the customer. This became the basis for the manufacturing process which was named Toyota Production System (TPS) and because of its high effectiveness it helped Toyota handle the oil crisis in the 1970s better than other companies around the world. As a result the interest in how Toyota managed the company grew and in the book ‘The Machine That Changed the World’ (1990) TPS was highlighted as a manufacturing process for resource-effective production. It was in this book that Lean was first used as a term describing Toyota’s successful way of working. Today Lean is adapted to most industries and regardless of which industry Lean is applied to, its core is to eliminate waste by continuous improvement and thereby effectively deliver what the customer really wants.
Step 2: What is Agile?
Agile is not a method in itself but a category for various agile methods.It was during the 1990s that these methods started being used as a reaction to other methods that were process heavy and inefficient in handling uncertainty and change. The category was created in 2001 when a group of leading profilesfrom different agile methods met with the intent of finding a common ground for the agile methods. The outcome of the meeting led to “The Agile Manifesto”, which addresses the values and principles on which Agile is based.
The core of Agile is to develop software more effectively and people-oriented in a changing and complex world. In most agile methods this is accomplished by frequent customer feedback, short iterations, flexible and emerging requirements, with the goal to achieve working software with high business value. Lean Software Development is an agile method because it is aligned with the Agile values and principles. Other commonly known agile methods are Scrum, Extreme Programming and Adaptive Software Development.
Step 3: Conclusion
The facts box to the left sums up the similarities and differences between Lean and Agile. Even if there are differences between Lean and Agile we can conclude that they are closely tied and complete each other. What connects them the most is that they are both based on radical improvement of traditional methods to achieve highly productive software development. This kind of productivity is ultimately about (more often) doing the right things the right way.