You want to measure software delivery performance, but don’t know how?. Do you want to know if your team is performing well? Don’t you know what to do to remain competitive? The answers to these and many more questions will be answered in this post.
Measure software performance isn’t an easy task, organizations in all industries are using small teams that work in short cycles and measure feedback from users to build products and services that delight their customers and rapidly deliver value to their organizations. These high performers are working to get better at what they do, about how they may achieve their goals.
Disclaimer: This post has been adapted from Accelerate: The Science of Lean Software and DevOps by Nicole Forsgren, PhD, Jez Humble, and Gene Kim.
To remain competitive and succeed in the market, organizations must accelerate:
At the heart of this acceleration is software.
Technology leaders need to deliver software quickly and reliably to win in the market. The key to successful change is measuring and understanding the right things with a focus on capabilities and not on maturity.
Shifting to a capabilities model of measurement is essential for organizations wanting to accelerate software delivery. This is due to four factors.
Maturity Models | Capabilities Models |
---|---|
Focus on helping an organization arrive at a mature state. | Focus on helping an organization continually improve and progress. |
Similar set of technologies, or capabilities for every set of teams and organizations to progress through. | Allow different parts of the organization to take a customized approach to improvement, taking into account short and long-term goals. |
They are output based. | They are outcome based. |
Define a static level of process, and organizational abilities to achieve. | Allow for dynamically changing environments and allow teams and organizations to focus on developing the skills and capabilities needed to remain competitive. |
By focusing on a capabilities paradigm, organizations can continuously drive improvement. And by focusing on the right capabilities, organizations can drive improvements in their outcomes
There are a couple of factors that people believe drive software delivery performance, but in fact, none of the following factors are predictors of performance
Software is transforming and accelerating organizations of all kinds. The practices and capabilities we talked here give rise to what is known as the DevOps movement, and they are transforming industries everywhere.
DevOps emerged from a small number of organizations facing a evil problem: how to build secure, resilient, rapidly evolving distributed systems at scale.
In order to remain competitive, organizations must learn how to solve these problems.
Some of the advantages of adopting DevOps lead to:
There is a need to measure DevOps capabilities accurately and to communicate these measurement results to leaders, who can use them to make decisions and inform strategy about their organization’s technology posture.
Measuring performance in the domain of software is hard, the way work is broken down is arbitrary, and the design and delivery activities happen at the same time.
Indeed, it’s expected that we will change and evolve our design based on what we learn by trying to implement it. So it is necessary to define a valid, reliable measure of software delivery performance.
There were several methods to measure performance, but I am going to focus on just three:
A successful measure of performance should have two key characteristics.
Metric of delivery performance that meet these criteria are:
It is the time to implement, test, and deliver code for a feature.
Shorter product delivery lead times are better since:
It is the number of deployments in a given duration of time. By deployment I mean a software deployment to production or to an app store. Shorter deployment frequency are better since:
It is the time it takes to restore service after production failure. The key question is: How quickly can service be restored? How long it takes to restore service when a service incident occurs.
It is the percentage of failed changes over all changes.
Look at what percentage of changes for the primary application or service you work on either results in degraded service or requires remediation.
High performers do better at all of these measures, but much dogma in our industry still rests on the false assumption that moving faster means trading off against other performance goals, rather than enabling and reinforcing them
High-performing organizations are twice as likely to exceed these goals as low performers. Therefore your organization’s software delivery capability can in fact provide a competitive advantage to your business.
Whether you’re trying to generate profits or not, any organization today depends on technology to achieve its mission and provide value to its customers or stakeholders quickly, reliably, and securely.
The following diagram shows how Software Delivery Performance drives Organizational Performance and Noncommercial Performance.
We learned how to make our organization remain competitive in the market, how to measure software performance, what makes a measure good and what doesn’t, and which ones we can use.
Finally, we talked about the importance of how Software Delivery Performance drives organizational performance and Noncommercial performance, helping achieve the organizational goals.