Scope, specify, audit: the new human roles in AI-assisted software development
In our article on verification debt we showed that, with AI, a team produces software faster than it can verify it: between January 2024 and September 2026, the number of pull requests merged on GitHub each month grew 5.6×, while those approved by another person grew only 2.6×. The consequence for people is direct. If the bottleneck is no longer writing code but validating it, human work has to move to where the bottleneck is.
This article proposes how. The thesis: people stop being universal code reviewers and take on three functions instead: scoping, specifying and auditing. For each one we describe what it does, which tools it uses, what it delivers and how it is measured. We then compare what a product team looked like in 2023 with what it should look like today, and review what the data says about the actual reduction in headcount, including the evidence that cuts against the thesis.
One clarification first: "stop reviewing code" does not mean stop reading it. It means no longer reviewing all of it, line by line, as the main control. Full human review is still mandatory wherever failure is expensive: payments, authentication, personal data, security.
Why the role has to change
The DVI model from the previous article describes verification debt with one equation:
where G is the number of changes generated per day, α the hours needed to verify each one, V the verification capacity and δ the rate at which pending debt gets more expensive. Add pc, the probability that code and its tests share the same mistake, and Ci, the cost of a failure reaching production.
Until recently, a developer's hour went mostly into G: writing code. Agents now produce G at almost zero marginal cost, and adding more G without moving anything else only grows the debt. A human hour is worth more in the other terms:
| Human function | Term it moves | Why there |
|---|---|---|
| Scope | G, Ci and δ | Decides how much gets generated, where AI may act, how bad a failure would be and how coupled the system becomes |
| Specify | α and pc | A precise specification makes verification cheaper, and tests written before the code, by someone other than whoever generates it, break the common cause |
| Audit | V and pc | Adds independent verification capacity: capacity that does not share the generator's blind spots |
| Operate | Ci | Makes an escaped failure cheap: gradual rollout, rollback, monitoring |
None of the four is new. What is new is the proportion: they used to be the smaller part of a team's work, and now they are almost all of it.
What is measured and what is not
Before proposing roles and team sizes, it helps to separate what the data supports from what is interpretation.
| Finding | Source | What it shows | What it does not show |
|---|---|---|---|
| Employment of 22- to 25-year-olds in AI-exposed occupations (software development among them) is 19% below where it would be had it kept pace with less-exposed peers | Brynjolfsson, Chandar and Chen, Stanford, August 2026 (ADP payroll data through June 2026) | The gap comes from fewer hires, not more separations, and does not appear among experienced workers | That AI causes it: the authors call it a descriptive indicator. They also find no economy-wide displacement |
| US software development job postings are 27.5% below their pre-pandemic level | Indeed Hiring Lab, July 2026 | Postings have recovered since 2025, but 71% of the increase is senior roles and 37% is roles with "AI" in the title | How much of the drop is AI and how much is the correction after the 2021–2022 hiring boom |
| Experienced developers took 19% longer on real tasks in their own repositories when using AI, while believing they were 20% faster | METR, randomized trial, July 2025 (16 developers, 246 tasks) | Perceived productivity is not measured productivity | That it holds for later tools, or for new or unfamiliar codebases |
| With a coding assistant, a well-scoped task was completed 55.8% faster | Peng et al., controlled experiment (2023) | On well-defined tasks the gain can be large | That it carries over to large systems with dependencies |
| Every 25% increase in AI adoption is associated with 1.5% lower delivery throughput and 7.2% lower stability, and 3.1% faster code review | DORA, State of DevOps 2024 | More code is not more software delivered reliably | Causation: it is an association in survey data |
| AI amplifies what a team already is: strong teams get better, struggling teams see their problems intensify | DORA 2025, nearly 5,000 respondents | Results depend on the platform, processes and clarity of the work | A single productivity number |
| Employment of software developers, QA analysts and testers is projected to grow 15% from 2024 to 2034 | US Bureau of Labor Statistics (BLS) | Total demand for software keeps growing | It is a projection, and it groups three occupations |
Three readings the evidence supports:
- The reduction is real, but it comes in through hiring. Fewer people are hired at the start of their careers; experienced people are not being let go at a higher rate.
- Generating faster does not guarantee delivering more. METR and DORA agree that productivity gains are not automatic; they depend on how work is organized around AI.
- What is in demand is judgment. The postings coming back are senior and AI-related: people who can decide what to build and judge whether what was built is right.
The three roles
1. Scope: decide what gets built, where AI may act and how bad failure would be
Whoever scopes sets the boundaries AI works within. This role inherits from product management and technical leadership; on a small team one person can cover it.
Responsibilities
- Frame the problem, and what is out of scope, before asking for a single line of code.
- Classify the risk of each change (low, medium, high, critical) and decide which controls each level requires.
- Set a change budget per cycle: how much work in progress fits without exceeding the team's verification capacity.
- Draw the system's boundaries: modules, contracts between them, and what an agent may touch without extra permission.
- Reserve capacity to pay down old debt, at least as fast as it grows more expensive.
Tools: architecture decision records (ADRs), versioned contracts (OpenAPI, JSON Schema, AsyncAPI), domain maps, risk matrices, work-in-progress limits, and permissions and hooks that restrict what an agent can run or edit.
Delivers: written scope, a risk class for every change, recorded decisions, and technical boundaries enforced by machines rather than goodwill.
Measured by: the share of changes with a risk class, changes that cross agreed boundaries, and the ratio of generated to verified work (ρ̂ in the previous article).
2. Specify: state precisely what "correct" means
Whoever specifies turns a need into something a machine can check. This role inherits from business analysis and from much of programming: instead of writing the implementation, you write what the implementation must satisfy.
Responsibilities
- Write user stories with verifiable acceptance criteria.
- Turn those criteria into tests before the code exists, and freeze them so the agent cannot edit them to make them pass.
- Define properties and invariants: what must hold for any input, not just for the examples.
- Maintain the contracts between components and the domain's edge cases.
- Split work into small changes, because a small change is far cheaper to verify.
Tools: user story templates, Gherkin or EARS for requirements, acceptance tests, property-based testing (Hypothesis, fast-check, jqwik), contract testing (Pact), strict type systems and, in the critical core, formal specification (TLA+, Alloy, Dafny).
Delivers: an executable specification: failing tests that describe the expected behavior before the code exists.
Measured by: the share of changes with tests written first, average PR size, and how many defects escape because a specification was ambiguous or incomplete.
3. Audit: check independently that what was built is what was specified
Whoever audits does not review everything: they decide what to review, how and how deeply, based on risk. This role inherits from quality assurance and code review, with one fundamental change: its value lies in being independent of whoever generated the code, including the AI model.
Responsibilities
- Review high- and critical-risk changes line by line.
- Audit the rest by sampling: pick a random fraction of low- and medium-risk changes and review them in depth, to estimate how many defects are slipping through.
- Measure test quality, not just coverage: how many seeded bugs survive (mutation testing).
- Use verifiers that do not share the generator's bias: another model, another person, static analysis, tests written from the specification.
- Build the threat model for features that handle personal data, money or external input, with one test per threat.
- Spot rubber-stamping: approvals too fast for the size of the change.
Tools: mutation testing (Stryker, PIT, mutmut), static and security analysis (Semgrep, CodeQL), secret and dependency scanners, a different AI model from the generator for pre-review, risk-based review guides, STRIDE for threats, and basic sampling statistics.
Delivers: a verdict for every high-risk change, and a periodic estimate of the escaped-defect rate for everything else.
Measured by: mutant survival rate, defects found in production versus before it, and change failure rate (DORA).
The roles that remain
- Operate (platform, SRE): gradual rollout, feature flags, automatic rollback, observability. It lowers Ci: it does not reduce debt, but it makes an escaped failure tolerable. Often shared across teams.
- Design (UX): AI produces interfaces quickly, but deciding what a user actually needs is still research. Also often shared.
Where each role comes from
| Role in 2023 | Role today | Stops doing | Starts doing |
|---|---|---|---|
| Product management | Product and risk (scope) | Writing requirements as prose | Classifying risk and setting the change budget |
| Technical lead | Architecture and boundaries (scope) | Reviewing every PR | Contracts, modularity, machine-enforced boundaries |
| Business analysis | Specification engineering | Documents nobody runs | Acceptance criteria turned into tests |
| Programming | Specification or verification engineering | Writing the implementation | Tests first, properties, splitting work, auditing |
| Testing (QA) | Verification engineering (audit) | Running test cases by hand | Mutation, sampling, independence, threat models |
| DevOps | Platform and recovery (operate) | Deploying by hand | Automatic rollback, gradual rollout |
Skills to develop
| Skill | Why it matters now | How to practice it |
|---|---|---|
| Writing unambiguous specifications | An agent implements literally what it is asked; ambiguity becomes a defect | Write acceptance criteria and ask someone else to find two different readings |
| Reading code critically | You cannot audit what you do not understand. This skill does not lose value | Review other people's code looking for the bug, not confirming that it works |
| Adversarial thinking | You have to imagine how a system fails and how it gets abused | STRIDE threat models; deliberately breaking your own code |
| System design | Boundaries and coupling decide whether debt grows linearly or exponentially | Record decisions with the alternatives you rejected; review dependencies between modules |
| Risk economics | Reviewing everything is impossible; you have to decide where it pays off | Classify changes by cost of failure and compare the call with actual incidents |
| Basic statistics | Auditing by sampling requires knowing how much to sample and what to conclude | Sample sizes, confidence intervals, defect rates |
| Knowing how AI fails | Models invent dependencies, simplify edge cases and write tests that confirm their own mistakes | Keep a log of the agent's typical errors in your own project |
| Domain knowledge | Only someone who understands the business knows whether a rule is right | Time with users and business rules, not just with code |
What loses relative value: memorizing syntax, writing boilerplate, typing speed, and knowing every library's API by heart. What does not: understanding how software works on the inside. Without that foundation, auditing is impossible.
What a team looks like: 2023 versus today
Take a typical 2023 product team, of the size the industry commonly used for a web product with an app and an API: ten people, four of them dedicated to writing code.
Following the logic of this article, the same product today would need about six full-time equivalents:
| Function | 2023 | Today | Change |
|---|---|---|---|
| Scope (product, architecture) | 2 | 2 | Same headcount, different work |
| Specify | 1 | 2 | Up: absorbs part of programming |
| Write code | 4 | 0 | Done by agents, under specification |
| Audit | 1 | 1 | Same headcount, more weight: from running test cases to independent verification |
| Design | 1 | 0.5 | Shared with another team |
| Operate | 1 | 0.5 | Shared platform |
| Total | 10 | 6 | −40% |
How to read this comparison:
- It is an illustrative composition, not a measurement. No study today measures the size of product teams before and after AI. The data in the previous section measures employment and job postings, not teams.
- The reduction comes from writing code, not from verification. Verification capacity stays the same or grows. Cutting there, with more code coming in, is exactly what makes debt grow.
- The number depends on risk. By the same reasoning, a low-risk internal product could run with three people, and a payments or healthcare system might need the same ten as before: the savings in programming get reinvested in verification.
- It depends on what the company does with the productivity. If it uses it to build more products instead of cutting, total employment may not drop even though each team is smaller. The Stanford authors themselves note that higher productivity can raise or lower employment depending on how much demand grows.
| Product risk | Example | Indicative team | Versus 2023 |
|---|---|---|---|
| Low | Internal tool, prototype | 3 to 4 | −60% to −70% |
| Medium | Business product without sensitive data | 5 to 7 | −30% to −50% |
| High | Personal data, money, authentication | 7 to 9 | −10% to −30% |
| Critical | Healthcare, regulated finance, security | 9 to 11 | −10% to +10% |
What can go wrong
This reorganization has costs and risks worth stating up front:
- The talent pipeline breaks. If fewer people are hired at the start of their careers, as the Stanford data shows, where will people with the judgment to audit come from ten years from now? Nobody learns to judge code without having written and broken it first. A team that thinks long term has to keep training people, even if that costs more today.
- Smaller teams concentrate knowledge. With six people, losing one matters more. Recorded decisions and explicit contracts stop being bureaucracy and become the team's memory.
- Auditing machine output is tiring and lulling. When the system is almost always right, attention drops and approvals happen without looking. The previous article already found the signal: in its sample, PRs signed by Claude Code received 4.8× fewer reviews per 1,000 lines.
- Productivity is not guaranteed. METR measured experts taking 19% longer with AI; DORA, lower stability. Cutting people on the assumption of a gain the team does not yet have is taking on debt in advance.
- Regulated contexts change the math. In sectors with external audits, evidence of human review is a requirement, not an efficiency choice.
How to make the transition
- Measure before you cut. Work out how many changes are merged for each one reviewed, and estimate the debt with the calculator in the previous article.
- Classify the risk of each part of the system and write down which controls each level requires.
- Make tests-first the rule, frozen so the agent cannot edit them.
- Turn QA into verification engineering: mutation, sampling and independence instead of manual execution.
- Move people who used to program into specification and auditing, depending on their strengths, with explicit training in the skills above.
- Reserve capacity to pay down debt, at least as fast as it grows more expensive.
- Keep an entry-level program: people who start by auditing under supervision and writing specifications, so the judgment exists five years from now.
What this article does not claim
- It does not claim code no longer needs reading. It claims that reading all of it stops being the main control, and that you read where it matters.
- It does not claim AI has already cut software employment across the board. The available evidence shows fewer young people being hired and postings below 2020 levels, with causes still under debate.
- It does not claim six is the right number for every team. It is an illustration for a medium-risk product; the right size follows from risk and verification capacity.
- It does not claim people are redundant. It claims their work moves, and that where it moves demands more judgment, not less.
Sources
- Brynjolfsson, Chandar and Chen, Canaries in the Coal Mine? Six Facts about the Recent Employment Effects of Artificial Intelligence, Stanford Digital Economy Lab, August 2026 version.
- Indeed Hiring Lab, US software development job postings data, July 2026.
- Becker, Rush, Barnes and Rein, Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity, METR (2025).
- Peng, Kalliamvakou, Cihon and Demirer, The Impact of AI on Developer Productivity: Evidence from GitHub Copilot (2023).
- DORA, Accelerate State of DevOps Report (2024) and State of AI-assisted Software Development (2025).
- US Bureau of Labor Statistics, Occupational Outlook Handbook: Software Developers, Quality Assurance Analysts, and Testers, 2024–2034 projections.
- Dixi-Project, Verification debt in AI-assisted development (2026): GitHub data and the DVI model.