Agile Continuous Integration
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.