13

Can I say Agile is "not" Lean and both Agile and Lean are totally different concepts or philosophies?

If I take lean principles:

  1. "Self Organization"
  2. "Kaizen or Cont. Improvement"
  3. "Quality Assurance"
  4. "Pokayoke or Fail Proof"
  5. "Mudha or Waste Elimination"

I see Agile definitively meets first two and a bit of 3 with feedback loop, but not the rest. Does this make Lean methods like Kanban more superior. No intentions to undermine any particular principles but wanted a logical clarification to have a clear understanding.

13

Agile and Lean have different roots but to some point they are overlapping. The former bases on Agile Manifesto, while the latter has its roots in Toyota Production System, but in many areas both movements are aligned and are often treated as similar concepts.

You can find a bit more elaboration on the subject in this question and specifically in this answer.

If you talk with orthodox people they might insist Agile and Lean are completely separate concepts, but since I'm far from such attitude I would say that, in general Agile is pretty much Lean and the other way around.

A few words of comment: I don't agree with reducing Lean just to Lean Software Development (which is just one of lean methods applicable to software development) or Agile to specific techniques, like TDD, or methods, like Scrum. Both Lean and Agile are general concepts and Kanban, Scrum, Lean Software Development and whatnot are just specific implementations of these concepts.

Also you can't say this or that method is superior over others. You will want to use different methods depending on a situation. Sometimes Scrum (labeled "Agile") will be better and sometimes you'd prefer to go with Kanban (labeled "Lean). My advice here: stop thinking bout labels and think what is the most reasonable method in each specific situation. You don't get points for being more agile or more lean, but for finishing your projects.

Even if you treated adoption of specific methods as a reference whether you are lean or agile, which is wrong, you would still find much of overlap. And of course you can be agile/lean even if you don't use any named method. It is about about following principles and not following the book.

If you look at the subject from this perspective Lean and Agile will be pretty close to each other and you definitely can't say they are "totally different."

  • 2
    I think it's more accurate to say that both the Toyota Production System and Lean Software Development have their roots in Lean Thinking. Modern Lean Software Development is more like product development than a production line, and many of the practices we do aren't derived from TPS any more. – Lunivore Oct 28 '11 at 16:31
  • "You will want to use different methods depending on a situation." +1 just for that. Isn't that the whole point of kaizen, continuous improvement, postmortems and reflections, and so on - identification of what works, what doesn't, and changes to make the process work better? – Thomas Owens Oct 28 '11 at 16:46
5

Most agile methodologies call for self-organizing teams and a focus on continuous improvement of the process and product. However, I would also make the argument that agile incorporates waste elimination and poka-yoke, and quality assurance to some extent, depending on the specific methods. Examples of this being You Ain't Gonna Need It/YAGNI and Test Driven Development.

Test Driven Development adds to quality assurance practices by ensuring that all features have test code and test procedures developed, and by developing tests that fail and then writing code to pass the tests, you are working toward fail-proofing your system. Together, YAGNI and TDD reduce waste by enforcing that only the essential code is produced. YAGNI can also be extended to documentation.

You can be lean without being agile, but it is very difficult, if not impossible to be agile without being lean.

I think the Lean Software Development article on Wikipedia is pretty informative, overall.

3

Lean was there first, before the Agile movement started. Toyota has been working on their TPS (Toyota Production System) since the end of world war two. Conceptually it's still work in progress and always will be. The "Agile" movement in software engineering is much younger.

The way I see it, both share a lot of similar concepts. One of the most prominent examples would be the school of thought led by Mary and Tom Poppendieck (more details here and here). There are, however, a number of different approaches that fit under the umbrella of agile methodologies, e.g. XP, Scrum, FDD, Crystal, and others. From that perspective you could say that Lean is just one more of them.

On the other hand there are practices that are part of Lean thinking that are not yet as wide spread in the Agile mainstream, e.g. A3 thinking. However, this is starting to change as well, and I suspect the reason is that more people are looking for further Lean techniques that could be leveraged for software engineering.

Specifically to the five items you list, my view would be as follows:

  1. Met by agile software development (you already answered this yourself)
  2. Met by agile software development (you already answered this yourself)
  3. Met by agile software development, e.g. TDD but others more, e.g. frequent iterations and small releases combined with feedback
  4. Met by agile software development. Fail proof can be achieved by Simple Design, TDD, and others
  5. Met by agile software development. Waste elimination can be accomplished by techniques such as merciless refactoring, simple design, "The simplest thing that could possibly work" and YAGNI ("You ain't gonna need it").
  • 1
    Also, even the agile iteration process, like having shippable product at the end of the sprint, force you to eliminate waste with the 'just in time' mindset. – xsace Nov 8 '11 at 22:35
2

Lean, Kanban, Agile are just tools what matter are principles. The Guy who taught Toyota was actually an ... American unknown in his own country until former Ford CEO rediscovered Edwards Deming. He is mentionned in Sutherland seminar and in this Forbes video http://www.youtube.com/watch?v=6gfcvIUmdZU

You cannot really use any of these tools without understanding the principles. In fact these tools do not matter so much after you understand the root of things, you should be able to create your own adapted to your organisation.

See http://www.youtube.com/watch?v=GXVgsPxQR54&feature=player_embedded http://www.youtube.com/watch?v=GHvnIm9UEoQ&feature=player_embedded

2

The Poppendieck's defined lean software devlopment in their seminal work, Lean Software Development: An Agile Toolkit

Research has a number of opinions on lean and agile. In a survey on agile methodologies, lean was considered a type of agile methodology. (see "Empirical studies of agile software development: A systematic review")

Lean has been shown in further research be different based on two factors from Agile. (see the chapter called "Is lean agile and agile lean?" from the book Modern Software Engineering Concepts and Practices: Advanced Approaches) Lean is different than agile development because it focuses on one thing, which agile does not:

  • E2E: Lean has the principle of end to end improvement

The E2E concept is important because it optimizes the whole process instead of sub-optimizing only parts.

0

I've taken both Scrum & Agile certification training this year in which Lean was presented as a forerunner of Agile, part of the ground out of which Agile grew.

So, not totally separate philosophies.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.