Advertisements
Posted by: jsonmez | December 23, 2009

Do you CI seeing U CIing? Continuous Integration

Is your team using some form of continuous integration?

If not, why not?

Continuous integration is one of the hallmarks of a good development process.  I’ve done continuous integration for many years now on every project I work on.  I am usually the one putting up the continuous integration server, because I consider it a “must have.”

What is the continuous integration?

If you don’t know what continuous integration is, it is basically a build server that builds the software every time someone checks in a change.  If you are familiar with the terms nightly build, or weekly build, continuous integration is every check in build.

I have a nightly build, why do I need a continuous integration build?

I will start here and assume you understand the value of a nightly build.  The biggest issue and reason is one simple word:

FEEDBACK


The tighter your feedback loop the more accurate your steering.  Imagine if you turning your steering wheel in your car had a 2 second delay between the wheels actually turning.  Or when you looked out your rear view mirror, you actually saw the image that was there 2 seconds ago.  Would that affect your driving ability?  I certainly hope it would.

The driving metaphor is the image of the nightly build in contrast to a continuous build.  When you are getting nightly information on whether or not your build broke, you are getting information too late.  By the time you’re course correct, you have lost valuable time and some of your developers may have steered right into a ditch.  As soon as someone has committed bad code, I want to know it, and I want them to know it.  Every second the build remains broken is time that other developers are unable to get the latest code and build the system or check that their changes did not break the build.

How do I get some of this continuous integration goodness?

There are many options out there, and most of them are pretty good actually.

For the .NET world, Visual Studio Team Systems actually has a continuous integration server integrated now called Team Foundation Build.

There is the classic Cruise Control .NET, Java also, but kind of moldy Cruise Control.

For Java or .NET I am liking Hudson now, although it is probably better for Java.

I have heard good things about Luntbuild, and TeamCity.

What makes a good continuous integration system?

In my next post I’ll cover how to set up your server from a perspective of what should you have and what things are important.  I’ll talk about unit test support, code coverage and all the other good things you should do with your CI server.

Advertisements

Responses

  1. […] Making the Complex Simple Software Development from John Sonmez's Perspective « Do you CI seeing U CIing? Continuous Integration […]

  2. […] on one solid argument, it would be the value of continuous integration.  I blogged about the value of CI and best practices in the past.  I am a pretty big advocate of […]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: