My favorite excerpt:
The ostensible reason for this process was to get more engineers familiar with different parts of the codebase that they wouldn’t have had any exposure to otherwise.
What we found was far more surprising — we uncovered an amazing number of bugs before they ever reached QA.
Furthermore, the bugs were coming from everywhere, not just the junior engineers. All the engineers, including all of the most senior developers, had plenty of room for improvement.
This seems to be a common theme among groups implementing a reasonable code review process for the first time. (“Reasonable” means not encumbered by heavyweight process.) We’re always surprised that our code wasn’t as good as we first thought.
Shouldn’t it be obvious? Have you ever written a page of prose that couldn’t be improved? That you yourself couldn’t improve when you look back a month later, but that you friend could have found with a two-minute scan?
Writing code isn’t different, nor should we expect it to be.
By the way, once you get used to having the safety net of fellow programmers catching all your little mistakes, it’s scary to go back to isolation. You know the bugs are there!