Operational Excellence
I wanted to share some of my musings about operational excellence. When we hear of operational excellence, our thoughts inadvertently go to bug reduction. While bug reduction is an important aspect of operational excellence, it is only a small aspect of it. Operational excellence if practiced correctly can be a strategic competitive advantage. Now the million-dollar question is - what is operational excellence? Put simply, operational excellence is elimination of waste or muda (無駄). Muda is anything that is non-value add for our output. Type 1 muda is a non-value add but necessary activity and Type 2 muda is a non-value add and unnecessary activity. In retail and manufacturing, among the various kinds of wastes, the worst kind is the excess inventory. If you have an inventory buildup, you need to build warehouses to store it. You need to hire people to manage and maintain the excess inventory so it does not deteriorate. Some of this inventory will eventually need to be disposed. So, you need to hire people and create processes to dispose that inventory off. All of this would have been unnecessary if we did not have excess inventory in the first place. In this example we see that we started with type 2 muda (unnecessary waste) and ended up with significant downstream type 1 muda (necessary waste).
In the context of software engineering, bugs are a waste because they are usually a byproduct of defects in our systems and resolving them is a type 1 muda (necessary waste). Hence it is imperative for us to resolve the root causes of the bugs so we are not performing this non-value add activity repeatedly. While it is necessary for us to resolve the root cause, we must also build quality into our software development processes so we can reduce the defects in the first place. Reduction of such defects leads to the reduction of type 1 muda of bug resolutions. What are other wastes in our operations? Excess hardware capacity is another type 2 muda which then leads to downstream type 1 muda. I would like you to refer to the excess inventory example and your imagination to determine how wasteful excess hardware provisioning and planning is. In software development, any project started but dropped temporarily has the same detrimental impact as the excess inventory. We should aim for minimizing our 'work in progress' inventory. Another idea from Toyota Production Systems is to reduce the lot size. Similarly, we should aim to minimize the size of the unit of work we deploy in production. Finally, here are a few tenets I wrote on Operational Excellence
领英推荐
1.???????We consider operational excellence as a strategic advantage. Teams with operational excellence are happy teams which attract and retain the top talent. Software produced by such teams is performant, scalable and has a shorter TTM (Time to Market).
2.???????We plan to measure and eliminate the stale inventory. Examples of stale inventory?- open tickets and issues, policy risks, code stuck in pipeline, active A/B tests,?pending code reviews and features not launched WW on all devices etc.
3.???????We work on reducing the waste of resources in our systems. Resources here are defined as engineer's time, hardware cost and time it takes for the software to launch after code complete. We reduce the waste by automating the repetitive tasks, building frameworks, processes and using best practices to improve developer productivity, and using hardware resources thoughtfully.