Eliminate Waste
2012-11-13
At Siemens, specifically in the research and development of the Automation Systems (AS) division, we are working on implementing a lean approach to development; actually to the entire product life cycle. What that means in practice here, is going from an extremely document heavy process to a moderately document heavy process with iterations. The real gain is that each project has authorship of their process, what used to be strict guidelines now become advice.
The interesting thing about lean, in contrast to other methodologies, is that it is not a process, but loose principles or rather a state of mind. The AS formulated 8 lean principles:
- Focus on value
- Create knowledge
- Decide at right time
- Deliver fast
- Respect people
- Build quality in
- Optimize the whole
- Keep on improving
If you contrast that with the 7 original principles by Mary Poppendieck and Tom Poppendieck you will see that most are just a different working of the principle. The only two that stick out are "focus on value" and "keep on improving". "Keep on improving" is actually implied and was only added to remind everyone that lean optimization is never done. "Focus on value" is the opposite wording of "Eliminate Waste" and I think that this wording is counter to the original idea and may even make things worse.
Interestingly we are not the only ones who diverge from the original wording. The Cardiff University calls it "Create Flow by Eliminating Waste" and thus puts it into contrast,the Lean Enterprise Institute reduces it to "Create Flow" and Leaning Forward elaborates on that idea as "Make those processes flow". Apparently flowing is an important concept. (All three organisations removed people from the equation, by dropping "amplify learning" and "empower the team", people apparently are not important.)
I understand where the unease comes from when talking about eliminating waste. Waste is an ugly thing and you do not want it in your organisation, you want to improve your production and optimize your value chain. By changing the focus you ignore the underlying issue. You must acknowledge that once you removed all waste from your production line you are operating at optimum.
The problem with software development and many service oriented fields, is that you do not see the waste. Such as bugs that should have been avoidable, documentation that nobody reads or unbalanced work allocation, leading to overtime for some while others wasting time.
I think the issue can be better illustrated with an example from a totally different field: cooking. Let us assume that you need to prepare a feast with multiple courses for your entire family, uncles, aunts and cousins included.
The focus on value approach as the name says focuses on value and the value in cooking is the resulting food. So when you focus on value you focus on putting the greatest care into each step, properly cutting the vegetables, timing the cooking correctly and elegantly presenting the food. What you do not do is clean up after each step, your cutting board is dirty, you have the discarded cutoff pieces of vegetables and mean or spilt liquids on your work area. Each step further you must take more care of not getting the bits of refuse on your current item you are preparing; you do not want gravy in your mouse aux chocolat. To actually get this done you need to either use more tools (spoons, cutting boards or pots) or do some ad hock clean up of the necessary tools.
If you take the eliminate waste approach you do the same basic steps, except you clean up after each major step. This has the advantage that each step can be done efficiently without any impediments, since all tools are clean and everything is ready to be used. You also need less inventory since you can reuse tools from one step to the next.
The important message to take away from the example is that "focus on value" is not the inversed form of "eliminate waste", it is something significantly different.
Eliminate waste is a fundamental idea and I think it is the most important of the seven lean principles. The basic idea is that you constantly look out for places where effort is wasted and friction happens and try to reduce that. In a development environment it is not that hard, you listen to your developers, they will moan that this or that is terrible. You may not able to change everything, but that is a starting point.