I was impressed with the Lean Software Development process, and thought it would be worthwhile to discuss it in context with this Software Design knowledge area. The biggest takeaway I have is that of the principle of eliminating waste. (All the principles of lean should be implemented, but I like to identify a few words to associate with new ideas) For those who need some background, please visit Mary and Tom Poppendieck’s site.
As applied to manufacturing, eliminating waste seems intuitive. As in manufacturing, there are many areas (obvious and non-obvious) in software development where waste can be eliminated. And lean fits well with the strategies and methods of agile development. It is our duty as a CSDP to understand and apply these principles to our projects.
From the Poppendieck site, “Lean organizations concentrate on the rapid flow of value, because they have discovered the fundamental principle of Lean Six Sigma: quality, speed, and low cost are tightly linked; in fact, they work together to provide world class performance”. Just like the agile concept of customer focus, lean considers waste to be anything that does not provide timely customer value. This does NOT mean that you throw necessary methods or processes out the window. It means you must justify that the method or procedure provides value either to the customer or value to the process of creating value for the customer. For example, does that document need to be formally produced or would a wiki entry be good enough?
Finally, I think there is one thing that I keep hearing over and over at conferences and in books that is stated in the “LEAN Software Development” book by Mary and Tom Poppendieck, “..transferring practices from one environment to another is often a mistake. Instead, one must understand the fundamental principles behind practices and transform those principles into new practices for a new environment.” This is where we as a CSDP can help!
Allen