Continuous integration is an implementation practice where team members integrate their work with completed Change Sets from other developers, and test the application, before making their
work available to others. This enables detection of integration errors as early as possible, either
from compiler errors, configuration management system notifications, or failures reported by the
test suite. Ideally the integration is done automatically prior to Promoting Changes.
Continuous integration provides the following benefits:
-
Improved feedback. Continuous integration shows constant and demonstrable progress.
-
Improved error detection. Continuous integration enables you to detect and address errors early, often minutes
after they’ve been injected into the product. Effective continuous integration requires automated unit testing with
appropriate code coverage.
-
Improved collaboration. Continuous integration enables team members to work together safely. They know that they
can make a change to their code, integrate the system, and determine very quickly whether or not their change
conflicts with others.
-
Improved system integration. By integrating continuously throughout your project you know that you can actually
build the system, thereby mitigating integration surprises at the end of the lifecycle.
-
Reduced number of parallel changes that need to be merged and tested.
-
Reduced number of errors found during system testing. All conflicts are resolved prior to making new change
sets available, by the person who is in the best position to resolve them.
-
Reduced technical risk. You always have an up-to-date system against which to test.
-
Reduced management risk. By continuously integrating your system you know exactly how much functionality that
you’ve built to date, improving your ability to predict when and if you’re actually going to be able to deliver the
necessary functionality.
|