İçeriğe geç
Clinford Jordano Valencia
Tüm yazılar

Yapay Zekâ ve Mühendislik

AI Makes Writing Code Cheaper. It Does Not Make Engineering Judgment Cheaper.

AI assistants cut the cost of producing code, but not of verifying, reviewing and owning it. What the research shows, where the bottleneck moves and how teams should adapt.

  • 9 dk okuma

Bu sayfa henüz Türkçe olarak mevcut değil, bu yüzden İngilizce orijinalini okuyorsunuz.

AI coding assistants have made one part of software engineering dramatically cheaper: turning an idea into plausible-looking code. But typing was never the expensive part. The expensive parts are deciding what to build, verifying that the code is correct, secure and maintainable, and owning it when it fails at 3 a.m. Those costs haven’t dropped; for many teams they have risen, because there is now much more code to check. This post looks at what the research says, where the bottleneck moves, and how individuals and teams can adapt.

Why It Matters

When the cost of one step in a process drops, the bottleneck moves to the next step. Teams that measure output (lines of code, pull requests, story points) will see impressive numbers while review queues grow, incidents creep up and nobody fully understands parts of their own system. Teams that understand where the cost moved can actually turn cheaper code into faster, safer delivery.

What the Evidence Says

The research so far is mixed, and the differences are instructive:

StudyWho and howFindingCaveat
METR randomized controlled trial (early 2025)16 experienced open-source developers, 246 real tasks in large repositories they knew wellWith AI tools allowed they took 19% longer, yet estimated they had been about 20% fasterSmall, and specific to experts on familiar code; the gap between perceived and measured speed is the lesson
DORA 2024 reportA large industry surveyGains in code quality, documentation and review speed, but every 25% increase in AI adoption came with about a 1.5% drop in delivery throughput and a 7.2% drop in delivery stabilitySurvey correlation, not an experiment; the authors’ explanation is that AI makes larger changes easy, and larger batches are riskier

Both results point the same way: generating code faster doesn’t automatically make delivery faster or safer, and people are poor judges of their own speed.

Where the Cost Moved

Beforeframewrite codeverifyownWith AIframewriteverify (more code to check)ownThe total shrinks only if verification and ownership keep up.
AI shrank the cost of writing code. Framing and owning it stayed the same, and verifying grew because there is more code to check, so verification became the bottleneck.

Verification Is Now the Bottleneck

AI-generated code is fluent, which makes it look reviewed. It can:

  • call APIs that don’t exist
  • handle the happy path and miss the edge cases
  • introduce subtle security issues
  • duplicate logic that already exists elsewhere

Someone has to catch all of that, and reading code carefully is slower than writing it. If review standards drop because the code looks plausible, defects move into production; if they don’t, reviewers become the constraint.

Judgment Is What Remains Scarce

AI is good at producing an answer to the question you asked. It is much weaker at noticing you asked the wrong question. The decisions that matter most (what to build, which trade-offs to accept, where to draw boundaries, what can go wrong in production) still depend on context that lives in people’s heads, in conversations with users and in the history of the system.

Ownership Doesn’t Transfer

Whoever merges a change owns it: they will be asked why it does what it does, and they will debug it during an incident. Code nobody on the team understands is a liability, however fast it was produced. It is technical debt with an interest rate nobody has priced.

Where AI Clearly Helps

Good fitUse with carePoor fit without strong verification
Boilerplate, scaffolding, test setupRefactors across many filesSecurity-sensitive code (auth, payments, crypto)
Exploring an unfamiliar API or codebaseBusiness logic with subtle rulesConcurrency and race conditions
Drafting tests, docs and migration scriptsPerformance-critical pathsArchitecture decisions
Summarizing logs and incidentsCode in a language you can’t read wellAnything nobody will review

