Ramblings on Continuous Integration

The “Continuous Integration” approach needs to be adopted irrespective of the final deliverable being a client product or one that is an in-house implementation. Continuous Integration aims at members of a team integrating their work on a frequent basis. A member of the team checks in the respective changes on a regular basis. Thereafter, the build system initiates a build and test after having noticed the change. If any issues are encountered, the member is notified through text messages, emails and so on.  This of course would be an asynchronous approach. As opposed to the synchronous approach which involves integration after each pair-programming episode. One waits for the build to complete and the entire test suite to run with no regressions prior to proceeding further.

This approach significantly reduces integration issues and helps a team in building cohesive software rapidly. Apart from that, it facilitates a team to understand the problems associated to the iteration and thereby address them. Through it, members of the team achieve clarity on the project at every step.  There is an overall quality improvement considering the fact that CI can be used to reduce the time between the identification of a bug to its fixed state. The advantages of implementing Continuous Integration are as follows:

  • Risk Mitigation: CI integrates and runs tests at regular intervals. This enhances the probability of discovering bugs sooner and thus addressing them, thereby reducing the intensity of the defect and its associated risk.
  • Enhanced Project Clarity: A CI reports the current status of a build and provides information on the recent build and quality metrics. This contributes to effective decision-making and lessens the burden of manually collecting information.
  • Product Confidence:  With a mechanism where the project members are aware of all the associated defects of a system and are constantly working on them, it is blatant that the system is constantly evolving for the better. This therefore entrusts the team with the conformity of building an efficient product.
  • Ready Software Release: With the facility of being informed about any problems and issues in the system, the team members make the required amendments almost immediately. This makes the product ready for deployment almost always and in its best functional position as well.

These of course are the few values attached to Continuous Integration; the value it adds to your product is ofcourse amplified. At Compassites, we are using Jenkins, which was developed as a Hudson Project. Below is a graphical representation of how Continuous Integration really works:

Jenkins offers Continuous Integration for software development. Currently it has a lot of plug-ins enhancing and extending its capability beyond being a conventional build tool. It runs inside the Apache Tomcat Servlet container and is a server-based system.

Ankita Tiwari is a Computer Science student at Symbiosis Pune and currently working as a Quality Analyst with Compassites Software Solutions. She is an enthusiastic learner and absolutely loves gaining insights on the current trends of technology. The challenges involved with strategic decision making allures her. Stagnancy and monotony are the two things that drive her to strive for more out of life.

Leave a comment