I picked this book up while I was at the Door64 Tech Fair a couple of weeks back. The Smart Bear Software table had the intriguing sign saying “Free Book”, so as I passed by, I checked out whether the dead tree was worth carrying around the weight. The title grabbed my interest, and the subtitle. “Modern Approach, Practical Advice” hooked me. I grabbed one. But was it worth it?
This free book, published by Smart Bear Software, has two purposes. Primarily, it is to advocate for the use of their software product, Code Collaborator. But, for the benefit of those who have not used peer reviews for their development projects, the book also presents the case for using peer reviewing in the first place, with descriptions of different methodologies for peer code review, including the pitfalls and benefits of the different types, as well as how to measure the efficacy of the review process and how to make improvements.
Beyond flogging their own product, the authors do an excellent job of discussing the different methodologies of peer code review, the literature of existing case studies, and the areas where the claims of the benefits of the methodologies had not been validated by the existing work. Then, in a case study of real-world coding, the book presents data that validates many of the claims in favor of light-weight peer code review. The case study appears rigorous, including areas where the hypothesis cannot be validated with the data and questions needing further study before conclusions can be drawn from them. The book goes on to cover the social effects of peer review, including how to frame the code reviews to maximize the benefit to the programmers; considerations for implementing a code review process; how to measure the success of the process (and how not to measure it), as well as using that feedback to improve the review process. The book concludes with a chapter about how to approach code review in general from the perspective of the software process models (SEI, CMMI, etc) (written by Steven Teleki), and a chapter specifically about using the Code Collaborator software, discussing how its features streamline the peer review process.
Best things about the book:
- The book has practical applicable value beyond the software the book is intended to sell, particularly if the reader hasn’t had extensive experience with the different forms of code review.
- The case studies ask the right questions and follow through on them thoroughly.
- Solid, practical advice on the most effective sizes of code blocks to be reviewed, minimum and maximums for time spent on the review.
- Practical advice on how to implement a peer review processes.
- Any peer code review is better than none.
- Code review is less costly and more effective than letting the defects out to QA (or worse, your customers!).
- Light-weight code review is more efficient than heavyweight and at least as effective, and often more so.
- Peer code review helps all participants to become better programmers.
Peer code review was only formalized in one of the environments I have worked in, and was only informally implemented in a couple of others. After reading this book, in my next environment I’ll be advocating peer review, and I’ll certainly be interested in looking into testing Code Collaborator as a tool to make peer review more effective and efficient.
Starting Monday July 13th 2009, see the follow-up to this article here. The promotion described in it ended July 17 2009.
Jim Adcock makes a living as a SharePoint Administrator, and makes a difference as Vice President of Launch Pad Job Club, an organization in Austin, Texas, whose mission is help people who have lost their jobs to get the skills they need to land their next job, and to help them cope with the interim between jobs. Check out his technology-related posts or check out some of the other content on the site.