Striving for Continuous Improvement
Kaizen (改善), is the Japanese word for "continuous improvement ". In business, kaizen refers to activities that continuously improve all functions and involve all employees from the CEO to the assembly line workers.
During the many DevOps adoption journeys we have seen among VersionOne customers, we have started to identify trends between companies that experience high impact after adoption and companies that take longer to realize significant benefits from their DevOps journey. The main differences we have seen among high performers are:
- They are very good at communicating company/wide and making their work visible
- They quickly identify areas of opportunity in the value stream and make small changes consistently
This may seem overly simple; and it is. It turns out the biggest challenges at large organizations who are adopting DevOps are A) they don’t know how to make the work visible and B) they don’t know what changes to make in order to improve the flow of their value/stream. The only way of getting good at getting better is to add instrumentation around the activity taking place in your value stream and establishing an open feedback loop. Most companies adopting DevOps recognize and agree with this idea, however, they don’t really know to make the work visible or how to identify areas for improvement.
Making the Work Visible
[caption id="attachment_7616" align="alignleft" width="300"] Resulting value/stream map from a value/stream mapping session[/caption] The only way to learn how to get better is put it all out there. The best performers take the time up front to map their value/stream first to ensure their devops implementation is a mirror of that map. During these sessions, a high number of a/ha moments take place; mainly because of incorrect assumptions one group has about another group and their scope of work, and also individuals undertaking tasks no one knew were taking place.
Translating the Value Stream Map to Software
[caption id="attachment_7614" align="alignright" width="300"] Continuum’s progression board[/caption] Using the “Progressions” feature of VersionOne Continuum, it is simple to translate the value/stream to software terms. Doing so will allow the company to have a centralized place to see how value is flowing through the value/stream for each product or service. Once a progression has been defined, Continuum can be configured to display the value that is flowing (workitems) based on the commit data coming from your version control system. This practice has tremendous power in aligning the organization as they strive to reach common goals.
Identifying Areas of Opportunity
After successfully mapping out the progression, measuring the flow of value and the timing of activities around the value/stream is crucial. This allows us to identify areas of opportunity in order to implement enhancements; effectively teaching us how to get better. [caption id="attachment_7615" align="alignleft" width="300"] Continuum’s Measurements Dashboards[/caption] Continuum’s new measurement dashboards analyze and aggregate the data flowing through your value stream, presenting the data in an elegant and easy to read dashboard. It allows us to analyze data in two important categories: Flow – As value flows through the value/stream, Continuum will provide insights into the following areas:
- Workitem distribution
- Lead Time
Risk – As software is delivered, Continuum provides feedback on the following risk/related areas:
- Commit Distribution (relative to “code complete”)
- Rogue Commit Percentage
- Risk and Value averages
The following are examples of changes that can be implemented as a result of visualizing the value/stream and its related metrics: Delivering “done” software sooner – Sitting on “done” software for long periods of time seems to be a common trait among companies without a strong devops culture. Identifying aging package revisions in the progression board allows companies to identify software that is done and ready to ship, increasing release cadence. Enhancing or eliminating inefficient processes – Focusing on flow metrics through the phases helps to highlight inefficiencies. Once identified, the group can dig in to start making small, incremental changes in order to cut waste. Relieving bottlenecks – Viewing real/time distribution of workitems per phase allows companies to identify phases (and groups) that may have become a bottleneck for the organization. This can turn into enhanced processes to increase speed or increased resources for the people that need them. Focusing on Quality – Identifying a high number of commits close to the “code complete” phase reveals a shortened period of testing and can result in low quality. Additionally, identifying rogue commits allows companies to see untracked (and lost) value that is making it into a release. Finally, risk averages reveal the number of high risk files and revisions that were involved in a release and allows companies to add rigor around testing for high/risk releases. Learning how to get better is easier than it sounds but you must be willing to put in the work. VersionOne Continuum is the platform that can help you get this rolling and provide ongoing insights to keep improving. Kaizen. Find out more about the VersionOne 2017 Spring release Find out more about VersionOne Continuum