Manage the team and the numbers

Measure delivery, not how much code was generated

Every AI coding tool reports how much it produced, and none of those numbers tell you whether customers received working software. This page covers the delivery metrics worth using to run an AI-native team, why self-reported speed is unreliable in both directions, and how to read the numbers when throughput and stability move in opposite directions.

Published September 1, 2026. Editorial.

Key takeaways

  • DORA's current model uses five metrics, split into throughput and instability [1]. None of them counts code produced.
  • Self-reported speed is unreliable. In METR's 2025 trial, developers who were 19 percent slower with AI believed they had been 20 percent faster [2].
  • Expect throughput and stability to move in opposite directions at first. That pattern matches DORA's 2025 finding and tells you where to look [3].
  • Rework is the number most teams are missing: how often merged work comes back for correction within two weeks.

The first question a board asks about AI adoption is what it achieved. The easiest numbers to produce are the worst ones to answer with: lines generated, pull requests opened, tokens spent, tools adopted. All of them measure activity, and activity was never the slowest step.

What to measure instead

DORA's current model uses five metrics, divided into two dimensions. Throughput is change lead time, deployment frequency, and failed deployment recovery time. Instability is change fail rate and deployment rework rate, where rework counts unplanned deployments that happen as a result of a production incident [1].

Those five are worth adopting as they are, for two reasons beyond their quality. They are defined by someone outside your company, so nobody can redefine one, without others noticing, when it looks bad. And they describe the delivery of working software rather than the production of code, which is the distinction this whole page exists to protect.

To those five we add one that DORA does not name and every AI-native team needs: rework rate at the change level, meaning the share of merged changes that come back for correction within two weeks. It is the clearest signal of whether generated work is actually finished, and it is usually the first number that moves when a team tightens its definition of done.

Why code-output metrics mislead

Three specific ways, all of which we have watched happen.

They measure the cheap part. Producing code is no longer the slowest step. Reporting how much of it exists is reporting on the resource you have plenty of.

They are easy to manipulate, and get manipulated without anyone deciding to. An engineer who knows pull request count is being watched will open more pull requests. Nobody has to be cynical for this to happen; people optimise for what is measured because that is what measurement does.

They draw attention away from the real limit. If review capacity is your limit, more generated code makes the queue worse, and a rising count of generated code looks like progress while delivery slows. That is the pattern behind our post on the review queue is the new bottleneck.

Do not trust how fast it feels

There is a specific and well-measured mistake here. METR ran a randomised controlled trial in 2025 with 16 experienced open-source developers across 246 real issues in repositories they knew well. The developers took 19 percent longer when allowed to use AI tools. They estimated afterwards that AI had made them 20 percent faster, and had forecast a 24 percent speed-up before starting [2].

That is a gap of 39 percentage points between measured and perceived, in the direction of optimism, among experienced engineers on familiar code. METR is explicit that this does not show AI fails to speed up most developers, and the setting matters: mature codebases the participants knew deeply [2].

The lesson for a leader is narrow and important. Do not base adoption decisions on how the team says it feels, in either direction. The engineer who says AI made them twice as fast and the one who says it wastes their time are both reporting a perception that the only controlled study we have found to be wrong by a wide margin.

Expect the two groups of numbers to move apart

When a team adopts AI seriously, the normal early pattern is throughput up and stability down. DORA's 2025 report of nearly 5,000 professionals found exactly that pattern: a positive relationship between AI adoption and delivery throughput and product performance, and a negative relationship with delivery stability [3].

Read that as a diagnosis rather than a warning. It means change volume rose faster than the control systems around it, so the next investment is in the controls: automated testing, release practice, feedback speed. Google's summary names those directly [3].

The failure is reporting only one dimension. A leader who reports throughput sees a triumph. A leader who reports incidents sees a disaster. Both are looking at the same team, and only the pair together tells you what to do next.

A reporting set that fits on one page

For a monthly or quarterly report, six numbers and one paragraph.

Change lead time and deployment frequency, for throughput. Change fail rate and failed deployment recovery time, for stability. Rework rate, for whether work is finished when it is called finished. And one product or business number that the engineering work was supposed to move, because a team can be excellent on all five and still be building the wrong thing.

The paragraph is what the numbers do not show: which constraint you are working on now, and what you expect to move next quarter. Numbers without that look like a list of scores rather than a management plan.

What not to do with these numbers

Two failure modes, both common enough to name.

Do not compare teams. Change fail rate on a payments service and on an internal dashboard are different numbers describing different levels of acceptable risk, and ranking them leads people to manipulate the numbers instead of improving. Compare a team to its own trend.

Do not report a single number as a verdict. Throughput without stability shows only how fast you are producing risk, and stability without throughput shows only how safely you are making no progress. Report the two together, and reporting one of them alone is the most common way these metrics get used to argue for something that was already decided.

Do not target individuals. The moment a metric is attached to a person's review, it stops measuring the system and starts measuring the person's response to being measured. Our post on measure engineers by outcomes, not output makes the argument, and it is more urgent now that individual output figures are easy to produce.