How to Adapt as an Engineer

  1. Frame the problem yourself: inputs, constraints, edge cases
  2. Generate a draft with AI, in small pieces
  3. Verify: read every line, run the tests, try the edge cases
  4. Own: you can explain it and debug it without the AI
  • Write the tests or acceptance criteria first. They turn “looks right” into “is right” and are the cheapest verification there is.
  • Keep changes small. Small batches are easier to review and safer to deploy, which is exactly what DORA’s numbers suggest AI erodes.
  • Know the fundamentals. You can only catch a wrong answer about the event loop or promise ordering if you know the right one.
  • Don’t outsource understanding. If you couldn’t have written it, you can’t review it. Ask the AI to explain, then verify the explanation.

How to Adapt as a Team

  • Measure outcomes, not output. More pull requests and lines of code are now nearly free; lead time, change failure rate and customer impact are not (see the metrics that make engineering organizations worse).
  • Invest in automated verification. Type checking, tests, linters, static analysis and preview environments scale; human attention doesn’t.
  • Protect review capacity. Set a size limit for changes, make review part of everyone’s job, and don’t let review time be the hidden cost of “faster” coding.
  • Set clear rules for data and security. Decide which tools may see which code and data, and never paste secrets or customer data into prompts.
  • Keep growing people. Junior engineers learn by struggling with problems; if AI removes all the struggle, it also removes the learning. Pair them with experienced reviewers and ask them to explain what they ship.

Going Deeper: Verification as a System

Individual review doesn’t scale with the volume of generated code. Teams that get real gains from AI treat verification as a pipeline, with cheap automated checks catching most problems before a human looks, and every later stage being more expensive than the one before:

criteria andtests firsttypes, lint,static analysistests in CIowner review(can explain it)preview orcanary + flagproductionmonitoringcheap, automatic, fastexpensive, human, slowcost of finding a problem
Where problems in AI-assisted changes get caught. Each stage to the right costs more to find and fix a problem, so push as many checks as possible to the left.

How Much Autonomy to Give an AI Agent

Agents that run commands and edit many files raise the stakes. A useful way to decide is to match autonomy to how reversible the agent’s actions are:

LevelWhat the AI doesGuardrails that make it safe
SuggestAutocomplete and chat answers a person copies inThe person reviews every line as their own code
Edit locallyChanges files in a working copyVersion control: every change is a reviewable diff
Open pull requestsBranches, commits and PRsSame CI and review rules as people; no merge rights
Run in a sandboxExecutes commands, tests and buildsIsolated environment, no production credentials, network limits
Touch productionDeploys, migrations, data changesAvoid. If unavoidable: least privilege, human approval for anything destructive, tested backups

The Replit incident above happened at the last level, without those guardrails. Every level below it keeps a human decision between the AI and anything irreversible.

Measuring Whether AI Helps

Run it like any other change to how you work: pick a baseline period, then compare outcome and delivery metrics after adoption, not output.

  • Useful signals: change lead time, change failure rate, review time per change, change size, escaped defects and the team’s own survey answers.
  • The warning sign: pull requests per week rise while lead time, review queues and failure rates also rise. The bottleneck has moved to verification, as DORA’s data suggests.

Test Yourself: Scenarios

There is no single right answer to these, but there are strong and weak ones. Think through yours, then compare.

Senaryo 1

The 2,000-Line Pull Request

A teammate opens a pull request of about 2,000 lines, mostly generated by an AI assistant. CI is green. The feature is due this week.

Cevabı göster

Green CI shows the code compiles and that the tests that exist pass; it says nothing about the tests that don’t exist. Before reviewing line by line:

  1. Ask for it to be split into reviewable pieces (data model, API, UI), each one deployable, ideally behind a feature flag. Large batches are exactly what DORA links to lower stability.
  2. Ask the author to walk you through it. If they can’t explain a part, it isn’t ready, whoever wrote it.
  3. Check the tests first. Do they cover edge cases and failure paths, or only the happy path the AI generated alongside the code?
  4. Look for the usual AI failure modes: invented APIs, duplicated helpers that already exist, missing authorization checks, swallowed errors.

On the deadline: shipping a smaller, well-understood slice this week is usually better than shipping an unreviewed large one.

Senaryo 2

“We’re 40% More Productive”

Six months after rolling out AI tools, a dashboard shows pull requests per engineer up 40%. Leadership asks whether engineering got faster.

