Get Lean, Eliminate Waste
If you want to tune your software engineering, take a look at Lean. Lean is a great discipline with a rich history and proven practices to draw from. James has a good post on applying Lean principles to software engineering. I think he summarizes a key concept very well:
"You let quality drive your speed by building in quality up front and with increased speed and quality comes lower cost and easier maintenance of the product moving forward."
7 Key Principles in Lean
James writes about 7 key principles in Lean:
- Eliminate waste.
- Focus on learning.
- Build quality in.
- Defer commitment.
- Deliver fast.
- Respect people.
- Optimize the whole.
Example of Deferring Commitment
I think the trick with any principles is knowing when to use them and how to apply them in context. James gives an example of how Toyota defers commitment until the last possible moment:
"Another key idea in Toyota's Product Development System is set-based design. If a new brake system is needed for a car, for example, three teams may design solutions to the same problem. Each team learns about the problem space and designs a potential solution. As a solution is deemed unreasonable, it is cut. At the end of a period, the surviving designs are compared and one is chosen, perhaps with some modifications based on learning from the others - a great example of deferring commitment until the last possible moment. Software decisions could also benefit from this practice to minimize the risk brought on by big up-front design."
Examples in Software Engineering
From a software perspective, what I've seen teams do is prototype multiple solutions to a problem and then pick the best fit. The anti-pattern that I've seen is committing to one path too early without putting other options on the table.
A Lean Way of Life
How can you use Lean principles in your software development effort? ... your organization? ... your life?
More Information
Comments
Anonymous
June 11, 2007
PingBack from http://thediscoblog.com/2007/06/12/the-weekly-bag-june-8/Anonymous
June 12, 2007
Aside from the apparent duplication of effort from the Toyota example, how is this different than Agile or Pragmatic development?Anonymous
July 02, 2007
Mary and Tom Poppendiecks are thought leaders of Lean Programming. I highly recommend their two books on Lean (both published by Addison Wesley) :
- Lean Software Development: An Agile Toolkit - this is an excellent intro.
- Implementing Lean Software Development: From Concept to Cash (continuation of the discussion started by the first book, deeper coverage of the issues that people encounter when trying to implement Lean. Happy reading!
- Anonymous
August 28, 2007
Re: Robert's post That's just it! Lean and agile fundamentally share many of the same principles. You'll see a lot of lean in agile and vice versa. Agile was conceived for software development and Lean for car manufacturing. The fact that they boil down to the same principles is immensely useful. Both industries can learn from one another and leverage common values and practices. Combining them provides a more complete picture of the story.