There are a number of excellent products out there to help make code reviews more effective. Today we’re going to look at ReviewBoard to see how it differentiates itself from its main competitors. ReviewBoard has been quietly improving its product since its initial release in 2009 to provide a great code review experience for teams of any size.
Installation and Licensing
There are two available scenarios for installation; the traditional local installation on a server within your domain, or a cloud-based installation that takes away the difficulties inherent in local installations.
As long as you conform to the open-source MIT License that is attached to ReviewBoard, the local installation will have no costs associated to it. As a side note, ReviewBoard is happy to receive contributions to the project if you build some customizations that might be of value to other users.
The cloud installation will naturally incur the costs of running the instances on their cloud. The costs are very similar – if not a bit lower – to most other products in this market. Because every code review product does costing slightly differently, it’s hard to say for certain which one will actually cost you more. Look for a detailed review of costing options for all the major code review players in the coming months!
The largest userbase option for the cloud version allows for up to 140 users to use the product. If your organization is larger than this, you’ll need to contact them to get exact pricing for your needs.
There’s also an online demo version of the tool available on ReviewBoard.org. Most features can be experimented with there, providing a quick way to evaluate the product without any hassle. There are 30-day trials available to take the cloud version of ReviewBoard out for a real test drive.
UI Design, User Experience and Usability
The overall design and layout of ReviewBoard is simple and clean. It’s very typical of UIs from open-source tools and is similar in spirit to Jenkins, the open-source build system. The color theme is fairly plain, but effective. The overall design choices stay out of the way and let you focus on what you came for: reviewing code.
If there’s one area that could use improvement, it’s the user experience getting into and out of a review. It’s fairly simple to get to the pending reviews that are waiting for you, but the experience feels a bit in disarray once you open one of those reviews. For example, to add a comment you can either click “Review”, “Add Comment” or go to the Diff to do so. This feels a bit excessive and confusing for users as you’re never quite sure where you should be adding a comment. Another problem with the review options is that they are split out into two distinctly separate sets of tabs within the page. They seem related, but I’m still not sure what makes some options different from others.
The Differential, which is arguably the core of a code review tool, is one of the better ones I’ve used. The list of modified files near the top is great to give you a glance at what’s changed before reviewing in more detail. There are also neat rings to give you a quick idea of what happened in each file (rows deleted, added, changed). These rings are useful in guiding your review towards the parts of the code that may have more bugs.
ReviewBoard plays nicely with all the major source control players on the market. It could be especially useful for integrating with GitHub, where code review comes second place to the pull request. The Pull Request system that GitHub is based on is great for requesting changes to be brought into a branch, but not the best when you just want your code to be reviewed in its current form. Using ReviewBoard is a great way to fill that gap.
There are also a series of non-source control integrations available that can come in handy, notably to generate a code review when a task is completed in your project management tool.
And if they don’t have an integration with the product you want, they provide a REST API which should allow you to accomplish whatever task needs to be done. The API covers most of the features available within the application.
Who’s using it?
ReviewBoard has many high-profile users. LinkedIn, Yelp, Twitter are among them. It’s not clear how large the adoption of ReviewBoard is within those organisations. Regardless, the point is that a lot of companies have adopted it and are actively using this great review tool.
Key distinguishing features
- Display method name. Because a diff often only shows a few lines of code, it’s sometimes impossible to know which method you’re looking at without expanding the number of lines before and after a change. This feature solves that problem by showing you the method name before any block of modified code.
- Multi-line comments. Often times you wonder where to put a comment for something that applies to multiple lines. Should it be after the first line being analyzed, or the last? This feature saves you from wondering about that and allows a comment to apply to more than one line of code.
- Create comment as an issue that must be addressed. Often times in code review, we want to write a suggestion or different approach that could be taken in the future, and other times we want to require an issue to be resolved. ReviewBoard addresses this by allowing you to create an issue that is tracked separately from the comment and must be resolved.
- In-depth reporting on metrics. The ones that peaked my interest were the Code Review Relationships, Time to First Feedback, and Close. The relationships could be interesting to determine a better way to selecting reviewers. The First Feedback and Close give you a great idea of how the code review process is going as a whole.
If you don’t already have a code review tool, or are looking for a different one, ReviewBoard brings clean design with highly functional diffs to the game and should definitely be on your list for consideration. With a demo available on their site, and its open source-ness making it easy to run locally for a test drive, there’s no reason to not have it on your short list of code review products.