3.1. Integrate Early and Often

The primary tenet of Continuous Integration (CI) is "integrate early and often." The more often you integrate, the less work it is for everyone. The best way to achieve this level of integration is to set up a CI server, which is a dedicated server machine responsible for "continuously" building and testing all the code in a given project. There are a number of software packages, some commercial and some freely available, that facilitate the creation of such a server. Once a CI server is up and running, it becomes the responsibility of every developer to keep it running smoothly and successfully.

The two biggest goals of any Continuous Integration effort should be:

  1. To make sure that there is always a testable version of your software that reflects the latest code.

  2. To alert developers to integration problems as quickly as possible.

3.1.1. Keeping Testers Working

One of the issues that came up during waterfall projects was that until the integration phase of the project was completed, the testers often had nothing to test. If one test pass through the software took less time than a development/integration cycle, testers might be idle, with little to do besides writing test plans. In a perfect world, we would like to keep testers busy all the time, with each feature being tested as soon as it is coded. This makes the most efficient use of testing resources and provides developers with as short a feedback cycle as possible. After a given piece of code ...

Get Code Leader: Using People, Tools, and Processes to Build Successful Software now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.