There is a lot of confusion between Lean and Agile Methodology. This article intends to clear some of them:
Lean comes from Lean manufacturing(systematic method for waste minimization within a manufacturing system without sacrificing productivity)and is a set of principles for achieving quality, speed & customer alignment by the following principles:
1.)Eliminate waste: 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.
- 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)
- Eliminating inefficient ways of working – like multitasking – so we can deliver fast.
2.)Optimize the Whole: Lean also puts a very strong emphasis on what it calls “the system” – that is, the way that the team operates as a 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
3.)Respect People: Lean says to respect that the people doing the work are the ones that best know how to do it. Give them what they need to be effective and then trust them to do it.
4.)Create Knowledge: Software development is about learning, so structure the work to ensure we’re continuously learning
5.)Defer Commitment: Defer decisions until the last responsible moment (because we’ll know more by then).
6.)Build Quality In: Develop in a way that builds quality into our product, because there’s no way to continuously deliver fast if we have to keep going back to clean up our messes.
7.)Deliver Fast: As inefficient ways of working will be eliminated. It will deliver fast
Agile refers to a set of values and principles put forth in the Agile Manifesto. The Manifesto was a reaction against heavyweight methodologies that were popular, yet crippling software projects from actually doing what they needed to do – create software that helped the customer! I believe Agile’s values & principles work because of the science behind Lean and so you’ll see a lot of similar themes repeated in agile.
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||7. Progress measured by working software|
|2. Welcome changing requirements||8. Sustainable development pace|
|3. Frequent delivery of software||9. Continuous attention to technical excellence|
|4. Business people & developers cooperating daily||10. Simplicity|
|5. Build projects around motivated people||11. Self-organizing teams|
|6. Face-to-face conversation is best||12. Regular reflection & adaptation|
Any project that follows these values and principles can rightly be considered to be agile. That said, there are definitely preferred practices that are common for agile teams to follow in order to achieve agility. Most commonly:
- Scrum or Kanban (or a hybrid of the two) for “Management Practices”
- Extreme Programming (XP) for Technical Practices (with new practices becoming popular, largely from Lean Startup – such as Continuous Deployment and Testing in Production)
A good agile team picks and choses the management & technical practices that best work for them. (a bad one just picks a couple of practices and falsely believes that somehow “makes them agile”
Lean vs Agile:
What is LEAN project management?
LEAN is a management system that focuses on improving the overall quality of how an organization works. It takes into consideration every process in the organization and helps improve efficiency and effectiveness of each employee and each process. It helps reduce wastage of time and resources, while improving the quality of the product or service and giving better value for money to the end customer.
What is Agile project management?
The management system is a process in which every project is managed and executed in small parts. Each such section is completed, reviewed, critiqued and the project is continued taking into account the fresh insights gained from the last bit of work. The aim of the system is to help make better decisions and solve issues more effectively with less wastage of time and resources.
2:LEAN methodology comes from the manufacturing sector, while Agile methodology comes from software development.
3:LEAN management is a long term process improvement system for a company, while Agile management is used for quick decision making in individual projects.
4:LEAN methodology manages the overall work of an organization, and applies to all areas of management to get a more efficient and effective overall process. Agile methodology concentrates on making good quick decisions and solving issues the best possible way in the least possible time.
5:LEAN is a larger long-term mechanism to change the way a business works over a period of time. Agile, on the other hand, helps with individual projects and processes in the short term
6:LEAN is a continuing process while Agile is about concentrating on specific tasks in relation to a larger project.
AGILE: A development process that emphasizes short iterations and focuses on delivery of functional software.
Flavors of Agile may include continuous deployment/integration, test driven development, pairing, scrums, sprints, or many other facets that are too long to list here.
LEAN: A process framework where there is an attempt to minimize risk and waste while maximizing customer value.
It is often achieved through a tight feedback cycle with minimal investment between loops. Lean protocols have been employed to optimize manufacturing, construction, and pretty much any business process you can think of.
Do you know there is something called LEAN AGILE AS WELL:
LEAN AGILE: The marriage of Agile development iterations with Lean validation practices.
Here’s how this works:
- Establish a hypothesis
- Figure out the smallest thing needed to test it
- Build that thing in an iterative way
- Always be working towards functional software
- Repeat for each feature, epic, and product
See here how agile can be included in lean: