I’ve been sitting with the CodeRabbit State of AI vs Human Code Generation Report for a couple of weeks now, and the numbers are making me rethink how we measure engineering productivity at my org.
The Numbers That Should Make Every Engineering Director Uncomfortable
CodeRabbit analyzed 470 open-source GitHub PRs (320 AI-co-authored, 150 human-only) and the headline findings are stark:
- AI-authored PRs produce 10.83 issues per PR vs 6.45 for human-only PRs — that’s ~1.7x more issues
- AI PRs show 1.4-1.7x more critical and major findings, including business logic mistakes, incorrect dependencies, and flawed control flow
- Performance inefficiencies appear nearly 8x more often in AI-generated code (excessive I/O, unnecessary allocations)
- The single biggest gap? Readability — AI code violates local naming conventions, clarity patterns, and structural expectations
Meanwhile, the industry data from ByteIota and others paints an even more concerning picture at scale:
- PRs per author are up 20% year-over-year
- But incidents per PR jumped 23.5%
- Review times increased 91%
- AI-generated PRs wait 4.6x longer for code review than human contributions
- Technical debt increases 30-41% after AI adoption
The Uncomfortable Productivity Paradox
Here’s what keeps me up at night: my teams are shipping more PRs than ever. Our velocity metrics look phenomenal. Sprint burndown charts are beautiful. But when I dig into our incident reports and post-mortems, I’m seeing patterns that weren’t there 18 months ago.
We’re generating code faster than we can review it. And the review burden is falling disproportionately on our senior engineers—the exact people who should be doing architecture work, mentoring, and strategic thinking.
One of my senior staff engineers told me last month: “I spend more time now reviewing AI-generated code than I ever spent writing code myself. And the AI code looks right, which makes it harder to review than obviously bad code.”
The Quality Ratchet Question
At my org (40+ engineers, financial services), I’m trying to figure out who owns the quality ratchet:
- Is it the IC who prompts the AI? They generated the code, but they may not have the experience to know what “good” looks like in our specific domain.
- Is it the reviewer? We’re asking senior engineers to be the safety net, but the volume is overwhelming them.
- Is it the team lead/manager? Should we be setting AI adoption thresholds per team?
- Is it the org? Should engineering leadership mandate quality gates that are AI-aware?
The Exceeds.ai benchmarks suggest the sweet spot is 25-40% AI-generated code — teams in that range see 10-15% productivity gains while keeping review overhead manageable. Above 40%, quality gates start failing.
What I’m Experimenting With
On my teams, I’ve started a few experiments:
- “AI Budget” per sprint: Each team can use AI for no more than 40% of new code, measured by our tooling
- Mandatory self-review: If you used AI to generate code, you must add inline comments explaining why the AI’s approach is correct for our domain
- Paired AI sessions: Junior engineers can only use AI coding tools when pairing with a senior engineer (not pairing with each other)
- Incident attribution: We now tag post-mortems with whether AI-generated code was involved, no blame, just data collection
Early results after one quarter: incident rate dropped 18% while still maintaining most of the velocity gains. But it’s early.
The Broader Org Design Question
What I’m really wrestling with is this: AI coding tools are a force multiplier for code generation, but we haven’t redesigned our organizations around the new bottleneck, which is code review and validation.
We optimized our orgs for a world where writing code was the constraint. Now the constraint is understanding, reviewing, and maintaining code. That’s a fundamentally different organizational challenge.
Curious to hear from other engineering leaders: How are you thinking about this? Are you seeing similar patterns? And most importantly—who at your org owns the quality ratchet?