Agile Continuous Integration

avril 22, 2018

Agile Continuous Integration

 

Continuous Integration is a software development practice where members of a team integrate their work

frequently, usually each person integrates at least daily – leading to multiple integrations per day.

Each integration is verified by an automated build (including test) to detect integration errors as quickly as

possible.

Many teams find that this approach leads to significantly reduced integration problems and allows a team to

develop cohesive software more rapidly.

Integration is often one of the most difficult moments in software projects.

In traditional waterfall development, the integration phase at the end of development can take a lot of time and reveal many design deficiencies.

Things become easier if the organization adopts the practice of bi-weekly, weekly, or daily builds.

The more frequently the system is built, tested, and verified, the earlier problems and deviations are found.

As with many other Extreme Programming practices, Continuous Integration is taking a known good practice to the

extreme level.

If it is good to integrate often, let’s keep the code integrated always.

The idea is to run the build and automated tests (at least the fast ones) whenever somebody checks code into the

version control system.

Usually it is done in automated manner by a tool such as CruiseControl

Benefits of Continuous Integration

When CI works well, it helps the code stay robust enough that customers and other stakeholders can play with the

code whenever they like.

This speeds the flow of development work overall; as Fowler points out, it has a very different feel to it.

It also encourages more feedback between programmers and customers, which helps the team get things right

before iteration deadlines.

Practices of Continuous integration (CI)

Maintain a single source repository

Automate the build

Make your build self testing

Everyone Commits To the Mainline Every Day

Every Commit Should Build the Mainline on an Integration Machine

Keep the Build Fast

Test in a Clone of the Production Environment

Make it Easy for Anyone to Get the Latest Executable

Everyone can see what’s happening

Automate Deployment

 

Leave a Reply

You must be logged in to post a comment.