The Value of Using Checklists During Code Review
When I joined SmartBear a little over a year ago, a Collaborator customer suggested a new feature: checklists. When I asked for a use case to get a better idea of the ways in which he wanted to use the feature, he sent me a quote from the book the founder of Collaborator wrote, Best Kept Secrets of Peer Code Review, as well as a SmartBear article on best practices of peer code review, which states:
“Checklists substantially improve results for both authors and reviewers. Checklists are a highly recommended way to find the things you forget to do, and are useful for both authors and reviewers. Omissions are the hardest defects to find – after all, it’s hard to review something that’s not there. A checklist is the single best way to combat the problem, as it reminds the reviewer or author to take the time to look for something that might be missing.”
This, of course, did not mean we had to have a checklist feature built into the product, but I believed that if we were advocating so strongly for checklists, we should make the process simpler by adding a checklist feature to Collaborator.
And that’s exactly what we did.
How are checklists being used? Are they really that important?
The best use case I have heard is in regards to security. All companies have special security concerns, and many have members of the development team devoted to, or at least responsible for, ensuring that new code does not open a security hole. Ensuring that someone responsible for security has looked for that in the code and checked an item labeled “Security check” helps to prevent that.
Most often, however, Collaborator customers have important, commonly occurring issues specific to their own teams that they need to be certain to address during the review process. Creating checklist items that ensure reviewers are looking for these things and signing off that they have been addressed is a key component of code quality best practices.
In Collaborator, any reviewer can check off any item in the checklist. When they do, their name and the date they checked the item are noted.
The great value of using checklists during the review process is that when the review concludes, the team can be certain that all items deemed important at the beginning of the review have been addressed. As new items are discovered, the checklist can be updated with them to help ensure the team is consistently addressing all known potential issues.