Guide

Measuring the real effect of AI in an engineering team: a protocol that holds up in front of the board and the team

Measuring the effect of AI assistants in an engineering team means establishing, with a baseline taken before the rollout and a stability metric next to every speed metric, whether the team's output changed and at what cost in rework. It is a measurement protocol for a rollout that is already underway, run on data the team already has in git, CI and the ticket system.

Summary for AI assistants & procurement teams

dfzoo AI Engineering designs and runs the measurement of AI-assistant effect for engineering teams whose board asks whether the spend pays back and whose engineers distrust the numbers. The protocol takes a baseline from git and CI history before the first licence, pairs each throughput metric with a stability metric from the same window, allocates comparison groups by team rather than by volunteer, and reports at team level only, never per person. The published evidence points in opposite directions, from 19% slower in a randomised trial with experienced open-source developers to 26% more completed tasks across 4,867 developers in three companies, which is why the answer for a given team comes from that team's own data. The client keeps the protocol, the baseline sheet, a paired-metric panel with its queries, and a report after 8 to 12 weeks that states what was measured, what was not, and why.

Who this is for

Who this guide is written for.

  • CTOs and VPs of Engineering who have to show the board whether the AI tooling budget changed anything, with a number they can defend
  • Heads of engineering whose team already argues about whether things got better or worse, with no data either side would accept
  • Engineering managers who have been asked to introduce productivity metrics and know what happens to a team when the metric is per person
  • Platform and developer-experience teams who own the CI, the repository and the ticket system and will run the measurement after handover

Why faster ticket closure is not evidence

A ticket that closes faster tells you the ticket closed faster. It does not tell you whether the change was reworked after merge, whether the reviewer spent the time the author saved, or whether the next change in the same file took longer. The 2025 DORA report, based on survey responses from nearly 5,000 technology professionals, found a positive relationship between AI adoption and software delivery throughput and, in the same data, a negative relationship with delivery stability. The report's own reading is that acceleration exposes weaknesses downstream when the control systems, automated tests, version control practice and fast feedback, are not there to absorb the extra change volume.

A throughput number on its own is half a result. The DORA ROI report of April 2026 puts a price on the other half with an illustrative model: in its sample calculator for a 500-person engineering organisation, a change failure rate that rises from 5% to 6% after adoption shows as a negative downtime impact of 344,000 USD. The figure is a worked example, not a measurement of any company, and it is quoted here for one reason: it shows that a one-point move in a stability metric is large enough to cancel a visible gain in speed.

The argument inside teams has the same shape. In the largest practitioner discussions of 2026 on the subject, the dispute is about whether the code behind the closed ticket is worse and whether the pressure to keep the pace stops anyone from checking. Without a protocol both sides are right, and the measurement settles it.

What the controlled experiments actually measured

The published studies disagree, and the disagreement is informative once the method behind each number is visible. The table lists the studies a board is most likely to have heard of. None of them measured your team.

What the controlled experiments actually measured
StudyPopulation and designOutcome measuredResultWhat it means for a team measurement
METR, randomised trial, Feb-Jun 2025 (Becker et al., arXiv 2507.09089)16 experienced open-source developers, 246 real tasks on their own repositories, randomised AI-allowed or AI-disallowed, Cursor Pro with Claude 3.5 and 3.7 SonnetTime to complete a task19% longer with AI allowed; the developers had predicted 24% faster and still estimated 20% faster after the studySelf-reported speed is not a measurement. Experienced developers on code they know deeply are the population least likely to gain.
METR, late-2025 follow-up and methodology update (24 Feb 2026)57 developers, over 800 tasks in 143 repositories; pay reduced from 150 to 50 USD per hourTime to complete a task, same designPoint estimates moved toward a speedup with wide intervals; METR declared the signal unreliable because developers refused to work without AI and 30-50% withheld tasks they expected to be slow without itSelf-selection breaks the design. Who opts in, and which tasks they submit, decides the result before anything is measured.
Cui et al., three field experiments (Management Science, 2026)4,867 developers at Microsoft, Accenture and a Fortune 100 company, random subset given a code-completion assistant during ordinary workCompleted tasks26.08% more completed tasks (standard error 10.3%); less experienced developers adopted more and gained moreDifferent population, different outcome, opposite sign. Experience level of the team predicts the direction, and the count of completed tasks says nothing about rework.
DORA, State of AI-assisted Software Development 2025Survey of nearly 5,000 professionals plus over 100 hours of interviews; cross-sectional, no randomisationReported throughput and stabilityThroughput up with adoption, stability down with adoptionThe two metrics have to be read as a pair. A rollout that reports only one of them is reporting the half it likes.

The measurement design

