Continuous Integration

What is Continuous Integration? Simply said, it is the concept of always and continuous integration of your changes. The change results must also be available within a reasonable period of time. Developer(s) checking new changes/codes into the repository should automatically trigger the builds.

Continuous integration is mainly enforced with a build tool such as CruiseControl. This tool’s primary function (in any given project) is to monitor a certain segment of the source repository as it relates to the project. The purpose for such monitor or polling is to kick-off a build when it detects changes within the repository.

Gone are the days of the {daily, nightly, weekly} builds. With continuous integration, you get immediate result or for as long as it take to finish a particular build. As part of the Agile process, developers checking in code will get nag Emails when he/she breaks the build because of the new changes. This creates an immediate accountability and traceability system.

Any serious software organization should already be using such model versus the legacy daily/nightly/weekly build models. The benefits are numerous.