From the blog

How to Measure Developer Productivity: Metrics, Baselines, and Pitfalls

17 min read
How to Measure Developer Productivity: Metrics, Baselines, and Pitfalls

Most engineering leaders don’t start with an abstract question about productivity. They get there because something in delivery needs explaining: a release is late, review queues are building up, or a strategic initiative is using more capacity than expected. The dashboard may show plenty of activity and still not explain the decision in front of them. Commit volume can rise while release work waits in review. A healthy ticket-closure rate can sit beside a backlog of defects.

That is where anyone working out how to measure developer productivity should begin. The useful answer is a small group of measures read together, not an individual score dressed up as an operational metric. This guide explains how to measure developer productivity through flow, quality, developer experience, and business context. It also requires a local baseline and an investigation before a target is set. The test is simple: can the evidence help a manager choose what to do next?

Quick Answer for Engineering Leaders

  • Begin with the decision that is pending, not with a favorite framework or dashboard.
  • Use two to four measures that show the outcome alongside the likely constraint.
  • Keep the unit of analysis at team, product, service, value stream, or initiative level.
  • Put the team’s own history ahead of any market benchmark.
  • When a result moves, investigate the cause and then measure the effect of the change.

Developer productivity is about whether a team or delivery system can turn engineering effort and knowledge into useful, reliable software.

Figure 1 shows a practical feedback loop for turning a management question into an informed action. It begins with the question the team needs to answer, uses a metric as the initial signal, and then moves through drill-down, root-cause analysis, action, and re-measurement.

Figure 1. A decision-first measurement loop: question, signal, drill-down, root cause, action, and re-measurement.
Figure 1. A decision-first measurement loop: question, signal, drill-down, root cause, action, and re-measurement.

Each step answers a different management need. The signal shows that performance changed; drill-down and root-cause analysis explain why; action addresses the constraint; and re-measurement shows whether the intervention improved delivery. Because the loop returns to the original question, measurement stays tied to a decision instead of becoming a collection of disconnected metrics.

AndonPulse engineering delivery analytics follows the same logic. A metric is useful when a leader can trace it to the initiative, workflow stage, dependency, project, or resource context that produced it. The platform supplies evidence for the investigation. It doesn’t make the operating decision for management.

How to Measure Developer Productivity

1. Start With the Management Question

Before selecting a metric, write down the decision that needs evidence. DORA’s measurement guidance recommends the same order: decide why the measurement is needed and which decision or change it should inform, then select the framework and source. Otherwise, teams tend to collect whatever is available and look for a use for it later.

If you need to knowStart withThen investigate
Why is delivery slowing?Cycle time and blocked timeStage time, WIP, work item age, and dependency waits, blocker category, and blocked duration
Is code review the bottleneck?Review timeQueue size, reviewer load, pull request size, and ownership
Are teams starting too much work?WIPAging work, blocked work, throughput, and priority changes
Are we shipping faster but breaking more?Deployment frequencyChange failure rate, rework, incidents, and recovery time
Did AI improve delivery?Cycle time and throughputReview demand, quality, developer experience, and cost
Where is capacity going?Allocation by initiativeRoadmap priority versus actual investment and unplanned work
Will this initiative finish on time?Initiative progress and flowDependencies, aging work, scope movement, and forecast variance

The management question comes first. The initial signal comes next. The third column shows what needs checking before anyone recommends an intervention. For several teams measuring engineering productivity, that sequence is more useful than one target applied everywhere. AndonPulse links portfolio and initiative context with workflow evidence from the organization’s engineering integrations, without creating another reporting task for engineers.

2. Choose the Right Measurement Method

No framework gives a leadership team a complete measurement system. Each one highlights a different part of delivery. The right choice depends on the decision currently on the table.

Choose DORA when you need to understand:

  • delivery speed;
  • release reliability;
  • recovery after a failure.

Choose flow metrics when you need to diagnose:

  • queues and waiting;
  • work in progress;
  • aging work;
  • a slow workflow stage.

Add DevEx when system data cannot explain why performance changed. The DevEx research published by Communications of the ACM focuses attention on feedback loops, cognitive load, and flow state, the three core dimensions of day-to-day development work.

Use SPACE when you are designing the overall measurement system. The SPACE framework from Microsoft Research explains why no single dimension can represent developer productivity. It helps teams balance satisfaction and well-being, performance, activity, communication and collaboration, and efficiency and flow.

A working measurement stack normally has four layers:

  • Flow: How quickly and predictably does work move?
  • Quality and reliability: Does faster delivery create failures, rework, or operational risk?
  • Developer experience: What friction or cognitive load is affecting the system?
  • Business context: Is capacity supporting the initiatives and outcomes leadership selected?

Together, the four layers keep engineering productivity measurement connected to an operating decision. DORA and flow data show what moved in delivery. DevEx can explain the friction behind the number. Business context tells leadership whether the change is material enough to act on.

3. Track the Core Developer Productivity Metrics

Treat software engineering productivity metrics as diagnostic instruments. They belong at the team, product, service, value-stream, or initiative level, not in an individual score. A metric is ready for use when people can reproduce its formula, read a change consistently, and name the next investigation.

The Kanban Guide identifies work in progress, throughput, work item age, and cycle time as the minimum flow measures. Stage time adds the detail needed to locate a queue. Change failure rate protects against treating speed as the only outcome. Forecast variance connects delivery behavior to a commitment leadership understands.

MetricPractical formulaWhat it tells you and what to do next
Cycle timeFinish time - start timeShows total elapsed time. Segment it by workflow stage when it changes materially
Blocked timeSum of explicit blocked periodsShows how much elapsed delivery time is attributable to known blockers. Break it down by cause, workflow stage, and dependency before acting.
Stage timeStage exit - stage entryLocates delay in coding, review, test, deployment, or another defined stage
Work in progressItems started but not finished at time tShows how much open work is competing for attention. Inspect limits, queues, and blocked items
ThroughputCompleted items / periodShows delivery rate for a defined work type. Review work mix before interpreting a change
Work item ageCurrent time - start timeIdentifies unfinished work at risk. Inspect the oldest items and their blockers
Change failure rateFailed production changes / total production changes x 100%Shows the share of changes that require remediation or cause degraded service
Forecast varianceActual completion date - committed dateShows delivery predictability while keeping scope changes and re-baselining visible

Advanced Metrics You May Also Need

  1. Deployment frequency: production deployments per period. Compare services only when their release models are similar.
  2. Recovery time: service restoration time minus incident start time. Keep incident severity and clock rules consistent.
  3. Rework rate: corrective work divided by total completed work. Use it to see how much capacity returns to defects or avoidable correction.
  4. Flow efficiency: active work time divided by total cycle time. It estimates how much elapsed time is active work rather than waiting.
  5. Allocation variance: actual allocation percentage minus planned allocation percentage. It shows whether capacity followed investment intent.
  6. Initiative progress: completed defined scope divided by current defined scope. Review it with scope growth, aging work, and dependencies.

Use these developer productivity metrics to cut reporting noise, not create another layer of it. Whoever owns a measure should be able to explain three things: the question it answers, the change that deserves a closer look, and the decision management can make. A short list of software developer productivity metrics is enough when every item does that work. If it can’t, it doesn’t need to be on the main scorecard.

Practical rule: if a metric changes but nobody knows what question to investigate next, it is probably not ready for the executive dashboard.

4. Diagnose the Metric Before You Act

Picture a product team whose median cycle time has moved from 6.2 to 9.1 days over four weeks. That’s 47%. It matters, but it isn’t proof that the developers have become less effective.

SignalBaselineCurrent periodChange
Median cycle time6.2 days9.1 days+47%
Median coding time2.4 days2.4 daysNo change
Median review time1.1 days3.8 days+245%
Review WIP7 items19 items+171%
Change failure rate5%5%No change