Cevabı göster

Pull request count is an output metric, and AI makes output cheap, so it can’t answer the question. Look at outcomes and flow over the same period:

  • Did change lead time drop?
  • Did change failure rate and incident count stay flat?
  • Are review queues growing?
  • Did customer-facing delivery (features adopted, bugs fixed) speed up?
  • Change size: more, smaller PRs is healthy; more, larger PRs is a warning sign.

Report the honest picture, including where AI clearly helped (tests, migrations, boilerplate) and where the bottleneck moved. See the metrics that make engineering organizations worse.

Senaryo 3

Fast but Fragile

A junior engineer ships features quickly with AI help, but during an incident they can’t explain how their code works.

Cevabı göster

Treat it as a learning gap, not a tooling problem. Agree on one rule: anything you merge, you must be able to explain and debug without the AI. In practice:

  • write the tests or acceptance criteria before generating code
  • explain their PRs in review (“why this approach?”)
  • rewrite one generated piece by hand each week
  • pair with a senior reviewer on incident follow-ups

The goal is to keep AI’s speed while making sure the struggle that builds understanding still happens.

Senaryo 4

An Agent for Dependency Updates

You want an AI agent to keep dependencies up to date by opening pull requests automatically.

Cevabı göster

It is a good fit: the work is repetitive, and every change is a reviewable diff. Set it up so mistakes are cheap:

  • Sandbox: no production credentials, and it can’t merge.
  • Small PRs: one dependency (or one group) per PR, with its changelog linked.
  • Full CI: the whole test suite, plus a lockfile and license check.
  • Human review always for major versions and security-sensitive packages.
  • An off switch: one setting turns the whole thing off.

Measure success by how many of its PRs merge without rework.

Key Takeaways

  • AI made writing code cheaper; deciding what to build, verifying it and owning it did not get cheaper.
  • Evidence is mixed: experts on familiar code were measured 19% slower while feeling faster, and DORA links AI adoption to lower delivery stability.
  • When code is cheap, verification becomes the bottleneck; invest in tests, small changes and review capacity.
  • Treat AI output as a draft that someone accountable must understand well enough to debug.
  • Measure outcomes and delivery health, not output, because output metrics now mean even less.

Sources

Etiketler

Sık sorulan sorular

Does AI make developers more productive?

It depends on the task, the codebase and how you measure. It clearly speeds up boilerplate, unfamiliar APIs and exploration. Controlled studies of experienced developers on large, familiar codebases have found no speedup or even a slowdown, while the developers believed they were faster. Measure your own outcomes rather than assuming.

Should code written by AI be reviewed differently?

It should be reviewed to the same standard, with extra attention to things AI gets wrong confidently, such as invented APIs, missing edge cases, security issues and code that duplicates instead of reusing. The author who submits it is responsible for understanding every line.

Will AI replace software engineers?

NoBut it is replacing some typing, and changing what junior work looks like. The parts that remain scarce are judgment, problem framing, system design, verification and accountability, which is where engineers should invest.

What work should I not delegate to AI?

Anything where you can’t verify the result well: security-critical code, concurrency, data migrations, architecture decisions, and code in a language or area you don’t understand. AI can still help you explore these, but the decisions and the final review stay with you.

Is it safe to paste company code into AI tools?

NoUnless the tool is approved: only into tools your company has approved, under terms that cover data retention and training. Never paste secrets, credentials or customer data, whatever the tool.

How should junior engineers use AI without hurting their learning?

Use it to explain code, suggest approaches and review their own work, but write and debug enough code by hand to build understanding. A good rule: never merge code you couldn’t explain and debug without the AI.

What guardrails should AI coding agents have?

Least privilege, a sandbox without production credentials, every change as a reviewable diff, the same CI and review rules as people, human approval for anything destructive, and an easy way to switch them off.

How do we measure whether AI helps our team?

Compare outcome and delivery metrics, such as change lead time, change failure rate, review time and escaped defects, before and after adoption. Output counts like lines of code or pull requests are not evidence, because AI makes output cheap.