gears

Detect Coding Problems Early with Continuous Integration

andrea Applications & Integration Services, Blog

Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.

By integrating regularly, we can detect errors quickly, and locate them more easily.

In order to setup the continuous integration you will need a centeralized code repository and a continuous integration tool. Tools commonly used as the  centralized code repository include GitHub and GitBlit. Example CI tools are Jenkin, Team City, Hudson, CruiseControl and BuildMaster.

The below diagram represent the typical way of doing a continuous integration using GitBlit and Team City:

team city

Software development commonly involves parallel development, with multiple developers making changes that need to be integrated in order to build a product. So checkout the code from repository every day and check in the code every day. The Git repositories will have local repositories that can be used prior to committing to the server. So it is best practice to Commit several times with a comment and push to the server once. The team should make sure not to check in broken or untested code..

Since Continuous Integration can inform you immediately when something goes wrong, developers and other team members have more confidence in making changes. Because Continuous Integration encourages a single-source point from which all software assets are built, there is greater confidence in its accuracy.

Repetitive manual processes are slow and prone to human error. Deployment tasks should be bundled up and automated. On the code repository you can run as many sequential deployments as you want.

Test Result Availability gives visibility on the results of an objective assessment of the business risk associated to an application under development to developers, managers and client stakeholders. This principle supports the continued system of checks and balances. There are many test management products that show the test results in a comprehensive graph of passes and fails. Typically, these products let you drill down into the results for an in depth analysis. A reconciliation of each test error each day can be performed so everyone knows exactly why it failed and when it will be fixed.

About Bala Sadayappan 

Bala is a Senior Consultant in Statera’s Salesforce CRM Practice. Bala has fifteen years of experience in IT as a Technical Lead or Architect and maintains certifications in Salesforce.com (Administrator & Developer) and Apttus Configure Price Quote (CPQ).