Continuous Integration

Keep code ready to ship at all times, by continuously integrating all the components of the software and creating a deployable artefact at most every couple of hours.

An example of Continuous Integration cycle: When a commit is made to the shared code repository, an automated build system / continuous integration server detects this change, builds the system, runs tests, and if they are successful creates a labelled, deployable artefact. If the build is not successful the team is alerted.

Continuous Integration makes it easy to detect a breaking change – because integration is done frequently, it is easy to notice the change set that caused the break.

It is important to keep the build ‘green’ at all times – if a build fails, fix it as soon as possible and get the system back to a success state (green).

Examples of Continuous Integration systems include Teamcity, Jenkins, and Bamboo

Further Reading

Continuous Integration – ThoughtWorks

Continuous Integration – James Shore

Continuous Integration – Agile Alliance