If most organizations were to take a very close view of their value streams, what they would discover is that they have waste strewn throughout the entire value stream. The only way in which these organizations are ever going to effectively tackle this waste is by changing to a Kaizen culture. Again, if we are to truly understand DevOps, then we must fully understand one of the key principles that DevOps is built on and that is Kaizen.
Kaizen is a Lean tool/concept for the elimination of waste through continuous improvement. Let’s take a close look now at all of the areas of software development and the typical waste in the entire value stream, the causes and how to eliminate the waste.
One area that very few organizations have realized has excessive waste is the inception phase. The inception phase of the value stream generally incorporates customer need comprehension, solution generation and solution proposal (Agile artifact creation). In this phase, what research has shown and is not widely publicized is that up to two thirds of this work that is developed turns into waste. Why would almost two thirds of this work we are creating for our Agile teams be waste? There are a few key reasons for this, one is that feature creep is a much more prevalent problem in the industry then the vast majority of organizations realize. Part of this problem is that almost no one has put any type of metrics in place to measure how effective product management is in meeting customer needs over time through the Agile artifacts they create. The second reason for this waste also ties into the first issue of feature creep and DevOps attempts to fix this through feedback loops. DevOps calls for short iterations with small increments of code moving through the system all the way to the final customer with feedback loops and monitoring in place, plus the possibility of A/B testing so that Agile teams can get quick feedback on what they have created in order to quickly make adjustments based on actual customer feedback. This is in stark contrast to traditional development where teams work for weeks, months even years to complete all of the Agile artifacts and then finally release to customers only to find out they have not meet customer expectations or created something the customer didn’t even want.