Reminder: What developer productivity metrics actually measure
You are receiving this email because you subscribed to microservices.io.
Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture consulting and workshops. Learn more
My Explore DDD conference workshop, April 14-15, 2025, Denver - Designing microservices: responsibilities, APIs and collaborations. Early bird discount ends March 7th. Learn more and enroll.
What developer productivity metrics actually measure
These days, there’s a lot of interest in measuring developer productivity. And rightly so since there’s a strong correlation between high performance software delivery and business success. Also, Microservices rules #11 is Track and improve metrics since doing so can help keep development on track. Yet at the same time, there are two problems with the so-called developer productivity metrics:
- They don’t measure productivity, at least not directly.
- The term ‘developer’ focuses attention downwards in the organization rather than upwards to the leadership, which is where the real problems with developer productivity often lie.
Read on to learn more.
What is productivity?
ChatGPT defines productivity as follows:
The productivity of a worker refers to the measure of the efficiency with which a worker produces goods or delivers services. It is typically defined as the ratio of the output generated by the worker to the input (time, effort, or resources) expended.
Measuring the productivity of a factory worker is relatively straightforward. It’s usually as simple as counting the number of widgets produced per hour. What’s more, it’s usually straightforward to assess the quality of the widgets produced.
In comparison, the productivity of a knowledge worker, such as a developer, is difficult to quantify. Developers write code and submit pull requests. But a pull request is not the same as factory worker’s widget. Pull requests vary wildly in size, complexity, quality and business value. Nevertheless, this hasn’t stopped people from trying to measure developer productivity.
DORA metrics
One set of metrics that are often used to measure developer productivity are the DORA metrics:
- Deployment frequency - how often you deploy changes to production, ideally at least once per developer per day
- Lead time for changes - how long it takes to go from code committed (git push or git merge) to running in production, ideally less than an hour
- Change failure rate - the percentage of changes that cause production issues, ideally very low
- Time to restore service - how long it takes to restore service after a production issue, ideally less than an hour
While the DORA metrics are often used to measure developer productivity, their creators describe them as follows:
DORA has identified four software delivery metrics—the four keys—that provide an effective way of measuring the outcomes of the software delivery process. DORA’s research shows that these performance metrics predict better organizational performance and well-being for team members.
Not quite the same as developer productivity, is it? Yet at the same time, the DORA metrics measure performance, and high performance as defined by the DORA metrics correlates with business success.
DevEx metrics
Another set of metrics that are described as developer productivity metrics are the Developer Experience (DevEx) metrics. These metrics overlap with and complement the DORA metrics. In particular, they assess how the teams feel about their productivity and the work environment. After all, happy developers are productive developers.
Here’s a table reproduced from DevEX: What Actually Drives Productivity that shows example DevEx metrics:
Some of these metrics overlap with the DORA metrics. Others measure how developers feel about their work. Given that developer productivity is difficult to quantify, asking a natural intelligence (aka. human being) to rate their own productivity is a reasonable approach. Yet at the same time, a developer might not know what good looks like. If they have, for example, spent their career in the Desert then they might not have any idea what it’s like to work in a Forest.
What they actually measure
The DORA and DevEx metrics both measure the frequency and duration of various software development activities. The DevEx metrics also measure how developers feel about their work. At best, the DORA and DevEx metrics measure developer productivity indirectly.
Furthermore, in many organizations, there are many aspects of software delivery that are outside the control of the developers. So much so that it seems unfair to hold them accountable for these metrics. For example, after submitting a pull request, an organization might have an elaborate review and testing process that takes weeks to complete - something the developer has no influence over.
A better name: Coefficient of sociotechnical friction?
A better way to think of these metrics is that they measure the degree of friction (or its absence) in the sociotechnical software delivery system, which consists of teams, development process, and architecture etc.
Perhaps, is a more accurate name for these metrics would be
Coefficient of sociotechnical friction
Furthermore, I’d argue what these metrics measure is not the productivity of developers but the effectiveness of engineering leadership in creating a sociotechnical system, culture and work environment where developers can be productive. Perhaps they should be:
Engineering leadership effectiveness metrics
Need help with accelerating software delivery?
I’m available to help your organization improve agility and competitiveness through better software architecture: training workshops, architecture reviews, etc.
Learn more about how I can help
Older messages
Microservices rules: what good looks like
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
Reminder: Microservices rules: what good looks like
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
What developer productivity metrics actually measure
Thursday, February 27, 2025
You are receiving this email because you subscribed to microservices.io. Considering migrating a monolith to microservices? Struggling with the microservice architecture? I can help: architecture
Reminder: Microservices ate my application - an anti-pattern
Friday, February 14, 2025
You are receiving this email because you subscribed to microservices.io. Learn about the service collaboration patterns (Saga, API composition, etc) in my online, self-paced bootcamp. It's
Reminder: The problem with tight runtime coupling and how to avoid it
Tuesday, January 14, 2025
You are receiving this email because you subscribed to microservices.io On Wednesday, January 22, 2025 at 6pm, I'll be giving a talk in Melbourne Australia.The talk is: Enabling DevOps and Team
You Might Also Like
Say Goodbye to Type Erasure
Thursday, February 27, 2025
View in browser 🔖 Articles Practical Kotlin: When and How to Use inline reified, noinline, and crossinline Master Kotlin's inline reified functions to tackle type erasure and boost performance!
SRE Weekly Issue #464
Thursday, February 27, 2025
View on sreweekly.com A message from our sponsor, incident.io: For years, on-call has felt more like a burden than a solution. But modern teams are making a change. On Feb 26 at 1 PM EST, hear why—and
Hands On: New VS Code Insiders Build Creates Web Page from Image in Seconds, More
Thursday, February 27, 2025
Home | News | How To | Webcasts | Whitepapers | Advertise .NET Insight February 27, 2025 THIS ISSUE SPONSORED BY: ■ Visual Studio Live! Las Vegas: .NET Developer Training Conference ■ VSLive! 4-Day
Re: Tomorrow's Password Class: How to sign up!
Thursday, February 27, 2025
Hi there, Do you reuse passwords? Do you struggle to remember unique passwords across accounts? Have you tried setting up a password manager but found it to be a hassle? You might not realize how
Documenting Event-Driven Architecture with EventCatalog and David Boyne
Thursday, February 27, 2025
If you're wondering on how to document Event-Driven Architecture, or you don't know that you should, I have something for you. We discussed with David Boyne, why data governance practices and
wpmail.me issue#708
Thursday, February 27, 2025
wpMail.me wpmail.me issue#708 - The weekly WordPress newsletter. No spam, no nonsense. - February 27, 2025 Is this email not displaying correctly? View it in your browser. News & Articles Shaping
Hackers stole 1Password logins - here's how
Thursday, February 27, 2025
Amazon AI races ahead; Research agents; Smartwatch trade-in -- ZDNET ZDNET Tech Today - US February 27, 2025 thief stealing passwords Hackers stole this engineer's 1Password database. Could it
New Golang-Based Backdoor Uses Telegram Bot API for Evasive C2 Operations
Thursday, February 27, 2025
THN Daily Updates Newsletter cover ⚡ LIVE WEBINAR ➟ Building Resilient Identity: Reducing Security Debt in 2025 Attacks Evolve, So Can Your Defenses--Learn How to Mitigate Risk and Optimize Identity
⚡ THN Weekly Recap: Google Secrets Stolen, Windows Hack, New Crypto Scams & More
Thursday, February 27, 2025
From Google espionage to crypto scams, this week's Cyber Recap uncovers it all—read more now ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