views:

3152

answers:

9

For our small team of 20 developers, we used do code review like:

  1. Make a label in svn and publish the label to the reviewers
  2. Reviewers checkout the code and add comments in line (with marker like: // REVIEWER_NAME::REVIEW COMMENT:)
  3. After all comments are in, reviewer checks in the code, preferably with new label.
  4. Developer checks the comments and makes changes (if appropriate)
  5. Developer keeps an excel sheet report for considered changes and reasons for ignored comments

Problem: Developer needs to keep track of multiple labels which might have same comments

Sometimes we even do One on One review and if we really have time, even do Table review (team of reviewers looks at the code on projector, on the fly, and pass comment)

I was wondering: Are you guys using any specific tool which helps to do code reviews smoother?

I have heard of Code Collaborator. But have anyone used that? Is it worth the money?

+26  A: 

I have used Fisheye/Crucible by Atlassian a couple of times on top of Subversion and Perforce. Fisheye is the repository-browsing component, and Crucible is the code review piece of it. This is definitely a neat and convenient tool. It makes every step of the review process easier, more efficient, and more pleasant. It allows you to make comments inline with the code simply by dragging/highlighting the region. This happens in real-time, so you can see others' comments and have discussions in the context of the code.

You can pretty quickly setup Fisheye/Crucible, and then demo it. Atlassian was pretty good about letting me extend my demo period beyond 30 days. There are a lot of slick and valuable features, and depending on how many you use, it may be worth the money.

There is also an app called review board, which is created by some Vmware people. It looks like it has similar features as Crucible and Code Collaborator, but is free. I have not tried it myself.

bentsai
We've been using Fisheye/Crucible for a year or so now, with great success as both a review tool and a knowledge-spreading tool. (I.e. in reviewing, you learn a lot about the codebase). Very happy with it.
Greg Whitfield
+9  A: 

I haven't tried it myself, but Google have released a tool called Code Review, previously codenamedrietveld. Looks like it's open source, works with Subversion, and is based on their internal tool Mondrian, which uses Perforce as a backend.

It's written by Guido van Rossum, as far as I can tell it can be used for any language (not just Python). For more information.

Luke Girvin
+9  A: 

Yes. We have Code Collaborator. It is awesome. It has drastically affected the way we perform reviews (we used to do e-mails). You can see the feature list on their web page. Additionally, Code Collaborator has a command-line interface that we were able to build into our review scripts so adding files to a new review is a simple one-step procedure. But what really sells me on this software is founder Jason Cohen's blog and his attitude towards software development in general. If it's not exactly the product you want today, I'm confident they'll make it that software tomorrow. I've had the occasion to see him speak on code reviews at a conference, and all impressions from his blog were validated.

Joe Schneider
A: 

You don't mention what editing environment you use, but if you use Visual Studio you can also check out the SlickEdit Tools, which provide a code "annotation" feature. They also have a 2-part blog post series that explains how to use it for code reviews:

Scott Dorman
+2  A: 

Mark,

You are probably way past this question but you can also get a free book about doing code reviews from Smartbear software (maker of Code Collaborator):

We are not currently using the software but I am angling towards at least demoing it for a bit and try it out.

Flory
+2  A: 

We're using internally Review Board (http://www.review-board.org/). It integrates decently with our SVN repository and has a reasonably nice web UI. We have some nice discussions over code snippets, etc.

It runs over Apache and DJango, it's quite easy to setup, it's FLOSS, so you can definitely give it a try.

rlerallut
A: 

A great Eclipse plugin is Jupiter: http://code.google.com/p/jupiter-eclipse-plugin/

Epaga
+1  A: 

http://smartbear.com/codecollab-compare.php#platforms I would look at that link for a comparison to CodeCollaborator. I'm investigating to see if Crucible is actually lacking in all the areas SmartBear says they are.

Cornell
Did you do this? What was the conclusion? :)
Allan Mertner
A: 

I've been using Codestriker, a web-based code review tool, for a few years now in an organization with on the order of 100 developers. Works well. http://codestriker.sourceforge.net/

Lance Richardson