← The ADLC library
Metrics & DORA · 6

Why elite DORA scores can hide a rotting board

All four keys can be green while your system of record has become fiction. The metrics measure the flow of changes. Nothing in them measures whether anyone still knows what is true.

Picture two dashboards for the same team on the same Monday.

The first is the DORA dashboard. Deployment frequency in the elite band. Lead time in hours. Change failure rate low and falling. Time to restore comfortably under an hour. Four green arrows. By every published banding, this is a high-performing team and you would be lucky to have them.

The second is the board. Eleven tickets in progress, four of which are actually finished and merged. Two tickets that are still open against code that was deleted a fortnight ago. A sprint goal from three sprints back that nobody has closed. Six pull requests merged last week with no ticket at all. An epic that says forty percent complete because somebody typed forty percent into a field in June.

Both dashboards are accurate. The first describes the flow of changes through the delivery system. The second describes the organisation’s beliefs about its own work. They have come apart, and nothing in the first dashboard can tell you the second one has happened.

This is, I think, the central measurement problem of the Agentic Development Life Cycle, and it is not that DORA is bad. It is that DORA measures a completely different plane from the one that has become fragile.

Two planes

It helps to separate them explicitly.

The flow plane is the movement of changes: branches, pull requests, reviews, merges, deploys, incidents, restores. Everything in it is an event that either happened or did not, recorded automatically by systems that do not require anyone to remember to update them. The four keys live entirely here. So do build times, review latency, revert counts, test durations.

The intent plane is the organisation’s model of what it is doing and why: work items, acceptance criteria, priorities, estimates, dependencies, status, roadmaps, the answer to “when will this be ready”. Everything in it is maintained by people, deliberately, as a side activity to the work itself.

Under the old model these two planes stayed roughly aligned, and the alignment was not a coincidence. It was maintained by the fact that the flow plane moved slowly. Producing a change took a human days, which meant there were natural pauses in which the intent plane could be updated, and there were few enough changes that a person could hold the mapping between them in their head. Standup existed to repair the small drift that accumulated over a day. It worked because the drift over a day was small.

Agentic development speeds up the flow plane by an order of magnitude and leaves the intent plane exactly as fast as it was, because it runs on human attention and human attention did not accelerate. The two planes separate. The flow plane looks superb, because it is the one that got faster. The intent plane rots, because it is the one that did not.

And every metric you have was built for the flow plane, because that is where automatic instrumentation was easy. So the rot is invisible to your entire measurement apparatus, right up until it produces a decision that is embarrassing in a meeting.

Intent plane

  • Work items, criteria, priorities, estimates
  • The organisation's beliefs about its own work
  • Maintained by human attention
  • Exactly as fast as it was last year
  • Almost no automatic instrumentation

Flow plane

  • Branches, pull requests, merges, deploys
  • Events that either happened or did not
  • Recorded automatically
  • An order of magnitude faster than last year
  • Where every metric you own points
The two planes stayed aligned because the flow plane used to move slowly. That alignment was never designed; it was a side effect of production being expensive.

What rot actually costs

It is worth being concrete, because “the board is out of date” sounds like a hygiene complaint and it is not.

Prioritisation gets made on fiction. Somebody looks at the board, sees a feature is not done, and reallocates people to it. The feature merged on Tuesday. The reallocation is pure waste, and it looks like decisive management.

Forecasts become uncorrelated with reality. Every estimate, every burndown, every “we will be ready by the fourteenth” is computed from the intent plane. If the intent plane lags reality by a week and the flow plane moves ten times faster than it used to, your forecast error grows in both directions simultaneously: things are further along than you think, and things you think are simple are not started.

Review capacity gets allocated blind. Nobody knows which of the twenty open pull requests corresponds to the priority that matters, because the mapping is stale. So review happens roughly in arrival order, which means priority stops influencing what actually reaches users.

Nobody trusts the board, so nobody maintains it, so nobody trusts the board. This is the loop that finishes the job. Once a system of record is known to be unreliable, updating it feels pointless, and the rational individual response is to stop. The rot is self-accelerating past a certain point, and the point arrives faster than people expect.

That last one is why I use the word rot rather than drift. Drift implies a gradual, linear divergence you can correct with a bit of tidying. What actually happens has a threshold in it. Below the threshold, people patch the board and it stays roughly usable. Above it, people give up, and the board goes from ninety percent accurate to decorative in about a month.

Why elite scores make it worse

There is a nasty interaction here that I want to name, because it is not obvious.

Green DORA metrics actively suppress investigation of the intent plane.

If your delivery metrics look poor, somebody goes looking for why, and in the course of looking they find the board is a mess. Bad metrics buy you attention. Green metrics buy you the opposite: an executive looking at four green arrows has no reason to ask a second question, and the team has no ammunition to argue for time spent on something that will not move any measured number.

So the failure mode is not “team has bad metrics and bad records.” It is “team has excellent metrics, which is the reason nobody looked at the records.” The better your flow plane looks, the longer your intent plane can rot undetected. That is an unusual and genuinely dangerous property for a measurement system to have.

Bad metrics buy you attention. Somebody goes looking for why, and on the way they find the board is a mess.

