Team City vs. CruiseControl.NET

I’m a big fan of JetBrains. Their IntelliJ IDEA Java IDE, which I first used 5 years ago, I think was the biggest step forward in code-editting productivity since the Smalltalk browser, and they continue to innovate on this idea while adding similar products in the .NET world with ReSharper.

Last year I was talking to a couple of the guys from JetBrains and they mentioned they were working on a Build Server product. That has now materialized in the form of TeamCity. You don’t need to look at the TeamCity web page for very long before realising that it’s JetBrains’ own version of CruiseControl or CruiseControl.NET. In fact they even compare against these projects here.

Clearly the comparison is a little biased (there’s only 1 feature in CCNet’s Web UI that they actually include in their list for example) but I’m probably biased in saying that. 🙂

There’s a lot of lessons I’ve learned along the way being one of the CCNet project leads, the biggest being that a huge chunk of our time and effort is spent purely on integrating with all the different source control tools we talk to (14 at the last count) and that’s with a fairly limited Source Control interface and no UI configuration. The only reason we’ve been able to do this is through community involvement in the project and I’ll be interested to see if Jetbrains introduce a fairly open API for plugging in custom sourcecontrol bridges.

I think one of the other key benefits to CCNet is how customisable it is through plugins generically, along a number of axes. The Web Dashboard for example can be customised through adding your own XSL stylesheets or actually adding your own code-implemented plugins. The build server does similarly. If Jetbrains can get this customisation part right, I think both CruiseControl and CruiseControl.NET will see their user bases shrink dramatically.

Which will leave me to work on all those other open source projects I’m interested in. 🙂