DevOps is good for organizations. According to the soon to be released State of DevOps Report high-performing IT organizations are 2X 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 these areas within the Technology & Automation category will have fantastic down-the-road effects on your ability to develop and deliver software. Key capabilities include:
- Using version control for all production artifacts
- Automating your deployment process
- Implementing continuous integration
- Using trunk-based development methods
- Implementing test automation
- Supporting test data management
- Shifting left on security
- Implementing Continuous Delivery
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 and having a lightweight approval process—This helps ensure work can get through the system very quickly.
Learn how to address three practical challenges of using microservices architecture, including: how to handle changing deployment patterns, how to deal with dependencies between services, and how to avoid getting stuck with the wrong implementation technology.
Measurement & Monitoring
This category prescribes four key capabilities for driving improvement:
- Monitoring Across Application and Infrastructure to inform Business Decisions. (Note that, while many companies are good at monitoring across workflow, they’re not as good at using that information to inform business decisions.)
- Checking System Health Proactively
- Improving Processes and Manage Work with WIP Limits
- Visualizing Work to Monitor Quality and Communicate—Think dashboards that are very visible and accessible!
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?
To continue learning about the role measurement within DevOps Success and our entire conversation with Nicole Forsgren click here.