The breakdown below makes the bottleneck visible: coding time is unchanged, while review time has increased from 1.1 to 3.8 days.

Figure 2. Cycle time breakdown showing that the increase is concentrated in review rather than coding.
Figure 2. Cycle time breakdown showing that the increase is concentrated in review rather than coding.

What Changed

  • Median review time increased by 245%.
  • Review WIP increased by 171%.
  • Total cycle time increased by 47%.

What Did Not Change

  • Coding time remained at 2.4 days.
  • Change failure rate remained at 5%.

What the Evidence Suggests

Check blocked time before attributing the increase to slower execution. If blocked time rose with cycle time while coding time stayed stable, investigate dependencies, approvals, and other explicit blockers. If blocked time stayed flat while review time rose, focus on queue size and reviewer capacity instead. Coding hasn’t taken longer. The backlog is in review, where the queue has almost tripled. Get specific: are the right reviewers available, is ownership clear, has pull-request size changed, and is another initiative drawing on the same people? If two senior reviewers moved to an urgent migration, management can redistribute ownership, set a review WIP limit, add coverage, or split oversized changes. Telling the team to close more tickets won’t resolve the constraint.

The sequence is plain: see the change, separate the data, find evidence for the cause, act, and check the result. For teams measuring software engineering productivity, that is sounder than treating a 47% change as a performance verdict.

How This Investigation Works in AndonPulse

An initiative can start missing its expected pace for several reasons, and a portfolio-level metric alone does not tell a leader which one applies. The dashboard is useful when it makes the next question easier to answer. AndonPulse brings at-risk initiatives to the top of a live cross-team view and shows why they need attention, such as stalled progress, work stuck in review, or an overdue task.

  1. Open the flagged initiative. For a leader measuring software engineering productivity, the investigation starts with the flagged initiative and its forecast against the committed deadline. From there, the leader can move into the related epic, project, and task instead of collecting manual status updates from several teams.
  2. Find the stage where time builds up. The workflow phases show where elapsed time is building up. Coding time may be stable while review time is growing. Opening the affected work items adds the missing context: what is aging, what is blocked, and which owner, team, or dependency is involved.
  3. Act and re-check the forecast. With that evidence, the manager can decide whether to reassign work, remove a blocker, or re-scope the initiative. The refreshed forecast and the same delivery signals then show whether the risk is reducing after the change.
Figure 3. AndonPulse investigation path from a flagged initiative to the workflow stage and team or dependency behind the delay.
Figure 3. AndonPulse investigation path from a flagged initiative to the workflow stage and team or dependency behind the delay.

The practical value is that the portfolio view, delivery evidence, and next management action stay connected. AndonPulse does not make the decision for the manager. It removes the manual chase for status and gives the manager current evidence before a delay turns into a missed commitment.

5. Interpret the Metric Before Setting a Target

An easy-to-display number isn’t automatically a useful target. Teams measuring developer productivity usually learn more from their own operating history, as long as the definitions stay stable and the work is comparable. External figures can help later. They’re not the place to begin.

5.1 Build a Local Baseline

  1. Choose the period. Use enough observations to capture the normal delivery rhythm. Exclude or label release freezes, major incidents, holidays, and migrations.
  2. Segment the work. Separate features, bugs, platform work, incidents, and other work types that move under different constraints.
  3. Read the distribution. Report the median for the typical result and P75 or P85 for the slower tail. Keep the sample size beside them.
  4. Document exceptions. Record reorganizations, staffing changes, scope changes, and other events that affect comparability.

A baseline is a record of normal operating conditions before something changes. It isn’t a goal. When measuring developer productivity, it gives the team the context needed to understand what a later result actually means.

5.2 Use Median and Percentiles, Not Just Averages

Engineering data rarely has a tidy bell curve. Ten routine changes can move through the system quickly while two dependency-heavy items stay open for weeks. An average compresses very different cases and can hide both the normal experience and the delivery risk.

