Real Engineers Can't Vibe Code — Research Confirms It

There's a claim that circulates a lot in Vietnamese dev communities:
"If you're a real software engineer, you can't vibe code. Your conscience won't allow you to skip code review. You'll review every class, every method, every single line — because you need to stay in control of everything."
Most people read it as a compliment — a defense of engineering discipline against the chaos of blindly accepting AI output.
Turns out, researchers at UC San Diego and Cornell went and actually studied this. They tracked 112 professional programmers using AI agents in real work environments: directly observed 13 developers on the job, surveyed 99 more, all with at least 3 years of experience (some with up to 25).
Their conclusion: no professional coder actually vibe codes.
Not because they're too cautious. Because the job doesn't allow it.
What the Research Found
Nobody skips design
All 11 developers building new features maintained strict design control before handing anything off to AI. They either asked AI to draft a plan first — which they then reviewed and revised — or they wrote a complete design themselves and delegated only the implementation.
Nobody just said "build me a feature" and ran with the output.
Everyone reviews the code
9 of the 13 observed developers carefully reviewed every AI-generated change before accepting it. 3 others monitored program output closely and stepped in whenever something looked off. 1 developer used AI only to understand the existing codebase architecture — nothing more.
Zero developers accepted AI output without oversight.
Experienced developers got slower with AI access
This is the finding that should give every "10x productivity" claim pause: experienced maintainers working on existing codebases were 19% slower when permitted to use AI.
Why? Because reviewing AI-generated suggestions on a complex codebase takes time and cognitive load. The AI doesn't know your codebase the way you do. It doesn't know the invariants, the history, the "why this module exists" context. Every suggestion has to be evaluated against all of that — and experienced developers know to do that evaluation, so they do.
AI fails at real issues most of the time
When researchers looked at AI-suggested changes applied to real issue trackers, only 8% were accepted. That's a 92% failure rate in the wild.
Not in synthetic benchmarks. Not in controlled demos. In actual production codebases with actual professional developers evaluating the output.
The "Junior Developer Requiring Supervision" Model
One of the most useful framings from the study: experienced professional coders treat AI like a junior developer requiring supervision — not a senior engineer they can delegate to and trust.
That framing has practical implications.
You don't hand a junior dev a complex feature and walk away. You discuss the problem, align on the approach, give clear constraints, and then review what they produce. You don't read every line with paranoid suspicion — but you read enough to catch the class of mistakes a junior tends to make: misunderstood requirements, missed edge cases, correct-looking code that breaks an invariant you told them about two months ago.
That's exactly what the productive developers in this study did. They:
- Provided clear context (screenshots, file references, examples, step-by-step instructions)
- Maintained design ownership — they decided the architecture, the AI filled it in
- Reviewed changes at an appropriate depth for the risk surface
- Intervened early when output drifted, rather than letting it accumulate
The developers who worked this way were more productive. The ones who leaned further toward "just let the AI do it" ran into the 19% slowdown and the 92% rejection problem.
Where AI Actually Works
The research is clear that AI is genuinely useful — but for a specific category of tasks:
AI earns its keep on:
- Simple repetitive tasks
- Boilerplate code
- Tests and documentation
- Minor bug fixes with clear scope
AI struggles on:
- Business logic with specialized domain knowledge
- Complex integration across multiple systems
- Production-quality solutions without significant human oversight
- Anything requiring understanding of your codebase's history and constraints
This isn't a knock on AI — it's a description of what kind of collaborator it is. It's fast, fluent, and useful in its lane. The mistake is assigning it work outside that lane without supervision.
So the Original Claim Was Right — Partly
"Real engineers can't vibe code" turns out to be empirically correct: in a study of 112 professional developers, none of them practiced uncontrolled vibe coding in their actual work.
But the reasoning behind the claim matters. It's not that engineers can't let go of control. It's that they've internalized — from experience — why uncontrolled AI output is expensive to deal with later. The 92% rejection rate isn't a moral judgment, it's a practical reality that professionals have learned to route around.
The engineers who are slowest with AI aren't the careless ones. They're the experienced ones who understand that "looks right" and "is right" are two very different things — and the gap between them lives in business logic, system constraints, and edge cases that don't show up in demos.
That understanding is the conscience the original quote is describing.
What This Means in Practice
If the research describes what good AI use actually looks like, here's the practical takeaway:
The most productive developers using AI in this study weren't doing something heroic or novel. They were doing what good engineers always do: understanding the problem, defining constraints, delegating clearly, and verifying the output against what they know to be true.
AI just made the delegation faster. The engineering didn't change.
Summary and Key Takeaways
✅ UC San Diego + Cornell tracked 112 professional programmers — zero actually vibe coded
✅ All developers building features maintained design control before delegating to AI
✅ 9 of 13 observed devs carefully reviewed every AI-generated change
✅ Experienced maintainers were 19% slower with AI — reviewing unfamiliar output costs time
✅ AI suggestions had only 8% acceptance rate on real issue trackers (92% failure in the wild)
✅ Professionals treat AI like a junior dev requiring supervision, not a senior they can trust blindly
✅ AI is genuinely useful for boilerplate, tests, docs, minor fixes — not business logic or complex integration
Final Thought
The viral videos of "vibe coding" — where someone describes a feature in plain English and watches a full app appear in minutes — aren't lying exactly. That workflow exists. It just doesn't survive contact with a real production codebase.
Real software has history. It has constraints nobody documented. It has invariants that exist because of an incident two years ago that nobody wants to repeat. It has a team with opinions and a codebase with patterns.
AI doesn't know any of that. You do.
That's not a reason to avoid AI. It's a reason to keep your hand on the wheel.
📬 Subscribe to Newsletter
Get the latest blog posts delivered to your inbox every week. No spam, unsubscribe anytime.
We respect your privacy. Unsubscribe at any time.
💬 Comments
Sign in to leave a comment
We'll never post without your permission.