How NOT to Run a Code Review
Code reviews can help software developers improve their software, but the process can go wrong. Oh, SO wrong. Here's where you'll find the biggest problems... and office politics is just the beginning.
CIO — Throughout the rest of this article series (which begins with Running an Effective Code Review), I've presented code reviews as a normal part of the technology development process. I have intentionally sidestepped the many ways in which they can become meetings from hell: politically, technically and in terms of process.
By far, the most damaging of these is politics. New developers should be cautioned that, especially in large companies, 95 percent of code reviews are venues for political posturing, says longtime developer Chuck Brooks.
Developer Adwait Ullal (and several others) cite situations in which code reviews were used as a witch hunt, either in terms of personal mudslinging or performance reviews leading to termination. Christopher Phillips, director of software engineering at IAC Consumer Applications & Portals says, "I've seen code reviews done to pave the way for letting people go. I've seen reviews used to 'put people in their place' in the perceived pecking order."
Sometimes the problem is in the developer's head, not the reviewers' attitude—but that's all the more reason to ensure a code review leader adopt the role of mediator. Former technology chief Jay S. Hemmady's worst code reviews were where insecure coders felt threatened during the code review. "Everything went horribly bad soon after the meeting started: emotions, sense of personal attacks, defensiveness, etc." Old wounds from previous personality clashes can surface resurrect "us versus them" feelings. All in the name of improving the code, mind you.
Oliver Cole, president at OC Systems and also the lead for the open-source Eclipse Test and Performance Tools Platform project points out that the worst code review experiences always involve ego. "Some people cannot take criticism. Some people cannot give criticism. Furthermore, some people take a code review as a time to make it clear to all how superior they are to others." He adds, "These reasons alone are enough for previously peaceful countries to go to war. Now add in the fact that there are precious few objective measurements for what is 'good' in code and you can get major disagreements that cannot be objectively debated or decided."
Smartbear Software's president Jason Cohen sums it up: "The worst morally and morale-y is when reviewers use criticism as a weapon. Some people laugh (nervously) when I describe it like that, but it's quite serious. However this is usually extreme enough that everyone knows it's happening, so a manager who is paying attention can root out this problem pretty easily."
But politics is not the only danger in running an effective code review. There are other places where well-intentioned teams can fall into the quicksand.


