DORA Metrics
Introduction
Measuring the performance of a software development team was long considered impossible. However, the DevOps Research and Assessment (DORA) group has developed a set of metrics that can be used to measure the performance of a software development team. These metrics are based on the research conducted by the DORA group and are widely used in the software development industry.
DORA Metrics
The DORA metrics are a set of four key metrics that can be used to measure the performance of a software development team. These metrics are:
-
Deployment Frequency: Deployment frequency measures how often a software development team deploys code to production. High performing teams deploy code more frequently than low performing teams.
-
Lead Time for Changes: Lead time for changes measures the time it takes for a code change to be deployed to production. High performing teams have a shorter lead time for changes than low performing teams.
-
Mean Time to Restore: Mean time to restore measures how long it takes a software development team to restore service after a failure. High performing teams have a shorter mean time to restore than low performing teams.
-
Change Failure Rate: Change failure rate measures the percentage of code changes that result in a failure. High performing teams have a lower change failure rate than low performing teams.
DORA Metrics in Practice
The DORA metrics help teams to identify areas that need improvement and to track their progress over time. By measuring these metrics regularly, teams can identify bottlenecks in their development process and take steps to address them.
They can also be useful for assessing companies and teams when considering a job offer. If a company has a high deployment frequency, short lead time for changes, low mean time to restore, and low change failure rate, it is likely a high performing team.
High Performing Teams
High performing teams have the following characteristics:
- High Deployment Frequency
- Short Lead Time for Changes
- Low Mean Time to Restore
- Low Change Failure Rate
Such teams deliver significantly more value to their customers and are more likely to be successful in the long run. They are many times more likely to achieve their business goals and are more likely to be happy and satisfied with their work.
Low Performing Teams
Low performing teams have the following characteristics:
- Low Deployment Frequency
- Long Lead Time for Changes
- High Mean Time to Restore
- High Change Failure Rate
Such teams are less likely to achieve their business goals and are more likely to be unhappy and dissatisfied with their work. They are also more likely to experience burnout and turnover.
Most Teams
Most teams fall somewhere in between high and low performing teams. They have a mix of high and low performing characteristics and can benefit from measuring and improving the DORA metrics.
The DORA metrics should be used to guide team strategy and decision making. Teams should focus on improving the metrics that are most important to their business goals and should track their progress over time.
Implementing DORA Metrics
Implementing the DORA metrics requires a cultural shift within the organization. Teams need to be empowered to make decisions and to experiment with new ways of working. They need to be given the tools and resources they need to be successful and to be supported by leadership.
The organization I work for embraced the DORA metrics with a focus on increasing deployment frequency. Their mobile app was updated on a six month release cycle, which was far too slow for the fast-paced mobile app market. With a lot of planning and hard work, the team was able to increase the deployment frequency to once a week. The end result was fewer bugs, happier customers, and a more engaged team.
Seeing this change in action was incredibly impressive and the outcome was well worth the effort.
Individual Metrics
No metrics have been found for measuring the performance of an individual developer. The DORA metrics are designed to measure the performance of a team as a whole and should not be used to evaluate individual performance.
Doing so discourages collaboration and teamwork and can lead to a toxic work environment. Instead, teams should focus on improving the DORA metrics as a group and should work together to achieve their business goals.
Let's say that a developer on your team spent the last month refining your team's build process. This work resulted in a 10% increase in deployment frequency. This developer should be rewarded for their hard work and dedication to the team's success.
They may not have made a single code change during this time, but their work was critical to the team's success.
Any metric that only measures individual performance would be likely to overlook this developer's contribution.
Conclusion
The DORA metrics are a powerful tool for measuring the performance of a software development team. By measuring deployment frequency, lead time for changes, mean time to restore, and change failure rate, teams can identify areas that need improvement and track their progress over time.
If our goal is to improve our process or team performance, the DORA metrics are the only measurement that works. They are based on research and have been proven to be effective in improving the performance of software development teams.
Additional Resources
I strongly recommend reading the Accelerate book to learn more about the DORA metrics and how they can be used to improve the performance of a software development team. You should also be sure to read the annual State of DevOps report published by the DORA group to stay up to date with the latest trends in the software development industry.