In the project management field, Agile and Lean are two common methodologies that enable teams to generate faster, more sustainable solutions.
The distinctions and similarities between these two techniques, on the other hand, are frequently unclear.
Even the names are frequently used incorrectly, as synonyms to denote a specific set of actions.
It is critical for a project manager to grasp the distinctions and similarities between Lean and Agile methodologies in order to ensure proper implementation and achieve a successful and efficient organization.
What is Agile?
Agile is well known in today's technological world as a set of values and principles that guide software development. The Agile Manifesto lists a set of four values and 12 principles.
In short, Agile is exactly what you think it is. It's agile. The approach favors flexibility, communication, collaboration, and simplicity.
What is Lean?
Lean is less understood and lacks clear definitions supported by professional consensus. The term “Lean” was originally used to describe a manufacturing organization model based on the Toyota Production System, but is widely considered a subframework within the agile umbrella for software development.
There is a lot of confusion these days about what is Lean, what is Agile, whether they are the same, and which should be used.
The Birth of New Software Development Methodologies
Both Lean and Agile were developed to address the shortcomings of existing plan-driven approaches such as waterfall. Used since the 1970s, developers and software development managers began to notice the inefficiencies of Waterfall in the 1990s. As the market is more active and consumers are more tech-savvy, Waterfall cannot respond quickly enough to market demands, change technology, or consistently deliver bug-free software.
In search of better models, Lean and Agile creators tried to develop methods with a more customer-centric approach. The new approach provides adaptability as a competitive advantage, facilitates early and continuous testing, and brings a human element to project management and project execution.
Lean vs. Agile principles
Lean Software Development (LSD) was first established by Dr. Robert Charette to establish change-tolerant organizations that increasingly rely on software.
Next is the Agile Manifesto, which embodies the 12 principles of agile software development. Another authoritative work on software development methodology goes to Mary and Tom Poppendieck, who published Lean Software Development: An Agile Toolkit.
Below is a direct comparison of their values and principles:
If you follow the 12 principles of Ph.D. Compare Charette's LSD and the 12 principles of agile, they are very similar. The seven Lean principles presented by Poppendiecks are less focused, but still overlap with the Agile Manifesto and Charette's Lean Software Development.
Here's what they have in common:
-
The value of responding quickly to customer needs;
-
Early testing;
-
An iterative approach to development;
-
MVP (Minimum Viable Product) development style rather than feature heavy;
-
Collaboration within the company and with external stakeholders.
Timeline
We examine the turning points and publications that spawned these terms to understand how they caught on. Check out the timeline below, detailing progress, and add it to your reading list if you like!
Origins of Lean and Agile
As you can see from the timeline, the term Lean was first coined by Womack et al. The Toyota Production System was described in their book “The Machine That Changed the World” in 1990. Dr. Robert Charette later adapted the lean thinking described in previous publications to create his “Lean Software Development”.
The term “Agile” was not widely used until the publication of the “Agile Manifesto” in 2001. Both the terms “Agile” and “Lean” were coined by Western technologists or academics to refer to the Toyota Production System (more on this later).
We may be criticized for this, but in this sense, the words Lean and Agile are not really that important. Having two terms derived from the same principle actually adds to the confusion on the subject. Having said that, this is a term adopted by the industry, so we will continue to use it.
Another source of perplexity is the timeframe. In the early to mid-90s, Dr. Robert Charette presented his ideas on Lean Software Development. Nearly three years before “The Agile Manifesto,” he explained the tactical goal and 12 principles of his Lean Development technique in an article titled “Lean Development.”
This paper was created by Jim Highsmith, who later became a core pioneer of the Agile movement, demonstrating the connection between Lean and Agile. However, Highsmith's article was not widely shared, and it wasn't until 2003 that Charette published “Challenging the Fundamental Notions of Software Development,” a study report that provided a more in-depth explanation of his lean development strategy.
2003 was also the year Poppendiecks released Lean Software Development: The Agile Toolkit. This book describes the seven principles of lean development, directly related to the seven forms of waste in lean manufacturing. Poppendiecks' book also highlights Lean as a software development method and blurs the distinction between Lean and Agile by presenting Lean as a complementary method within Agile. In fact, at the time of publication, this book is being sold as the latest edition in the Agile Software Development series.
Today, Poppendiecks' extensive writings on the subject are considered indispensable reading for lean and “aspiring lean” software development practitioners.
Divergence in Application
According to Dr. Charette, one of the main differences between Lean and Agile is that Agile is bottom-up whereas Lean is top-down. This is evident in the lean end-to-end (E2E) structure and the “see the whole” principle proposed by Poppendiecks. Below, we explain these principles in practice with value stream mapping.
Value Stream Map
To implement the “see the whole” principle, Poppendiecks describes a value stream mapping approach to reveal value-added and non-value-added activities throughout the development process. Value Stream Mapping analyzes the development cycle from receipt of requirements to delivery to customers. The goal is to identify waste caused by inventory and wait time (production delays) and explore new practices to reduce work in process (WIP) and lead times.
Lean Kanban Vs. Agile Kanban
Both Lean and Agile employ the TPS Kanban system, but with slight differences. Toyota's Kanban system is designed to limit work in progress. Unlike traditional “push-to-manufacture” that moves inventory to the next process step, Kanban puts new material into production only after the current part has been machined and components need to be replenished.
Kanban cards are sent back to replenishment orders and previous production steps. This minimizes work in process and reduces idle inventory.
In software development, Kanban is used instead of passing Kanban cards from one manufacturing step to the previous one. Sticky notes are most often used to indicate an ongoing request. According to Kai Petersen's chapter in Modern Software Engineering Concepts and Practices: Advanced Approaches, both Agile and Lean use a prioritized list of requirements from which tasks are extracted.
According to Kai Petersen's chapter in Modern Software Engineering Concepts and Practices: Advanced Approaches, both Agile and Lean use a prioritized list of requirements from which tasks are extracted.
Unlike Agile, which uses fixed-duration iteration cycles to limit development time and drive Kanban, Lean limits the number of tasks allowed at any given time. In this way, Lean can achieve its primary goal of limiting WIP while more accurately measuring lead times and identifying waste in production. Once a task is completed, a new task can be drawn from the priority list. Lean uses the concept of continuous flow, while Agile starts each new iteration with a new board.
Some teams are realizing the benefits of both approaches and are starting to use a hybrid approach called scrumban.
These are just two nuances of how lean and agile methodologies achieve common goals. Another article published on Codementor explores other uses and applications of Lean and Agile.
In practice, it doesn't matter whether your team follows a so-called “Agile” method or a “Lean” method. Finding the right practices to simplify your workflow and deliver lasting value to your customers is important, and both approaches see it as the end goal. As we mentioned in the first paragraph of this post, Lean methodologies are less understood and are often seen as an agile practice. Lean may be less well-defined simply because of its wider application.
Conclusions
As we indicated in the first few paragraphs of this article, Lean methodology is not well understood and is frequently mistaken for Agile. Because of its larger applications, Lean is possibly less well-defined.
Lean was first presented as an organizational set of procedures and practices for company management, and only afterwards adapted to software development. It has a more direct tie with the Toyota Production System. Agile, on the other hand, was created by software professionals expressly for software development.
After going over the shared background and main concepts of these two approaches, it's clear that they have more similarities than differences.