About Continuous Integration (CI)
The continuous integration model automates the integration and testing by merging all developer working copies to a shared mainline couple of times during a single day.
The idea to integrate code several times a day in the master branch may seem difficult or even scary. At first glance, this seems vulnerable to many problems, which would result in the introduction of countless errors in the mainline code. However, as many development teams experienced, there is no need for fear; it works!
The code segments used at a given time are very small and therefore easier to encode and debug if a problem arises. So unlike the waterfall method which sends full versions of the code to testing, the developer sends only small portions of the application at once. The small code segments are saved and sent to the server at regular intervals during the workday. It is then automatically copied to a test server that performs automated tests to ensure that the new code sections work as intended. This process allows the new code sections to be built, integrated, and tested constantly while providing the developer with instant feedback on the status of the code and possible problems.
Top 5 impacts of CI
Testing the same test scripts every day can be a very monotonous task. Most developers have discovered that the automation tests makes a big difference where possible. The direct feedback to the development team also adds value to the process.
When an issue in the code is found, the developers are able to make quick work of issue identification and resolution since the code segments are small.
During larger projects submitting these iterative changes also improves team morale. it’s part of our human nature to seek accomplishments regularly. Unlike the waterfall methodology, where a large project can take long periods of time without completing any key milestones, CI allows developers to achieve multiple milestones per day. Furthermore seeing their code passing the automated tests several times a day is another source of immediate gratification.
With CI comes automated builds, automated testing, and the rapid identification of bugs and errors. This process positively affects the overall velocity of the project delivery.
Because issues are found and resolved with each segment, those larger, more comprehensive development issues are eliminated. Therefore there is no longer a need to fix multiple issues and problems because of a coding issue in a single module.