InfoQ

News

Fowler: Agile Vs. Lean Misses the Point

Posted by Chris Sims on Sep 01, 2008

Community
Agile
Topics
Methodologies ,
Adopting Agile
Tags
Lean ,
Toyota Production System ,
Adoption

In a recent blog post, Martin Fowler explains how the question "Should I use Lean software development instead of Agile?" is based on a false premise. Agile and lean are so deeply interwoven that if you are doing agile you are doing lean, and vice-versa. Those considering process change will likely find the description of the interrelatedness interesting and enlightening.

Fowler starts off explaining a bit of the history of lean, which traces its roots to lean manufacturing and the Toyota Production System developed in the 1950's. This system, and the thinking behind it, is widely credited with giving Japanese manufacturing, and Toyota in particular, a significant edge.

Lean has come to be used as an umbrella term for any approach to work based on lean manufacturing and the Toyota Production System. This includes lean construction, lean laboratory, as well as lean software development.

Agile is the umbrella term for a family of software development methodologies, including Scrum and XP, all of which share some core principals. When someone says they are doing agile software development, they might mean that they are using any one of these methodologies, a hybrid of several, or simply working in a way that embodies the core agile principals.

Many of the people who developed the current crop of agile methodologies were strongly influenced by lean manufacturing and the ideas behind it. This can be seen in the many commonalities between lean and agile, including:

  • People centric approach
  • Empowered teams
  • Adaptive planning
  • Continuous improvement

Based on the work of Mary and Tom Poppendieck, Alan Shalloway, and others, a lean software development community has come into existence. This community is distinct from other communities, such as Scrum, XP, DSDM, and FDD. Yet all of these communities exist under the umbrella of agile. Agile, in turn, is highly influenced by the original lean manufacturing ideas.

It is true that 'lean software development' is agile. It is also true that 'agile software development' is lean. Thus, it makes no more sense to ask "Should I adopt agile software development or lean software development?" than it does to ask "Should I adopt Scrum or agile?"

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

It's all true! by Eric Willeke Posted Sep 1, 2008 3:27 PM
True, but sad he had to say it by Jim Leonardo Posted Sep 2, 2008 10:48 AM
There is no versus by Phillip Cave Posted Sep 2, 2008 12:35 PM
No, they are different by Bill Barr Posted Sep 3, 2008 2:43 PM
  1. Back to top

    It's all true!

    Sep 1, 2008 3:27 PM by Eric Willeke

    This is what I was talking about with this blog post earlier this year:

    manicprogrammer.com/cs/blogs/willeke/archive/20...

    There was also some solid talk about creating a model around Agile at Agile2008. Expect to hear more about this soon, and check at the agile-model-evolution group at Yahoo Groups (tech.groups.yahoo.com/group/agile-model-evolution/)

  2. Back to top

    True, but sad he had to say it

    Sep 2, 2008 10:48 AM by Jim Leonardo

    The fact that anyone would even consider anything other viewpoint tells me how much the term "Agile" has been hijacked by the whitepaper brigade. Agile is a set of principles, a philosophy, a meta-methodlogy, or anything other than "THE Agile methodology". People who know nothing of the Agile Manifesto or the history thereof have abused the term left and right, leading to the confusion of Lean vs. Agile. I would argue a lot of Lean principles can even be combined with some of the specific Agile methodologies.

  3. Back to top

    There is no versus

    Sep 2, 2008 12:35 PM by Phillip Cave

    It is unfortunate that any "versus" exists. Having played a major part of adopting agile practices for IT teams in a company driving lean into the organization it was easy to see how agile follows lean principles. When I am coaching agile execution or giving teaching presentations I am careful to mention how lean thinking is a foundation to agile execution. I am hopeful as we (the agile community) progress in understanding value and executing on delivering value that the agile/lean mix will come to be an understanding of "this is simply how we execute to deliver value".

  4. Back to top

    No, they are different

    Sep 3, 2008 2:43 PM by Bill Barr

    Agile and Lean may be complimentary but, they are different. Moreover, XP and Agile are different and may not even be complimentary! Lean and XP are often complimentary but, not always.

    The 4 principles of Lean Development are:

    -Add Nothing But Value (Eliminate Waste)
    -Center On The People Who Add Value
    -Flow Value From Demand
    -Optimize Across Organizations

    The Agile Manifesto says:

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

    The Agile Manifesto satisfies the middle two Lean principles and a bit of the first. Lean is all about waste elimination and (multi-)organizational optimization. At best, Agile is a subset of Lean. It's false to say that if one is doing agile, one is doing lean. It may be true to say that if one is doing lean, one is doing agile, however.

    XP actually violates the first principle of the Agile Manifesto. XP is an extremely prescriptive and disciplined process requiring complex and sophisticated tools (for re-factoring). There are many practitioners who insist that if all of the practices aren't being followed, XP isn't being practiced. That's process and tools over people. Lean also requires that if a process is not needed or isn't working, get rid of it. That's how Lean can break XP.

    Lean is also designed to scale and scale well. Agilistas are still wringing their hands over this one. Go back and read what Shewart, Fruth, Deming and Taylor wrote. The similarites and differences between Lean, Agile and XP will become very apparent.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.