Smart Bear Software recently released a white paper discussing the misconception that peer code review is a hindrance to Agile development methodologies. For anyone who regularly performs peer code reviews, would like to start performing them, or thinks they are an obstacle when it comes to Agile development should read this paper.
The paper talks about the history of code review, how code review aligns with Agile, types of lightweight code review, and techniques to perform optimized code reviews. Some of the key statements that I took away from the paper are this:
- Code review allows for “continuous attention to technical excellence and good design”. These enhances the agility of the code, the developers working on the code, and the overall Agile process.
- Code review “promotes sustainable development”. The “bus number” concept is one that I use consistently when promoting peer code review in my own workspace and corporate environment. The white paper explains it simply, “How many team members would have to get struck by a bus before no one was left that understood the code? If the bus number for a section of the code is less than two, then that’s a problem.”
- The final take-away comes from the Agile Manifesto Principles itself, “The best architectures, requirements, and design emerge from self-organizing teams.” The same is true of quality peer code review; “If peer code review is mandated by someone outside the team, its chance of success decreases. If team members do not want code review to succeed, it will fail.”
- I use Code Collaborator. I think it’s the best tool out there for performing peer code review, especially with distributed development teams. I think peer code review allows developers to become better developers through the visibility and social nature of performing the review itself. My opinions may be a bit biased, based upon my experiences with Smart Bear Software, but, in fairness, this white paper discusses the enormous benefits of peer code review without discussing specific products. It only discusses the principals and observed benefits, and is in no way a sales pitch to buy their product.