As we will have realized by now, DevOps is not a goal. It is merely a means (even better, a mindset) to achieve high-performance teams and organizations. DevOps enables cross-functional (x-silo) collaboration in and between your teams to support a continuously improving digital value chain. As a matter of fact, I rather speak of Value Flow than DevOps. But in the end, it doesn’t really matter how you call it. As long as you achieve your goal. So if it’s high-performance teams we want to achieve, which path leads us there?
I would say the path to high-performance has two axes: Value and Flow. If both value and flow are executed and adopted effectively, you will achieve high-performance. If there’s no flow in the team, but value is high, the organization will lack innovative power and feel bureaucratic. A team delivering low value, but high flow, focus on the wrong work, leading to burnout. A team without both flow and value is bound to become extinct.
So how can a team, or team-of-teams, deliver high value outcomes? In my opinion, just like the realization of value is a team effort, the same should apply to value definition. Specifically in complex environments, designed to deliver high-performing products and services, value is multidimensional. Surely, the business (the customer, the user) have a crucial voice in determining the required value. But we also need to utilize the knowledge and innovative strength which resides in the team and in its environment (e.g. suppliers, architecture, security). Most of the experiments and technology innovations do not come from the business. IT has an ever more relevant role in keeping the business competitive. The same goes for the prioritization of value. If we want to eliminate the burden and potential lead time damage of technical debt, IT will need to help the customer/business establish the right priorities and highlight the real value of work like refactoring or experimenting with new technology opportunities.
(If you want to learn more on how to define and measure value, please have a look at this series of blog posts from Julya van Berkel: http://labs.sogeti.com/how-to-measure-value-part-4/).
And what about flow? What does a team need to do to achieve a state of high flow? My experience reflects a lot from the practical application of the major principles from Don Reinertsen’s essential work ‘The Principles of Product Development Flow’. Think about the reduction of batch size, which is critical to achieving an end-to-flow in complex delivery networks. Although not all teams have an optimal batch size of 1, reducing the team’s batch size (also while deploying and releasing) has led to considerable improvements in lead times and MTTR (Mean Time To Recover).
Visualizing and limiting WIP (Work in Progress) is yet another fundamental instrument, which has given many of my teams an extreme boost in optimizing their flow. I found out that consistently visualizing the work and identifying/exploiting bottlenecks helps any team in achieving flow.
Finally, flow is achieved through eliminating as much queues as possible. In any organization queues are everywhere, eg. Product Backlogs, service desk call queues, personal to-do- lists, etcetera. The more you apply DevOps principles (such as fast feedback and multidisciplinary teams), the more you will be able to consolidate and reduce queues in the entire end-to-end system.
So, if your CIO turns to you and asks for your view on ‘how to move towards DevOps’, make sure to emphasize the need for an optimal balance between value and flow. More information on DevOps, flow and high-performance value networks, inlcuding several examples, please have a look at this recent report on DevOps and Digital Disruption.