Software Engineering, Project Management, and Effectiveness
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 LeanJames writes about 7 key principles in Lean:
Example of Deferring CommitmentI 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 EngineeringFrom 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 LifeHow can you use Lean principles in your software development effort? ... your organization? ... your life?
PingBack from http://thediscoblog.com/2007/06/12/the-weekly-bag-june-8/
Aside from the apparent duplication of effort from the Toyota example, how is this different than Agile or Pragmatic development?
Mary and Tom Poppendiecks are thought leaders of Lean Programming. I highly recommend their two books on Lean (both published by Addison Wesley) :
1) Lean Software Development: An Agile Toolkit - this is an excellent intro.
2) 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.
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.