Codestriker Logo

I was working in a large multi-national networking company, where in my particular group, code reviews were conducted over email, in a similar manner to what is done on the Linux kernel mailing list. People submitted proposed changes in an email to a group address, nominated a particular reviewer, who then sent their comments back as a reply with their comments inline.

For the purposes of reviewing small changes, this process seemed to work quite well. Our group then received a series of seminars in regards to performing effective code inspections, which was a highly formalised process involving significant preparation time, sit-down meetings and formal roles, such as author, reviewer, and recorder. This sounded highly promising, but the huge amount of up-front work tended to turn people off the process. When the process was used, we found a number of defects that most likely would have been missed in an informal email review, and would have surfaced later as a defect discovered at a customer site.

Later, I joined a startup company, where a lot of new code was being written. We also used email initially for the purposes of code reviewing, however this had a number of limitations. As before, I found I constantly had to refer to the existing source code files to understand the context of the changes. In addition, I found that once more than one person was performing a review of a proposed change, it became cumbersome to merge their comments together. Also, the reviewers were unaware of their colleague's comments until they sent their email, which could result in duplicate work.

Codestriker was born to fill this gap back in December 2001, when version 1.0 was released on SourceForge. Because it was a quick-and-dirty concept, I wrote a simple single-file CGI Perl script, which accepted a text file which constituted the review (usually the output from cvs diff -uN), sent notification emails to the reviewers indicating they had a review to do. The reviewers saw a page displaying the text file, where each line had a hyperlink allowing them to add a comment to it. Any comments submitted were sent by email to the author and the reviewers. The list of comments already made were also displayed at the bottom of the page, and a line which already had a comment had a red hyperlink. No database was involved, data was recorded using simple files. The most important thing was the process was still light-weight enough that nobody was put off by a slightly more structured process.

Eventually, the single-file script kept growing to include the coloured display of diff files, and integration with CVS so that changes could be more readily understood within the context of the whole file. More and more features became available, including the use of a database for persistence, and Codestriker eventually became the modularised Perl web application that it is today.

The last few releases of Codestriker have made it acceptable for use in both light-weight review processes, and for formal inspection processes.

SourceForge Logo