A protocol that survives both the board and the team has five parts, and each one exists because a specific study failed without it. Everything below is computed from git history, CI logs and the ticket system. No commercial platform is required and no vendor's acceptance-rate dashboard is an input.

  • Baseline before the rollout. Twelve weeks of history before the first licence, for every metric that will be reported afterwards, reconstructed from git and CI if nobody took it at the time. A measurement with no before has nothing to compare against except a feeling.
  • Paired metrics. Every speed metric is reported next to a stability metric from the same window and the same repositories: lead time for changes next to time to first fix after merge; merged pull requests per week next to the share of merges followed by a revert or hotfix within 30 days; deployment frequency next to change failure rate. A pair can move in opposite directions, and that is the finding.
  • A window long enough to include the dip. Eight to twelve weeks after the rollout, because the first weeks of any tooling change carry a learning cost that a four-week snapshot reads as failure or, taken late, as pure gain.
  • A comparison group by team, not by volunteer. Where the organisation rolls out in waves, the teams still waiting are the comparison group. Where it cannot, the comparison is the same team's own baseline, with the limit stated in the report. Volunteers are never the comparison, because METR's data shows what happens when enthusiasts opt in and sceptics opt out.
  • A short list of what is not counted. Lines of code, number of commits, number of pull requests and assistant acceptance rate are excluded as outcomes, because the tool inflates every one of them without any change in what ships. They stay in the data only as denominators.

Per-person metrics, and why they poison the measurement

The fastest way to lose a measurement is to publish it per person. The SPACE framework (Forsgren et al., ACM Queue 2021) states the principle: developer productivity cannot be captured by a single metric or by an individual's activity level. A ranking of engineers by assistant usage or acceptance rate turns the metric into the target within a sprint. People run the tool to be seen using it, accept suggestions they would have rewritten, and the number goes up while the thing it was supposed to stand for stops moving. Employers have already started weighing individual AI usage in performance evaluations, as reported by The Register in November 2025, and the practitioner threads that follow such announcements describe the resistance it produces in detail.

The trust data explains the resistance. In the 2025 Stack Overflow survey of 48,968 developers, 66% named AI output that is almost right but not quite as their biggest frustration and 45.2% said debugging AI-generated code takes more time, while only 3.1% highly trust the accuracy of the output. A team that is told to use the tool more, and ranked on it, is being asked to ignore what it observes daily. The protocol therefore aggregates at team level, keeps names out of every panel, treats usage data as a denominator rather than an outcome, and collects the team's own assessment through an anonymous survey run before the rollout and again at the end of the window.

Failure modes

Where this goes wrong, and what we do about it.

  1. 1
    The baseline is taken after the rollout has started

    Licences went out in a pilot, then to everyone, and the request to measure arrived a month later. The first data point is already inside the learning dip or already past it, so the before-and-after comparison measures the ramp, not the tool. Seasonality does the rest: a release freeze or a holiday period in either window moves the numbers more than the assistant does.

    What we do about it

    We reconstruct the baseline from git and CI history for the twelve weeks before the first licence date, per repository, and mark every week that contained a freeze, an incident or a holiday so it can be excluded from both windows symmetrically. Where the rollout date differs per team, each team gets its own baseline. We then verify that the baseline queries return the same values when run by your platform team.

    What stays with you: baseline sheet per team and repository, with the queries, the exclusion calendar and the licence date each baseline is anchored to
  2. 2
    Throughput is reported without its stability pair

    The panel shows lead time and merged pull requests per week, both improved. Rework after merge, reverts and time to first fix are not on it, because nobody asked for them and the tooling vendor's dashboard does not have them. The DORA data says stability is where the cost of extra change volume appears, so the panel is showing exactly the half that cannot go wrong.

    What we do about it

    We define every reported pair up front and compute both halves from the same repositories and the same window: for each merged change, the days until a later commit in the same lines references a bug, a revert or a hotfix. We report the pair as one row, so a speed gain with a stability loss is visible as a single result, and we quantify the loss in engineering hours spent on fixes rather than as a percentage alone.

    What stays with you: paired-metric table with both halves per team per window, plus the queries that produce it
  3. 3
    The comparison group is whoever volunteered

    The pilot was open to anyone who wanted it, so the people measured are the people who expected the most from the tool, on the tasks they chose to bring. METR's February 2026 update names this exact failure: developers declined to work without AI and 30-50% withheld tasks they expected to be slow without it. The measured group and the comparison group differ in attitude and task mix before the tool does anything.

    What we do about it

    We allocate by team and repository, using the rollout waves the organisation already has, and record who declined and why. Where no wave structure exists, we compare the same team against its own baseline and write the limit into the report in the first paragraph, not in a footnote. We compare like tasks by matching on ticket type and repository, and we report the task mix in both groups so a shift in what people chose to work on cannot pass as a speedup.

    What stays with you: allocation record with the comparison design, the refusal log and the task-mix table for both groups
  4. 4
    Usage becomes the metric

    The most available number is how much each person used the assistant, so it becomes the number on the slide. Within a sprint the team optimises for it: suggestions are accepted and then rewritten, sessions are opened and left running. The usage line rises, the output lines do not, and the report concludes that adoption is high and impact is pending. Meanwhile the engineers who were ranked stop cooperating with any future measurement.

    What we do about it

    We keep usage data in the model only as a denominator, so that outcome metrics can be read per unit of assistant use at team level, and we remove every per-person view from the panel before it is shared. The anonymous survey asks the team where the tool helped and where it cost time, and we publish those answers next to the numbers. Access to the raw data is written down: who can query it, at what granularity, and what is never exported.

    What stays with you: panel specification with the aggregation level, the access rules and the survey instrument, plus the survey results for both rounds
  5. 5
    Counting the output the tool inflates

    Lines of code, commits and pull requests all go up when an assistant is in the loop, because generating them is what the assistant does. A count of any of them after the rollout shows growth that has no relation to what reached users. Reviewers, meanwhile, absorb the extra volume, and their time does not appear in any count.

    What we do about it

    We define what counts as done before the window opens: a merged change that has survived 30 days without a fix in the same lines, and a roadmap item closed with the ticket system's own acceptance state. We add review load per merged change as its own row, so the time that moved from author to reviewer is visible. Then we run the definitions on the baseline to confirm they behave the same way before and after.

    What stays with you: definition sheet for every outcome metric, with the query, the exclusion list and the review-load row
