Code Review, Development

Why We Use ReviewBoard For Code Reviews

I was going to write a couple of reviews covering the various code reviews tools I’ve tried over the past year or so, but the notes I made on each one seem to have mysteriously vanished. And since it wouldn’t be fair on the various tools we used to try and remember why we moved on, I’m just going to cover the one tool we stuck with… ReviewBoard.

Web Based
This was one of the features that I really wanted from a review tool. No installs, no applications that need to be running in the background, simply a web address to access and an e-mail address for notifications.

Easy To Use
When you first look at the UI it’s pretty obvious what you need to do and how you can review the work in front of you. As with any UI, it has it’s quirks but I’ve not had anyone say “I can’t use this!” like I did with some other tools we tried.

Conversations
It’s easy to have a conversation in ReviewBoard and this is what I always want to see when code is up for review. Clicking on other people’s comments and seeing a clear ‘Reply’ button and being able to see the entire thread on the main page allows people to dive right in.

Openness
ReviewBoard doesn’t block people who are not on the review from seeing the code and making their own comments. As long as they are signed up to the site they can see anything being reviewed and what has been reviewed in the past. If I’m writing an internal blog post about a feature or implementation I am working on, I always add a link to the code review allowing everyone to have their say. After all, there is a good chance that they might use the code at some point in the future, so why shouldn’t they?

Quick to Review
Once you get notified of a review you have been assigned, getting to that review is as quick as hitting the provided link and selecting the diff. to review. Everything is done in-page and with a click on a button your entire set of comments and reviews will be published for everyone to see. It can be hard to persuade people that reviewing code will make them more productive, and having a fast process can make the argument easier.

Actively Developed
Nothing is perfect and ReviewBoard does have its bugs, but when you can raise an issue on their bug tracker and know that someone will actually look at it you start to feel a little more secure about any problems you find.

Widely Used
Having only one group of people use a tool can sometime be a benefit as it can be tailored specifically for you, but that can be a dead-end. ReviewBoard is widely used by some pretty big companies and you know it stands up to a certain level of quality and that the development being done will be for a wide range of users.

Stable
I’ve used tools in the past that didn’t work. They would fall over, become unresponsive or simple not do what they should. I’ve not encountered any of that with ReviewBoard. A few people using it have found some issues that get in their way, but as I’ve already mentioned these are quickly noted and will hopefully be resolved in the future.

So those are some of the main reasons we’ve stuck with ReviewBoard. It’s very easy to get hold of and install, so I really would recommend that if you want to try something new, then give it a go.

What Else Did I Try?
While I don’t want to go into the whys and why-nots of each tool I tried, I thought I would list some of the tools we did try so you can give them a go. What might not have been suitable for us could pretty much fit the hole you are looking to fill, so go and check these out too.

SmartBear’s CodeCollaborator – Try this out, it’s fantastic
SmartBear’s Code Reviewer
CodeStriker

Thanks and remember to enjoy your code reviews!

4 thoughts on “Why We Use ReviewBoard For Code Reviews”

  1. Hi Lee,

    I’ve just browsed through your entries about code review. You’re working in a mature software development environment and it is clear that your main concern is HOW to review. Lots of organisations did not yet get around to reviewing yet…

    I’ve been working on some basic, programming language independent inspection criteria for organisations who are making their first attempts at a review process, and I am interested in what you think about IfSQ Level-1 (http://www.ifsq.org/resources/level-1/booklet.pdf, PDF, 3MB) as a starting point. Just six inspection criteria, about one minute per page including writing the report.

    Please let me know what you think.
    Graham Bolton — http://www.linkedin.com/in/gbolton

  2. Hi Graham, sorry for taking so long to reply to your comment – it’s been quite hectic over here.

    I’ve had a good read through the linked document and it contains some excellent work. It’s always difficult trying to define rules and standards for any kind of code analysis and doing it in a non-partisan way that is suitable for any kind of language is an excellent step forward.

    I also really like the fact that as you move up to level 3, you are accepting that it’s going to be a discussion rather than a ‘ruling’ on what is the right and wrong way to do something. I wonder if you would approach all code with a view to do level 1 to 3 reviews, or whether it would only be vital code that gets the full treatment?

    I’d be interested to see how you group together issues or defects past level 1. Giving examples or ‘smells’ firmly puts this in the same area as design patterns or other ‘best practices’ and sits very nicely alongside them, further helping the developer or reviewer cover the code, and makes discussions mush easier!

    I don’t think I would personally go down the route of formalising the process so much, as I like to keep the discussions light and informal, but for more critical code paths, or for systems that simply cannot fail, I would see this as a vital step in their development.

    Having said that, the approaches to code reviews, and the things to look out for would help anyone working on any kind of code base! I would really like to see any future parts covering the Level-2 & 3 standards, and how issues can be identified at those levels.

    Thanks for bringing the document (and your website) to my attention. I haven’t had chance to have a full look through the materials available on there, but I certainly will do in the near future.

  3. Another tool to consider is Atlassian’s Crucible. http://www.atlassian.com/crucible Crucible has all the benfits you mentioned above, providing intuitive web-based code review.

    Unlike Review-board, Crucible is an out-of-the-box solution with a simple installation process. Crucible offers many features that review-board doesn’t:
    – built-in integration with Atlassian’s popular JIRA issue tracker.
    – configurable security & permissions model with support for LDAP
    – configurable notifications in email and RSS
    – support for multiple projects and multiple repositories
    – intelligent “suggest reviewers” feature to automatically pick reviewers based on ownership of code under review
    – extensive plugin system
    – much more

    Crucible is available for free 30 day evaluation.

    Cheers,
    -Brendan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s