After having tried and failed to have useful code reviews at several different companies, and after feeling deep envy for Mondrian, Google’s web-based code review tool, I’d been looking for some tool that would help make code reviews more painless. I think I’ve found what I was looking for in Review Board.
Code reviews usually amount to infrequent lunchtime sessions where some poor engineer’s code gets put on a projector and strip-searched by the whole engineering group at once. It’s not a fun experience for anyone, and post-traumatic stress or severe empathy often result in the next session mysteriously taking several weeks or months to make it onto the calendar. Public humiliation has its place, perhaps, but as a last resort — attempts to make it regular, good sport usually fail on the launchpad.
Yet good code reviews — as hard as they are to find — can produce great effects. There’s no better way to learn how to improve your code than to have someone look over it carefully and make suggestions line by line. I’ve been impressed by the results that teams using careful code review report: that making changes and fixing bugs in the code is relatively easy, since everything is fairly clean and accessible. Great code review makes bugs more shallow.
There are a few web-based tools for code reviews. Mondrian isn’t available outside of Google, but Codestriker (Perl-based) has been around for a while, and Crucible from Atlassian has a nice UI and good features — but a US$2,400.00 starting price point, including the required FishEye server.
I spent a ton of time getting Crucible set up, but before taking the plunge I decided to take one more look for alternatives, and stumbled on Review Board. It’s a Django/Python-based open source project, and it seems to have an active and responsive community. The documentation for getting it set up is a little thin, but it still took far less time than Crucible to get going. The UI isn’t quite as nice, but it’s serviceable, and the iPhone/JSON API/Git & Mercurial & SVN & Perforce & CVS support all turned my eye. Also, I like that Review Board allows pre-commit reviews, which Crucible as yet does not.
You can immediately see why Review Board is going to be a great open source project when you submit a patch. All patches are, of course, code reviewed using Review Board, and nobody working on the project is going to let a minor glitch go by. My first patch got an immediate “no way”; later patches (such as this one) were up to snuff. I’ve learned a couple of tricks already from the review comments, and I definitely am spending more time getting things right before submitting.
Take a look through the project launch post and you’ll see what the authors are going for. I have Review Board set up at our office, and I’m psyched to give it a try and see how it goes. It’s great to see such a healthy project in this area, and I hope it continues to grow and go well.