Monday, August 06, 2012

Intelligent Code Review Tool

I had some ideas to improve the code review process...
  • Reviewer suggestion: what if, based on the changed files and lines, the code review tool automatically analyzed all the checkins and previous code reviews and suggested the reviewers for you? Not only familiarity with the code, but it could take into account the desire by engineers to familiarize with the code. One idea is that engineers mark the areas of the code that they'd like to familiarize and they'd be included automatically.

  • Rate reviewers: reviewers are different. Some provide high level analysis of the change, while others focus on the low-level details. What if the code review tool allowed you to rate the reviewers, and based on these reviews, it suggested the right set of reviewers to get your code well reviewed (from both high and low level perspectives).

  • Reasoning for changes: one of the first challenges to review is to understand the reasoning for the change and for the chosen solution. Oftentimes this info does not fit the comment section of the code and, as a reviewer, spend a code review interaction trying to clarify that. What if the code review tool required link to the design document and updated the design document with code review for that feature? Or if the design document is not available, it allowed details to be inserted into the review before it is sent out? Also, one could link bugs and add additional links that help providing context. Finally, tools could help prioritize what the main concern of that CR is - by allowing the requests to be specified and linked to the actual code related to it (e.g. "please focus on the correctness of this algorithm").

Update (August 07, 2012)
  • Automatic section coloring: based on the number of changes, on bugs, our intelligent code review tool could automatic color sections that it sees that can be more problematic. For instance, if a bug indicates where the problem is, that would raise the score for that file/section. If a bug fix touches that, the same thing. It can also take into account comments for that region in previous code reviews. With some heuristic combining this information, this tool could point risky sections automatically and also take some feedback from reviewers, which can rate the sections in terms of risk to help future code reviewers.
Post a Comment