Getting the data without starting a platform project

The usual objection to all of this is that the team does not have the instrumentation to produce the numbers. In practice you can get every one of them from systems you already run, in an afternoon, and a simple version is enough to see a trend.

Deployment frequency comes from your deployment tooling or, failing that, from tags in version control. Change lead time is the gap between the first commit on a change and the deployment that carried it, both of which are already recorded. Change fail rate needs one convention, not a system: mark the deployments that required immediate intervention, in a field, at the time. Failed deployment recovery time is the gap between that mark and the deployment that fixed it. Rework at the change level needs one label applied during triage.

The only real requirement is that someone marks incidents and corrections consistently, which is a habit rather than a tool. Teams that wait for a platform to produce these numbers perfectly usually wait for a year and manage from single stories in the meantime, which is worse than managing on approximate figures that are honest about being approximate.

One caution: whatever you build, keep the definitions stable. A metric whose definition changes is a metric with no history, and history is the whole value here, since the comparison that matters is against your own past rather than against anyone else.

What a board actually asks

The question from outside engineering is rarely about lead time. It is some version of: is this working, and what did it give us.

Three sentences answer it honestly. Here is what we released and how often, from the throughput pair. Here is what it cost us in stability, from the fail rate and recovery time. Here is the constraint we are fixing next, and the number we expect to move.

That answer holds up under close checking because it does not claim more than the data supports, and because it treats a stability cost as a fact to manage rather than a failure to hide. The alternative, presenting throughput alone as evidence that the adoption succeeded, holds up exactly until the first bad quarter of incidents, at which point every number you presented becomes suspect at once.

Cost belongs next to delivery, not inside it

Token spend and tool licences are real costs and worth tracking, but they are inputs and they belong in the same conversation as headcount rather than in the delivery metrics. The useful framing is cost per delivered change over time, which is covered in budgeting agent capacity and cost. Mixing spend into a delivery scorecard makes it too easy to celebrate a cost reduction that came from releasing less.

Where this connects

These numbers tell you which part of the model to work on: rework leads you to the definition of done, change fail rate to the gates and release practice, recovery time to observability. The code-quality counterpart, measuring the software rather than the delivery, is metrics for AI code quality. The main guide shows how it all fits together.

Common questions

What metrics should we use to measure an AI-native engineering team?

DORA's five: change lead time, deployment frequency and failed deployment recovery time for throughput, plus change fail rate and deployment rework rate for instability. Add rework at the change level, meaning how often merged work returns for correction within two weeks, which is the clearest signal that generated work is genuinely finished.

Why are lines of code and pull request counts bad metrics now?

They measure the part that stopped being scarce. They are also manipulated without anyone deciding to manipulate them, because people optimise for what is watched, and they draw attention away from the real limit: if review capacity is your limit, more generated code makes the queue worse while the count of generated code looks like progress.

Can we trust engineers' reports of how much faster AI makes them?

No, in either direction. METR's 2025 randomised trial found 16 experienced developers took 19 percent longer with AI tools on 246 issues in codebases they knew well, while estimating they had been 20 percent faster. That is a gap of 39 percentage points between perception and measurement among experienced people.

Is it normal for stability to get worse after adopting AI coding tools?

It is the common pattern. DORA's 2025 report of nearly 5,000 professionals found a positive relationship between AI adoption and delivery throughput and a negative one with delivery stability. Read it as a diagnosis: change volume grew faster than the control systems, so testing, release practice and feedback speed are the next investment.

What is deployment rework rate and why does it matter?

DORA defines it as the ratio of deployments that are unplanned but happen as a result of an incident in production. In a team whose change volume has risen it is often the earliest quantitative sign that gates are letting something through, because it counts the deployments you did not intend to make.

How many numbers should an engineering report contain?

Six and a paragraph. Change lead time and deployment frequency for throughput, change fail rate and failed deployment recovery time for stability, rework rate for whether work is finished, and one product number the engineering work was meant to move. The paragraph says which constraint you are working on and what should move next.

Should we compare delivery metrics between teams?

No. Change fail rate on a payments service and on an internal dashboard describe different levels of acceptable risk, so ranking them leads people to manipulate the numbers instead of improving. Compare each team against its own trend, which is the only comparison where a change in the number means a change in the system.

Should individual engineers be measured on AI-assisted output?

No. Once a metric is attached to someone's review it stops measuring the system and starts measuring their response to being measured, and individual output figures are now trivially easy to produce. Measure the delivery of the team and judge individuals on outcomes and judgment, as before.

Where do token spend and tool costs belong?

Alongside headcount as an input, not inside the delivery scorecard. The useful framing is cost per delivered change over time. Mixing spend into delivery metrics makes it easy to celebrate a cost reduction that actually came from releasing less, which is the opposite of the intended result.

Which metric moves first when a team fixes its process?

Usually rework, because tightening what counts as done stops half-finished work being merged, and that shows up within a fortnight. Change fail rate follows once gates and release practice improve, and lead time last, since it depends on the whole pipeline rather than on any single control.

Start a project