Last quarter, I was pretty proud of myself. We’d finally cracked the code review bottleneck that had been plaguing our engineering org for months. Implemented a 4-hour first response SLA, 24-hour merge target. The metrics looked beautiful—92% compliance within six weeks.
Then the Q2 developer satisfaction survey came back. We dropped 15 points.
The Numbers Looked Great Until They Didn’t
Our VP of Engineering had been pushing us to speed up code reviews for good reason. The research is clear: fast reviews can improve velocity by 63%, innovation by 20%, even reduce tech debt by 10%. Meta published a great piece on how they optimized review turnaround time and saw real business impact.
We took it seriously. I worked with my team leads to establish clear expectations: first response within 4 hours during business hours, merge decision within 24. We built dashboards, sent reminders, celebrated teams that hit the targets. It worked—at least according to the metrics.
What the Metrics Missed
The satisfaction survey included open-ended feedback, and the comments were brutal:
- “Reviews feel like rubber stamps now. I’m not learning anything.”
- “People are just approving to hit the SLA. I caught a bug in production that three reviewers missed.”
- “I used to look forward to code reviews with Sarah—we’d have great discussions. Now she just writes ‘LGTM’ and moves on.”
We’d optimized for speed and accidentally optimized away learning, thoroughness, and collaboration.
The Thing About Process Without Context
I dug into the data with our engineering analytics team. We found some troubling patterns:
- Average comments per review dropped from 4.2 to 1.8
- “Substantive discussions” (comment threads with 3+ exchanges) fell by 60%
- Time spent in review dropped, but so did the quality of feedback
- Most concerning: bug escape rate increased 12%
We’d created a process metric without cultural context. Speed became the goal instead of effective collaboration. Teams gamed the system—not maliciously, but because we told them speed mattered and we measured speed.
The Fix Required Culture AND Process
Here’s what we changed:
Added Quality Metrics Alongside Speed:
- Constructive feedback rate (comments that led to meaningful changes)
- Follow-up discussion depth (are we actually collaborating?)
- Learning indicators (junior devs asking questions, seniors explaining approaches)
Changed the Narrative:
Stopped celebrating “fastest review time” and started highlighting “best teaching moments in code review.” We created a Slack channel where people could share great review discussions.
Adjusted the SLA:
Kept the 4-hour first response (that’s genuinely helpful), but changed the merge target to “24 hours OR when the discussion reaches natural conclusion, whichever is appropriate.” Gave reviewers permission to take time when it mattered.
Made Speed Contextual:
Hotfixes and small changes? Fast reviews are appropriate. Architectural decisions or new patterns? Take the time to discuss properly.
Where We Are Now
Three months later, our review speed is actually about the same—around 18-hour average merge time. But the character of reviews changed completely:
- Substantive discussions are back up to 80% of previous levels
- Developer satisfaction recovered 12 of the 15 points we lost
- Bug escape rate is down 8% from our pre-SLA baseline
- Most importantly: people are learning again
The Lesson I’m Still Learning
Process metrics are necessary but not sufficient. We needed the SLA to create urgency around review responsiveness. But without pairing it with cultural expectations around quality, collaboration, and learning, we just created velocity theater.
The research on code review turnaround time is valid—slow reviews really do kill productivity. But the research also shows that psychological safety and team collaboration have “outsized influence” on developer experience. You can’t sacrifice one for the other.
Platform teams and engineering leaders: when you optimize for speed, make sure you’re also protecting the cultural practices that make speed valuable. Otherwise you’re just helping people ship faster to the wrong destination.
Anyone else dealt with this tension? How do you balance speed and quality in code reviews without creating perverse incentives?