“You can’t manage what you can’t measure.”
While software development practices constantly change, there will always be a tier of truly top engineering teams who stand above their peers by combining unparalleled efficiency with top-tier code quality. What are the metrics that will help you evaluate your development team?
That question arises in many startups once you have a team of developers and need to run as fast as possible.
Evolving ‘top’ metrics
The four key metrics: deployment frequency, lead time for changes, mean time to recovery, and change failure rate – helped quantify a continuous improvement culture and offered valuable insights into software development and delivery success.
These four key engineering metrics help separate the genuinely elite software development teams from the rest.
Continuous Delivery Metrics
The first metrics that elite teams monitor focus on the delivery lifecycle (the CD part of the CI/CD world). These are your measures for how long features take to go from programming to deployment.
Cycle time: The better teams maintain a cycle time of under two days. Most developers’ cycle time is between the first code commit and customer delivery. Think about it as the time from the first line of code the developer inserted to the repo to production and being served to customers.
Coding time: Writing code productively and effectively. Top developers spend less than half an hour from the start of the first commit to issuing a pull request (PR). These pull requests are short and focused. Which makes the review more accurate and quicker.
Pickup time: Quick and responsive response. Most pull requests are done in under one hour, ensuring a smooth workflow.
Review time: One hour (or less) spent on the code review and pull request merge process leads to shorter feedback loops and faster iterations.
Deploy time: Releasing code to production in less than one hour after a branch merge shows the speed of continuous delivery capabilities.
Developer Metrics
These personal measurements look at friction or efficiencies within the workflow process and focus on the aspects we can automate and measure.
Deploy frequency
- Deploy code into production daily
- Emphasizing focus on continuous integration.
- Automate continuous deployment.
Pull request size
- Smaller and more manageable PRs are the norm.
- Averaging fewer than 150 code changes per pull request.
- This approach leads to faster pickups, thorough reviews, and quicker merges.
Rewrite rate
- Measures the number of changes made to code less than 21 days old. If this number is high, it could signal code churn and is a leading indicator of quality issues.
- Maintaining a rework rate of under 2%.
- The top teams deliver robust and reliable code. In other words, minimizing the need for a rewrite and ensuring high quality.
- You can also check after the testing strategy and measure the confidence of developers to make changes.
Business alignment metrics
The last set of metrics focuses on business alignment. This is how engineering teams ensure the resources they’re expending match company goals and that projects crucial to the business are delivered as planned.
Planning accuracy
Elite dev teams achieve 80% or more planning accuracy, demonstrating their commitment to delivering on promises and aligning their work with business goals.
Capacity accuracy
In terms of a team’s ability to deliver on unplanned work by measuring all completed work against planned work, elite teams have a capacity accuracy between 85% and 100%.
Visibility into metrics
Transparency and monitoring these metrics is a critical success factor.
By understanding and leveraging the critical metrics outlined above, these teams continuously identify areas for improvement, streamline their processes, and accelerate the delivery of high-quality code.
Bottomline
It’s all about measuring and debriefing. It would help if you matched what is working well (or not) for your specific team/company. No one cookie-cutter will fit all cases.
Keep experimenting and improve over time.