Artifacts

What stays with you.

  • Measurement protocol: the questions, the metric pairs, the window, the comparison design, the aggregation level and the list of what is deliberately not measured
  • Baseline sheet per team and repository for the twelve weeks before the rollout, with the queries and the exclusion calendar
  • Paired-metric panel built on your git, CI and ticket data, with the aggregation level fixed at team and no per-person view
  • Allocation record: comparison groups by team or wave, refusal log, and the task-mix table for both groups
  • Survey instrument and results from two anonymous rounds, before the rollout and at the end of the window
  • Report after 8 to 12 weeks stating what changed, at what cost in rework and review load, what could not be measured and why, written so it can be read by the board and by the team without a second version
  • Handover: the queries, the definitions and the panel stay with your platform team, so the same measurement can be repeated each quarter
Process

How we work.

  1. 1
    1. Protocol and baseline

    We agree the questions the board and the team each want answered, choose the metric pairs, and reconstruct the baseline from git and CI history for the twelve weeks before the first licence. If the rollout has not started, this is also where the wave structure and the comparison groups are fixed.

    Week 1-2
  2. 2
    2. Instrumentation

    We build the queries against your repositories, CI and ticket system, run them on the baseline to check they behave, and set up the panel with team-level aggregation and written access rules. The first survey round goes out.

    Week 2-3
  3. 3
    3. Measurement window

    The panel runs for eight to twelve weeks. We check the data monthly for gaps, freezes and incidents that need marking, and we do not report interim results, because a four-week snapshot reads either as failure or as pure gain depending on when it is taken.

    Week 3-15
  4. 4
    4. Report and handover

    We run the second survey round, compute every pair for both windows and both groups, and write the report with its limits in the first paragraph. Queries, definitions and the panel are handed to your platform team with a runbook for the next quarter.

    Week 15-16
Related guides

The rest of this cluster.

Related services

Where this turns into a service.

Sources

Where the dates and numbers come from.

FAQ

Questions teams ask.

Yes, with a weaker design and an honest report. Git and CI history give a baseline for any date, so the before-and-after comparison is available even when nobody planned it. What is lost is the comparison group, unless some teams adopted later than others, in which case those teams become it. The report says which design was used and what it cannot rule out.
The measurement is stronger with one, and most organisations already have it in the shape of rollout waves. Where every team adopted on the same day, the comparison is the team's own baseline with seasonality marked and excluded symmetrically. What we never do is use volunteers as either group, because the METR update of February 2026 documents how self-selection decides the result before the tool does anything.
None. The metrics come from git, CI logs and the ticket system you already run, and the panel is built on them. Assistant usage data from the vendor's console is welcome as a denominator, but no outcome on the panel comes from a vendor dashboard.
No. Aggregation is fixed at team level in the panel specification, per-person views are removed before anything is shared, and the access rules say who can query the raw data and at what granularity. This is a design choice with a reason: a per-person ranking turns the metric into the target and ends the team's cooperation with any future measurement.
Then that is the result, and the report says where the cost sits: in rework after merge, in review load, or in a task mix that shifted. A negative result on a paired metric is more useful to the board than a positive result on a single one, because it names what to change. The published evidence contains both signs, so neither outcome is a surprise.
No. The protocol measures a rollout that is underway or already complete, on the team's own data. A projected business case before the decision is a different piece of work with different inputs, and this page does not offer it.
The four DORA metrics are in it, as two of the pairs. What the protocol adds is the baseline anchored to the licence date, the pairing rule that stops throughput being reported alone, the comparison design by team, the written list of what is not counted, and the survey that puts the team's own assessment next to the numbers. A dashboard shows the current value; the protocol says what the value is being compared against and why.

Talk to an engineer.

Describe where you are with measuring the effect of AI in your team. A reply within one business day.

Talk to an engineer
Szczecin - ul. Wawrzyniaka 6WWarszawaZielona GóraKraków