One of the most difficult processes to implement in a development environment is the code review process. That’s not to say that code reviews aren’t done, but they are often done informally and there is no documentation that a review existed. In order to get this documentation often a paper based solution has to be devised, causing more manual work and less time to cut code.
Codestriker is an application originally written by David Sitsky that allows web based code reviews. The tool can talk to both Subversion and CVS repositories and will produce a diff based display in which you can enter comments on a line by line basis and track their progress through the review process.
There are two ways to get a diff file into the system. The first allows you to talk directly to a Subversion or CVS server in order to grab a range of revisions from the repository. For repositories that CodeStriker cannot talk to natively, you can produce a diff file to upload to the server. This functionality allows the tool to work with source control systems such as RCS, Clearcase, or Perforce.
A few of my collegues and I have been using Codestriker to do code reviews amongst ourselves for quite a few months now and the tool makes the process much more manageable (and visible!). Having the tool online allows an author to receive immediate feedback via email when a comment is added to a review topic. This allows you to implement (or reject) review input as it comes in rather than getting a ton of work at one time that you have to finish before release time.
Some of the features of the application that I really like consist of the following:
- All review comments are in a centralized place that is accessible via a browser
- Reviews (or topics) can be generated from a live CVS or Subversion repository
- If the review was generated from a live repository, you have “parallel view”, which shows you the full file differences so that you can see all of the changes in context
- Comments are added per line
- When a comment is added to a particular line, the person who initiated the review is notified via email
- and finally, all review comments are in a centralized place that is accessible via a browser!