Green metrics buy you the opposite. The better the flow plane looks, the longer the intent plane rots unexamined, because nothing in the dashboard is asking to be investigated.

I have seen the objection that this is a straw man, that no serious leader looks only at DORA. In principle, agreed. In practice, the reason DORA won is that it compresses engineering health into four numbers that fit on a slide, and things that fit on a slide crowd out things that do not. The compression is the product. You cannot have the convenience without the blind spot.

Measuring the intent plane

So what would you actually look at? Four things, all cheap, none of them requiring anything you do not already have.

Reconciliation gap. For work items marked in progress, how many have all their associated changes merged? For work items marked done, how many have unmerged or unopened work? These are joins between your tracker and your source control, and the result is a count of records that disagree with reality. Under a healthy regime this number is small and stable. When it starts climbing, you are watching the rot begin, and you are watching it weeks before anyone would have noticed in a meeting.

Unlinked merge share. The proportion of merges to the default branch with no associated work item. I have now recommended this in three consecutive pieces for three different reasons, which is a good sign it is the highest-value thing on this list. It is the rate at which new, unrecorded reality is being created.

Record latency. When a work item does eventually get its status corrected, how long had it been wrong? The distribution matters more than the average. A long tail means a class of work that nobody is reconciling at all.

Stale-in-progress age. How long has the oldest in-progress item been in progress? Sorted descending, this list is usually a very direct readout of your organisational fictions, and it takes ten seconds to produce.

Reconciling the two planes automatically is the core of what GroundTruth does, so I have an obvious interest in you caring about this. Take the four measurements above regardless of what you do about them. They are all queries you can run yourself against systems you already pay for, and the answers will tell you within an afternoon whether you have a problem.

Reconciliation gapIn-progress items with everything merged, and done items with work still open. A join, not an opinion.
Unlinked merge shareMerges to the default branch with no work item attached. The share of your output that is invisible to planning.
Record latencyHow long a status was wrong before it was corrected. The distribution matters more than the average.
Stale in-progress ageOldest first. A direct readout of your organisational fictions, available in about a minute.
Four measurements of the intent plane, all cheap, none requiring anything you do not already have.

The deeper point about what got scarce

Under the old model, the scarce resource in software delivery was the production of correct code. Every process we built, every metric we adopted, was oriented around that scarcity: how fast can we produce changes, how quickly do they reach users, how often do they break.

Agentic development did not remove scarcity. It moved it. The scarce resources now are the ability to specify precisely what should be built, the capacity to judge whether what was built is right, and the maintenance of a shared, accurate model of what is true. All three live on the intent plane. None of them is measured by anything in the standard kit.

That is why a team can be elite by every published measure and be, in a real sense, out of control. The measures are all pointed at the abundant resource.

Where this breaks down

Some honest pushback on my own argument.

The first and largest: I have treated the board as though it were intrinsically valuable, and for a lot of teams it simply is not. A single co-located team of five, shipping continuously to a product owner who sits with them and looks at the work, does not need an accurate ticket system. Their intent plane is a conversation, and it is a better one than any tracker would give them. If that describes you, board rot is not a problem, it is the correct response to a system that was never load-bearing. My argument applies where the board actually feeds decisions: multiple teams, dependencies, stakeholders who are not in the room, anything with a forecast attached. Do not go and repair a record nobody reads.

Second, there is a version of this argument that leads somewhere bad. If you measure reconciliation gap and manage people to it, you get compliance behaviour: tickets updated to satisfy the metric rather than to be true, batch-dragged on Friday, statuses set to whatever avoids the flag. That is worse than rot, because it manufactures a record that looks maintained and is not, which removes even the visible symptom. Reconciliation is a thing to automate against ground truth, not a thing to demand of people. If your answer to a widening gap is a policy reminder in a team meeting, you will get the number without the accuracy.

Third, I have implied the intent plane cannot be automated as much as it can be. Merges can move tickets, branches can be matched to work items, and a large share of ordinary status maintenance really is mechanical. But the parts that matter most, whether the acceptance criteria were met, whether this is what the requester wanted, whether the priority still holds, are judgement. Automation can present those judgements for a human to make quickly. It cannot make them, and any system claiming otherwise has just moved the fiction one layer down where it is harder to see.

Fourth, the threshold effect I described is a model, not a measurement. I believe there is a point past which record maintenance collapses rather than degrades, because that matches what people describe. I have no data establishing where the point is or whether it is sharp. Treat it as a reason to watch the trend rather than the level, not as a physical law.

The takeaway

DORA measures the flow plane, and the flow plane is what agentic development made fast. The intent plane, your record of what is true and what matters, did not get faster, so it rots. Four green arrows are entirely compatible with a system of record that has become fiction, and green arrows actively discourage anybody from checking.

Measure the gap directly: reconciliation gap, unlinked merge share, record latency, stale-in-progress age. Automate the reconciliation rather than demanding it from people, because demanded reconciliation produces compliance rather than truth.

The next piece takes this further and asks what else the four keys structurally cannot see under the ADLC, and which of those absences are worth building new measurement for.