DevOps is good for organizations. According to the recently released State of DevOps Report, high-performing IT organizations are two times more likely to exceed profitability, market share, and productivity goals. But how do they do it? How do they use DevOps to drive value and differentiate their companies?
We recently sat down with Nicole Forsgren, CEO and Chief Scientist at DORA (DevOps Research and Assessment) and lead investigator for the State of DevOps Report, to discuss the role of measurement in DevOps Success. From years of research into DevOps operations and culture, Forsgren and her colleagues have found that success depends on improving two key outcomes—speed and stability. These, she says, are crucial for driving improvement in organizational performance and value.
But achieving these outcomes requires investing in certain core capabilities. These capabilities, which fall into four broad categories, are the main levers for improving software and, in turn, driving, predicting and positively impacting an organization’s bottom line.
Technology & Automation
Improvement in any of the areas within this category will have fantastic down-the-road effects on your ability to develop and deliver software. Key capabilities include:
The most challenging item on this list, says Forsgren, is supporting test data management, while the highest performing companies tend to be strongest in the automation of their deployment process. If you’re just getting started with your DevOps Journey, Forsgren recommends starting with version control for all production artifacts.
Management & Process
To improve in the areas of management and process, Forsgren suggests starting with the following capabilities:
Gathering, Implementing, and Broadcasting Customer Feedback
Does your development team know why they’re coding what they’re coding? Are you gathering ideas about what you should code directly from your customers? Does your development team know where suggestions come from?
Making the Flow of Work Visible Throughout the Value Stream
This capability goes beyond just having dashboards. It’s about making the value flow visible and allowing people to understand where their piece fits into the whole flow.
Working in Small Batches With a Lightweight Approval Process
This helps ensure work can get through the system very quickly.
Measurement & Monitoring
This category prescribes four key capabilities for driving improvement:
Culture is one of the more difficult areas for companies to improve, but by gaining a better understanding of the capabilities that enable strong DevOps cultures, they can start laying the foundation for a healthy and successful IT organization. These capabilities are:
Encouraging and Supporting Learning
Taking seriously the value in learning, understanding it as an investment instead of a short-term cost.
Supporting and Facilitating Collaboration Among Teams
Providing Resources and Tools That Make Work Meaningful
This capability goes way beyond “job satisfaction,” which is a shallow measure how happy people are with what they do. It’s about whether people find meaning in their work and are given the resources and tools they need to succeed.
Supporting a “Generative” Culture
We typically think of DevOps culture in terms of things like communicating across silos or implementing new ideas. Forsgren explains, however, that companies need a solid framework to predict performance outcomes and understand why things go wrong. For that, she and her fellow researchers borrowed from sociologist Ron Westrum, who created a model for predicting and understanding success outcomes in high-risk, highly complex fields like healthcare, aviation, and nuclear power.
This framework also works well for understanding the cultural characteristics that affect performance in technology companies. Forsgren notes that high performing technology organizations are more likely to encourage generative cultures.
Take a look at the table below. Do you know where your company falls? Does it spur ideas about how your organization might make cultural changes that would improve software delivery?