Skip to content
LUIGI MICCA

Published

4 min read

AI writes your code faster. Who pays for the maintenance?

Teams shipping with AI assistants move visibly faster — and the invoice arrives a year later. What the 2026 data says about AI-generated technical debt, why it accumulates silently, and the process that keeps the speed without the hangover.

Every engineering leader I talk to this year tells me the same two things: the team ships noticeably faster with AI assistants, and nobody is quite sure what all that speed is doing to the codebase. Both are correct, and now there's data for the second one.

The most careful study so far comes from Carnegie Mellon, presented at MSR 2026. It compared 807 open-source projects that adopted the Cursor editor with 1,380 similar projects that didn't. The speed was real and short-lived: commits rose 55% in the first month and the effect had largely faded by the second. What didn't fade: static-analysis warnings up about 30%, code complexity up about 41%, and both still there months later. The authors' conclusion is the line to underline — the extra warnings and complexity are what drag the velocity back down.

It isn't the only signal. CodeRabbit's December 2025 report, comparing AI-coauthored pull requests with human-only ones, found about 1.7 times more issues in the AI ones, with logic errors up 75%. CodeRabbit sells code review, so read it with that in mind — but it points the same way as the academic one. The compounding kind of expensive, not the linear kind.

Why this debt is different

Technical debt isn't new; I've spent a good part of my career cleaning it up. But the classic kind was at least chosen: a developer took a shortcut, knew it, and someone could write "TODO: fix properly" above it. AI-generated debt has a nastier property — nobody knows the shortcut was taken.

The assistant produces code that compiles, passes the tests and reads plausibly. What it lacks is context: it doesn't know your architecture's boundaries, why the last team abandoned that pattern, or that three other modules already solve this problem. So it happily writes a fourth solution, slightly different from the other three. I once wrote that a fast-growing codebase breeds five slightly different implementations of the same thing; AI does that at machine speed, politely, in perfect syntax.

Review was supposed to catch this. In practice, plausible code is precisely the hardest kind to review — nothing looks wrong, so approval becomes a reflex. The result is what the industry calls "code smells": issues that don't break anything today and quietly raise the cost of every change tomorrow.

Honesty corner

I use AI assistants daily, and they're genuinely good — for scaffolding, for tests, for the boring parts I used to postpone. This isn't an argument for abstinence. The dividing line isn't assisted versus manual; it's assisted versus unattended. Speed that produces code nobody understands isn't velocity, it's deferred cost with excellent syntax highlighting.

The fix is process, not heroics

What works, in the teams I've seen manage this well, is boring and effective:

  1. Someone owns the architecture. A human decides where the boundaries are and which patterns are canonical — and reviews AI output against those decisions, not against "does it work".
  2. Review AI code like a junior developer wrote it. Not hostility — scrutiny. The question isn't "is this broken?" but "should this exist, here, in this shape?"
  3. Static analysis and tests as the contract. Machines are consistent reviewers of machine output. Wire the thresholds into CI so "it passes" keeps meaning something.
  4. Periodic debt audits. Measure time-to-change and defect rates per area. The 30% and 41% from the study aren't destiny — they're what happens when nobody looks.
  5. Delete duplicates on sight. The fourth implementation is cheapest to remove the week it appears.

The business version

If you run a company rather than a codebase, here's the translation: AI-assisted development is a real productivity gain only if the second year doesn't eat the first. When you evaluate a team or a vendor, ask how they review AI-generated code, what their duplication and defect metrics look like, and who owns the architecture. Silence on those questions is the answer.

Faster is good. Faster with the meter running quietly in the background is how you end up hiring someone like me two years later — which, full disclosure, is fine for me and expensive for you.


I'm an independent software architect focused on front-end work — audits and modernisation of codebases that grew faster than their structure, human-written or otherwise. If your team ships fast and sleeps badly, let's talk: a 30-minute intro call is free.