Code Review Tool

I don't know if this is a product suggestion, or a plea for help.

Now that Jetbrains has a firm presence in the CI and issue tracking spaces, is there any chance we will see a good code review tool from you?  I ask because Atlassian just cut their Crucible/IDEA integration from their product offering.  IDEA integration was the best feature of the tool.  Code reviews should be done in an IDE, not a web browser (IDE > webbrowser >= paper).  

So please, when you sit down to consider your next project, and are weighing your options between adding IDEA integration for LISP, Haskell or Whitespace (you support everything else, right?), please consider a code review tool.

12 comments
Comment actions Permalink

Bryan,

We are having internal chats and talks on code review tool for quite a while now, but so far not yet reached a point to start actually working on a product.

Feedback on the pains in the area and what are the most important usage scenarios can drive us into the right direction and can help us make up our minds.

0
Comment actions Permalink

While not ideal approach, but with TeamCity 6.0 code review has become simpler. You can now download patch right in the IDE (click on the download patch link and open patch dialog will be opened in the IntelliI IDEA 10.0 or Eclipse). Then you can review it there. This works for remote run builds (pre-commit review) and for usual commits too.

0
Comment actions Permalink

That's a great idea.  Thanks.  It doesn't really replace a real code review tool, since it doesn't allow you to attach a conversation to a specific line of code, or track anything, but it might be useful.

0
Comment actions Permalink

It's good to hear you've considered the idea.  I've evaluated a few code review tools and used Crucible for about a year and a half now. Based on my experience and feedback from a few dozen of our roughly 150 developers, here are a few things to keep in mind if you move forward with a product:

  • As I said earlier, the best place to review code is in an IDE (which is why I'm looking to Jetbrains for the next great review tool)
  • Using a web browser for reviewing code is nice way to support make references (links) to comments and support Eclipse users, but it's only slightly more convenient than reviewing code with pen and paper.  It simply requires too much cross-referencing and requires the user to hold too much in their head.
  • Both pre- and post- commit reviews are necessary features.  Some tools support one method or the other, we use both methods daily.
  • Crucible gets very hung up on roles (creator, moderator, reviewers).  All the teams I've seen use it eventually end up turning everything off and letting the creator of the review have the final say on closing the review.  I'm sure there are companies out there with a much more formal system, but I've only seen code reviews work when they were developer driven (rather than a management mandate).  
  • Issue tracking integration might be nice in other environments, but our company doesn't work that way.  Simple comments work just fine.
  • Flexability when creating a review is important.  A review is like a little story.  Often the reviewers are invited to the review with very little background in the change.  The author includes some description, maybe a screen shot or link to a requirements document, etc.  
    • It's nice to be able to attach arbitrary snippets of text that aren't part of your versioned changes.  
    • It's very important to be able to choose the changes you want to review and exclude others.  I might choose multiple change sets, add or remove individual files or changes depending on what is important.  A review is not necesarily a single changeset or even a set of changesets.  
0
Comment actions Permalink

Bryan,

Thank you very much for the description. This can really be useful for our further considerations.

0
Comment actions Permalink

Is there a code review plug for teamcity

0
Comment actions Permalink

Hi

No special plugins yet, but TeamCity allows to open patches in IDE (as Pavel mentioned above) or in external viewers.

0
Comment actions Permalink

I don't know if there is any movement on this - this was the thread I found.  Code review tool would be really great.  The primary use case is for cross-developer commenting and simple task tracking against specific code points.  Highlight a given code section, create a comment or/and a task to complete for the original developer.  Create comment threads for that code section so the developer group can look at problematic sections - either algorithmically or stylistically and have a discussion on it.  For some teams this is part of their scrum process.  This is not possible with a distributed team, particularly across timezones and also teams whose scrum process or committment isn't yet at that level.

0
Comment actions Permalink

Alex,

Thank you for the notes.

There is no progress on this so far. You can watch TW-1095 to be notified on changes.
At some point JetBrains can indeed come out with the code review tool, but post probably this will not be integral part of TeamCity.

0
Comment actions Permalink

Haven't used Crucible, but have been using CodeCollaborator for 5 years now. It has some very nice features, but does not integrate with any CI tools AFAIK. It would be cool if JB came up with a tool that integrated with TeamCity somehow to link a code change in a build to a code review (and perhaps even fail the build if the review is not completed).

Doing a review within the IDE is useful to get proper syntax highlighting/referencing and maybe even modifying the code to see if it would work. Don't forget the web interface though. Some IDEs require separate license expenditures. For example, Visual Studio Express does not allow 3rd party extensions, so one would have to buy at least the Professional version to gain access to a review plugin (this is currently the same story with TeamCity VS addin).

Generally speaking though, a code review tool should be independent or be minimally-dependent on other tools.

I'd be interested in a JetBrains code review product, if it ever comes out.

0
Comment actions Permalink

>  It would be cool if JB came up with a tool that integrated with  TeamCity somehow to link a code change in a build to a code review (and  perhaps even fail the build if the review is not completed).

This can probably be done via a plugin, so this can be implemented by a third party :)
Actually, failing a build based on data from some external system can be easily done form a dedicated build step.

0
Comment actions Permalink

Using Crucible. It's a very good tool but would love to see something that nicely integrates with IDEA.
I hope JetBrains will seize the opportunity and come out with something like YouReview. :)

0

Please sign in to leave a comment.