Continuous Integration Series Article #2 Enabling Continuous Integration Through Automation

In Scrum, each Agile sprint of two to four weeks each is expected to result in a potentially releasable product.  The product is potentially releasable because it has been fully regression tested in each sprint.  The product version at the end of the sprint may not be fully featured, but every feature will work.

“How is that possible,” you ask?  The answer is automation, lots of it, judiciously applied in a team culture with intolerance for defects lurking undetected and unrepaired in the code base. 

It’s the automation that captures the attention of the naïve, but it’s the judicious use of the automation in a relentless war against defects that’s delivering the much-ballyhooed value proposition of Continuous Integration.  Deploying Continuous Integration without team members’ passion for preventing the introduction of defects in the code base or for repairing them as soon as they can be detected is essentially indulgence in technology for technology’s own sake.

With that said, generous investments in automation are making Continuous Integration a smashing success in IT shops around the world.  Automation opportunities exist in making all of the following operations hands-free from start to finish: tagging, building, packaging, and deploying, testing, creation of test artifacts (defect reports), and email notification of team members.

In a successful Continuous Integration deployment, the stability of the code base is always known, and the potential release date is always imminent.