Code Review as a Service
Except I don&#x27;t believe in code reviews. Over the years I have experimented with pair programming and I think it is way better solution.<p>The one catch with pair programming is that some people just prefer to work alone and it is really draining to be talking constantly for couple of hours. I have modified the system to do on&#x2F;off pair programming  (ie. split up a little bit of work, rejoin later in the day, share what we have done, and work a little bit together).<p>The basic, unsolvable issue with code reviews is that the review is done <i>after</i> the code has already been written. As you know, the cost of fixing a problem is larger the later in the process you catch it. Pair programming aims to accomplish the correction while the code is being written.<p>Another huge problem is that, because the reviewer is not taking part in the development, he&#x2F;she does not have the same level of understanding of what was supposed to be done.<p>Also, code reviewers are typically disincentivized from doing review well:<p>* They have other tasks to accomplish, review takes their time away from those tasks but the deadlines are not pushed automatically,<p>* The review tends to land at a random point in time disrupting their flow -- they have something else in mind already and they want to switch to their work as quickly as possible -- meaning they will not want to get into great detail with understanding the problem.<p>This causes reviews to usually be very shallow and focused on trivia. Usually, I see reviewers read the code file by file line by line, hundred times faster than it was written. It is absolutely impossible to verify a large change like that and this guarantees that they will not actually verify it thoroughly.<p>Yeah, you may find superficial flaws, but that&#x27;s about it.<p>Other problems:<p>* The developer feels resentment because he&#x2F;she thought it was all done.<p>* A lot of effort was spent on a wrong solution which is lost productivity.<p>* From project management PoV it is a problem because we can&#x27;t tell how much time&#x2F;effort it will take until last second.<p>* Reviewers feel pressure to find <i>something</i> so they will just report trivia if they can&#x27;t find real issues.<p>* Reviewers tend to not want to report huge issues that would require complete rewrite because they are developers themselves and wouldn&#x27;t want the same happen to them, and also because they are typically members of the same team.<p>* and so on.