Tuesday, October 6, 2009

Continuous Integration

I've worked in environments with continuous integration for nine years. I introduced the concept at 2 of the 4 companies I worked at over that time. Hopefully everyone developing in an environment supported by continuous integration already takes build pass/fail seriously. If not, I suggest a moment of personal reflection upon your projects continuous integration server. I suggest that everyone might look at the health across multiple projects and multiple builds to assess how well they are doing to keep the projects green. What is your rough estimate of build success on the builds that your commits triggered? In Team City, find the “My Changes” tab at the top. Expand all three (at least I have three) sections. In CruiseControl, hmmm? I'm not sure anymore.

I am not trying to incite any sort of competition over who can reach 100% triggered build success. I only suggest that we might think about our personal goals. We might challenge ourselves to never cause a build failure. To aspire to 100% success is wrong. There are going to be a few "oops". There are going to be some environment problems.

Project management should always be looking at the percentage of failed builds. Also looking at the volume of commits and the size of commits. Particularly just prior to a release. Continuous integration is a great tool like any other -- the value derived is based on how it is used.