Friday, June 8, 2012

The 7 Wastes of Software Development

Many aspects of the Agile Methodology come from the ideas of Lean Manufacturing and the Toyota Production System.  As I've come to better understand agile I feel having an understanding of Lean principles helps to explain why things are done the way they are in Agile.

One core principle of Lean is eliminating waste.  The seven wastes that Lean describes are:

  1. Inventory
  2. Extra Processing
  3. Overproduction
  4. Transportation
  5. Waiting
  6. Motion
  7. Defects
It can be hard to see how these can all apply to software development, but in Lean Software Development: An Agile Toolkit by Mary and Tom Poppendieck they map many lean principles over to effective and agile software development practices.  For example, they list the seven wastes of software development as:
  1. Partially Done Work
  2. Extra Processes
  3. Extra Features
  4. Task Switching
  5. Waiting
  6. Motion
  7. Defects
For more in-depth explanations I would suggest getting the book, as I've found the first half to be pretty useful.  I have yet to finish the second half as it just hasn't been that interesting to me.  

1 comment: