Archive for December, 2007

Intro to Continuous Integration

December 4, 2007

OK, so it’s been a while since I posted… yes, I am a bad, bad man. But, in my defense, I did start a new job so I’ve been kinda busy tryin to figure out how to do some fancy new tricks. My new gig is pretty far removed from production releases (and the support required for that – yay!!), my primary focus now is on build automation and continuous integration.

I’m no longer working in the academic space, I’ve entered the “corporate world”. Fun stuff. It’s actually a nice change – things move a bit faster, and we get the opportunity to work with some cooler, more sophisticated stuff. For instance, Continuous Integration.

While CI may not necessarily be a function of Release Management, it certainly is a factor when trying to get working software out the door. If you’re not implementing CI, you should be. It’s just that simple. Check out the penultimate article on CI, and then tell me you couldn’t benefit from it.

The basic idea is to integrate code changes as early and as often as humanly possible. In fact, more often than is humanly possible. Set up a build server and have builds run all day long – you’ll be glad you did when it comes time to release your app and you know with a high level of confidence that everything is working as it should be. I had started getting some of this in place in my last gig using QuickBuild, but the place I’m working at now is all about CruiseControl.

CruiseControl is pretty much the “grand-daddy of CI” servers, and it’s really quite nice to work with. I even heard that ThoughtWorks is planning to roll out an even better version in the coming months, so watch for that!

I’ve seen just how to use CI properly, and I can’t imagine an app of any scale being developed without it. Though, note that without solid unit tests (automated unit tests!), CI doesn’t really buy you much (tho it’s still better than not having it – at least you’ll catch compilatin errors!).

More to come on this topic, but I just wanted to get something up – I feel like I’ve been neglecting my readers for far too long.

Anyone have experience with CI? How has it worked on your project? What pitfalls have you run into that we should all watch out for?

Update: Oddly, WordPress won’t let peopl epost URLs in comments, so I’m posting somehting for a buddy.  The gang at ThoughWorks have some exciting stuff goin on wtih Cruise, check it out: