Welcome to the Simplilearn Community

Want to join the rest of our members? Sign up right away!

Sign Up

Difference between Lean and Agile

Mukesh Sahu

Simplilearn Support

Lean comes from Lean Manufacturing and is a set of principles for achieving quality, speed & customer alignment (same as what we’re trying to do with agile development, right?).

Mary & Tom Poppendieck adapted the principles from Lean Manufacturing to fit software development and I believe these ideas actually provide the premises behind why agile works:

1. Eliminate Waste 5. Deliver Fast
2. Build Quality In 6. Respect People
3. Create Knowledge 7. Optimize the Whole
4. Defer Commitment

In a nutshell, Lean says to relentlessly eliminate anything that isn’t adding value and only work on what we absolutely need to be doing at this moment in time. Eliminating waste means eliminating useless meetings, tasks and documentation. But it also means eliminating time spent building what “we know” we’ll need in the future (things are constantly changing so we often end up not needing them – or if we do, we have to rework them because conditions and our understanding has changed by then).
Lean also puts a very strong emphasis on what it calls “the system” – that is, the way that the team operates as a whole. We always need to be looking at our work from a top level to ensure we’re optimizing for the whole. For example, many managers want to “optimize” individual developers by ensuring they’re always at 100% – but most of the time, this is actually counter-productive. Let’s not have people coding something that isn’t needed (or fully defined yet) just for the sake of coding, because that actually creates more work for us in the future


Agile refers to a set of values and principles put forth in the Agile Manifesto.
The Agile Manifesto’s values are:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

And it’s principles are:

1. Highest priority is customer satisfaction
2. Welcome changing requirements
3. Frequent delivery of software
4. Business people & developers cooperating daily
5. Build projects around motivated people
6. Face-to-face conversation is best
7. Progress measured by working software
8. Sustainable development pace
9. Continuous attention to technical excellence
10. Simplicity
11. Self-organizing teams
12. Regular reflection & adaptation