Practical rule: for time-based engineering productivity metrics, report the median, P75 or P85, and the sample size.

For example, an eight-week cycle-time baseline might show a median of 5.4 days, P75 of 8.1 days, and an observed range of 3.2 to 11.4 days. A percentile based on six completed items should not carry the same confidence as one based on sixty.

Figure 4. Cycle time distribution showing the median, average, P75, and the slow tail.
Figure 4. Cycle time distribution showing the median, average, P75, and the slow tail.

5.3 Compare the New Period With the Baseline

Use the same definition, segments, and exclusions in both periods. The basic calculation is:

Percentage change = (current - baseline) / baseline x 100

MetricBaselineAfterChange
Cycle time5.4 days4.6 days-15%
Review time1.3 days0.9 days-31%
Throughput42 items/week45 items/week+7%
Change failure rate6%11%Worse by 5 percentage points

Delivery is faster, but reliability is worse. That isn’t a clean productivity gain. Before declaring success, review the failure modes, the work mix, and the review-policy change.

For repeatable software engineering productivity measurement, record the following for every metric:

  • the start and end event;
  • exclusions;
  • the aggregation method;
  • segments;
  • the owner;
  • the review cadence;
  • the investigation threshold.

Stable definitions matter more than a polished chart.

5.4 Use External Benchmarks Last

Developer productivity benchmarks should be used in this order:

  1. Your own historical baseline
  2. Comparable internal teams
  3. External benchmarks

Before using an external number, check:

  • the metric definition;
  • the cohort and operating environment;
  • the work type and unit of analysis;
  • whether the statistic is a median, P75, or P90;
  • the sample size and measurement window.

A benchmark only means something when its method comes with it. If those details are missing, use the figure as a prompt for a question, not as a target. Developer productivity benchmarks aren’t a league table.

6. Special Case: How to Measure AI-Assisted Development

DORA’s 2025 research describes AI as an amplifier of what is already true in the organization. Dependable tests and available reviewers can turn AI assistance into faster feedback. Fragile tests or overloaded reviewers can simply feed more work into the same bottleneck.

Run the AI Experiment in Five Steps

  1. Define the baseline. Use four to eight weeks of comparable work and stable metric definitions.
  2. Define the cohort. Record the team, eligible work type, AI tool, and adoption period.
  3. Pick one primary outcome. Choose cycle time, review time, throughput, or another result tied to a decision.
  4. Add guardrails. Track rework, change failure rate, security findings, review demand, and developer experience.
  5. Decide whether to scale. Compare the outcome, guardrails, and cost, then scale, change, or stop.
MeasureExample
Primary outcomeCycle time
Quality guardrailsChange failure rate, rework, and review time
ExperienceDevEx survey or structured team feedback
CostLicenses, enablement, and review overhead
DecisionScale, change, or stop

Here, measuring developer productivity means looking past adoption rates and generated-code volume. Pair software engineering productivity metrics with evidence on quality, experience, security, and cost. A 20% throughput lift isn’t an improvement when it also creates more failures or more review demand.

7. Put the Measurement System Into Practice

The first version of the system can be defined with six questions.

Ask These Six Questions

  1. What business outcome are we trying to improve?
  2. What management question needs an answer now?
  3. Which two to four metrics will help diagnose it?
  4. What is the local baseline?
  5. What change will trigger an investigation?
  6. What will management do if the metric moves?

As the team answers them, record the unit of analysis, data exclusions, owner, review cadence, and action rule. Those decisions keep an informal dashboard from turning into an ungoverned performance score.

Use a Simple 90-Day Rollout

Days 1 to 30: Define

  • choose the management question and business outcome;
  • select the metrics and document their definitions;
  • map the available data and run a quality check.

Days 31 to 60: Baseline

  • establish normal ranges and relevant percentiles;
  • validate the interpretation with the team;
  • separate real outliers from missing or inconsistent data.

