The essential DORA metrics to accelerate software delivery

In this article:
Subscribe to our blog:

Measuring performance is fundamental to understanding and improving the workflow in software development projects. However, measuring performance is hard. 

As your organization grows, software becomes more complex and decentralized, and it’s not easy to have visibility on product deliveries. Checking in to dailies and having ad-hoc conversations is no longer sustainable due to the increased number of teams, people, and ceremonies. So, how can you keep visibility over the pace and quality of your product?

Engineering teams need to have the proper visibility and data to make the best decisions to improve and deliver better software continuously. Having the means to measure and evaluate the effectiveness of the software development strategy is a key factor in setting and achieving your goals. The state-of-the-art for measurement is the DORA metrics.

Today, we’ll analyze the 4 DORA metrics, which give you valuable insights to optimize your software deliveries and help your team focus on continuously providing value.

Where did the DORA metrics come from?

​​The DevOps Research and Assessment (DORA) team at Google conducted a research program to measure and understand DevOps practices and capabilities that set high-performing software engineering teams apart from low-performers. 

The DORA team surveyed thousands of teams across multiple industries, and they identified the most effective and efficient ways to develop and deliver software. With their research, the DORA team identified 4 key metrics that indicate software development and delivery performance. 

Years of research culminated in annual reports like the Accelerate State of DevOps 2021 report. The research was also presented in the book Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren, Jez Humble, and Gene Kim.

What are the 4 DORA metrics?

The 4 DORA metrics provide a data-driven approach to analyzing and improving performance based on rigorous research. They are used to identify your level of performance in speed and quality of development. Plus, these metrics can help you quickly identify and eliminate problems and bottlenecks that may be hindering your performance.

  • Deployment frequency: how often your organization completes a deployment to production;
  • Lead time for changes: how long it takes for a commit to get into production;
  • Time to recover: how long it takes your organization to recover from a failure in production;
  • Change failure rate: percentage of deployments causing a failure in production.

Let’s talk about these metrics in more detail, and understand how focusing on them can help your team deliver better software faster and more effectively.

Deployment frequency

Deployment frequency measures how often code is deployed to production. This metric is correlated with the speed of your engineering team, and it is a good indicator of your team’s automation, capabilities, and overall efficiency. 

It is one of the most interesting speed metrics for an organization to work on to ensure that software is delivered early and regularly. Your team’s goal should be to perform small deployments with a high frequency, as reducing the size of deployments and the number of changes for each cycle makes it easier to test and release the deployment.

Deployment frequency analyzes how much value gets delivered to end-users and customers and how quickly your team can provide that value (in the form of bug fixes, new functionality, or other code changes). 

In this article, we explain in depth what Deployment frequency is, how to measure it, and how your team can increase it to achieve best practice levels of engineering performance.

Lead time for changes

​​Lead time for changes measures the time that a commit takes to reach production. This metric is correlated with the speed of your engineering team, and it is a good indicator of your team’s response time, the code complexity, and your team’s capacity. 

It is one of the most interesting speed metrics for an organization to work on reducing its delivery times. This metric is inspired by the Lean principles and analyzes how quickly your teams react to change (like a bug fix, new functionality, or other code changes).

In this article, we explain in depth what Lead time for changes is, how to measure it, and how your team can reduce it to achieve best practice levels of engineering performance.

Time to recover

Time to recover measures how long it takes to recover from failure. This metric is correlated with the quality of your engineering team, and it is a good indicator of your team’s response time and overall development process efficiency. 

It is one of the most interesting quality metrics for an organization to work on to ensure the availability and correct functioning of their software. This metric analyzes how quickly your team can identify incidents and their root causes (e.g., a damaged database or a deployment that breaks an existing feature), notify the appropriate people to deal with those incidents, and resolve them fast.

In this article, we explain in depth what Time to recover is, how to measure it, and how your team can reduce it to achieve best practice levels of engineering performance.

Change failure rate

Change failure rate measures the percentage of deployments that caused a failure in production requiring remediation (e.g., hotfix, rollback, patch). This metric is correlated with and a good indicator of the quality of your engineering tolling and practices. 

It is one of the most interesting quality metrics for an organization to work on to ensure their software’s stability and correct functioning. This metric is inspired by the Lean principles and analyzes how your team guarantees the security of code changes and how deployments are being managed.

In this article, we explain in depth what Change failure rate is, how to measure it, and how your team can reduce it to achieve best practice levels of engineering performance.

What are the reference values for the DORA metrics?

There are reference values for each of the 4 DORA metrics that will enable you to classify your team as an elite, high, medium, or low performer. The Accelerate State of DevOps 2021 report summarizes these values in the following table.

Software delivery performance metrics
Software delivery performance metrics, from the Accelerate State of DevOps 2021 report

Your goal should be to strive for and maintain an Elite performance level. 

Benefits of becoming an Elite performer

  • Make better decisions based on data;
  • Identify inefficiencies and improve them in the future;
  • More predictability when planning projects;
  • Improve team satisfaction;
  • Deliver higher quality products faster; and
  • Reduce costs.

How can you measure the DORA metrics?

If you’re looking for a solution to measure the DORA metrics, Pulse is the way to go.

Pulse dashboard
Pulse dashboard

Pulse takes care of all the details to ensure your DORA metrics are accurate and reliable.  Pulse connects seamlessly with your GitHub, Jira, and PagerDuty to give you DORA and other Engineering metrics out-of-the-box. Your team only needs to focus on making informed decisions to improve your results.

What you get with Pulse

  • Peace of mind when collecting engineering metrics: we do the work for you, ensuring reliable metrics and continuous tracking.
  • No need to choose what to measure: no need to get caught in output or vanity metrics that are hurtful for your team in the long run; we research for you.
  • Historical data: immediately see your performance over the last 90 days – and up to 1 year;
  • Easily filter repositories, teams, and time periods.
  • More metrics beyond DORA to explain how they are evolving;
  • Our team and community can help you on the journey of continuous improvement.

Empower your Engineering with the DORA metrics. Connect with GitHub to find out which capabilities impact your organization the most and start improving your Engineering health. Track and measure the DORA metrics, and prioritize your team metrics all in one place.

Conclusion

Software engineering teams are constantly looking for ways to improve their processes and delivery, and the chances are your team is no exception. 

With the DORA metrics, you can know how your team is performing, the overall health of your organization, and what you need to focus on to improve the efficiency of your Engineering team.

Pulse allows you to easily measure the DORA metrics in your projects and make better decisions. So start measuring the DORA metrics today, and join our community!

 

RELATED
BLOG POSTS

How to determine your goals and metrics to adopt a data-informed culture
When you are thinking about your Engineering analytics, some common questions might cross your mind:
How to measure Deployment frequency?
Deployment frequency is one of the most interesting metrics you should use to evaluate your team’s productivity and the overall efficiency of your...
How to measure Lead time for changes?
Lead time for changes is one of the most interesting metrics you should use to evaluate the efficiency of your Engineering performance.

Automate code
reviews on your commits and pull request

Group 13

2023 CODACY - AUTOMATED CODE REVIEW