Days 61 to 90: Improve

  • change one named constraint;
  • compare the new period with the baseline and quality guardrails;
  • keep, revise, or retire each metric based on whether it supported a decision.

This keeps measuring engineering productivity tied to action without turning the effort into a large reporting program.

Common Measurement Mistakes

  1. Creating one productivity score. A single number hides trade-offs among flow, quality, experience, and business value.
  2. Ranking individual developers. Activity data changes with role, collaboration, task complexity, and work type.
  3. Reporting averages without distributions. The average can hide the slower tail and the work most likely to miss a commitment.
  4. Comparing unrelated teams. Different architectures, release models, and responsibilities produce different operating ranges.
  5. Changing definitions between periods. A trend is not credible when the start event, exclusions, or unit of analysis changed.
  6. Turning a benchmark into a target. External values rarely share the same cohort, workflow, and constraints.
  7. Treating AI usage as proof of productivity. Token spend, active AI users, and the share of AI-assisted work show adoption and cost, but they do not prove productivity gains. Interpret them alongside cycle time, throughput, review demand, rework, quality, and developer experience.

Lines of code, commits, pull requests, tickets closed, and hours online can describe part of a workflow. None of them should decide individual performance. These software developer productivity metrics become harmful once a diagnostic signal turns into a personal target. For a team measuring engineering productivity, fewer pull requests may mean larger initiatives, blocked dependencies, missing data, or deliberate investment in design.

Final Takeaway

Leaders assessing software delivery should begin with one decision, a small group of measures, a documented baseline, and a clear route to investigation. That is how to measure software developer productivity without mistaking activity for value. Benchmarks are context, not targets. Treat AI as a controlled use case. Above all, look at the system behind a metric before judging the team.

FAQ

What Are the Best Developer Productivity Metrics?
Good developer productivity metrics answer a real management question, use definitions another analyst can reproduce, and point to a sensible drill-down. A balanced set usually includes cycle time, WIP or work item age, throughput, a quality guardrail such as change failure rate, plus business or experience context that matters for the work.
How Can Productivity Be Measured Without Surveillance or Individual Rankings?
Measuring software developer productivity responsibly means assessing the delivery system at team, product, value-stream, service, or initiative level. Use contributor detail only to understand blocked work, ownership, support needs, or capacity constraints. Do not publish rankings based on commits, tickets, code volume, or online time, and do not use the metrics as automated performance-review scores. The same rule applies to AI usage metrics: token spend, prompt volume, active usage, and the share of AI-assisted work should be analyzed at team or cohort level, not used to rank individuals or score performance.
How Do You Establish a Reliable Baseline?
Choose a stable period with enough observations, consistent definitions, and comparable work. Split it by work type. Report the median, a slower percentile, and the sample size. Then note unusual events such as migrations, incidents, freezes, or staffing changes.
What Is the Difference Between DORA and SPACE?
DORA supplies focused measures of software delivery and operational performance. SPACE is a broader framework for selecting measures across five dimensions of productivity. Many organizations use DORA for delivery capability and SPACE to keep the wider measurement system multidimensional.
Should Companies Compare Teams With Public Benchmarks?
Use public benchmarks to frame questions, not to grade teams. Check the sample, cohort, unit, percentile, time window, and definition before comparing anything. Local trends are usually better for judging whether a specific intervention worked.
How Should AI-Era Developer Productivity Be Assessed?
Compare a defined cohort and period with a like-for-like baseline. Read flow and throughput alongside review demand, rework, failures, developer experience, security, and cost. Adoption or code volume on its own does not prove improvement.

Apply the Model to Your Own Engineering Structure

AndonPulse connects the metrics an organization already tracks with its initiatives, workflows, delivery risks, and resource context. Bring one live delivery question and see whether the model helps the team move from signal to cause, action, and measurable follow-up.

Mykola Lisivka
About the author

Engineering manager and founder of AndonPulse. Writes about making engineering delivery more predictable with useful, actionable insights.

Read more by this author →