Continuous Integration (CI)

Today we are going to speak about CI. There would be people who would have certainly heard about that. We hope that this article will be useful for those who know and also for those who have never heard about that.
Let’s start off by explaining what is CI and we will then enumerate the main benefits of Continuous Integration
Continuous integration is a Developers software development practice where developers   integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. The aim of the Continuous integration is to find the bugs quickly, and detract the time it takes to validate and release new software updates.
Continuous Integration brings multiple benefits, let's have a look some of them:

If you are going to fail, then fail early 

- One of the driving forces behind CI is to detect problems with the software as early as possible. Remember, any change to software (even one that fixes a bug) can cause destabilisation. If you are not aware of this destabilisation, then you cannot fix it. Due to Continuous Integration we can catch issues early and nip them in the bud.

Increases confidence in the software

- If you have a robust test suite and all the tests pass, your confidence that you aren't shipping a bug goes way up. If you are transparent with your process and educate the rest of your team and clients, their confidence in you as a development team improves as well.

Team Communication

 - Integration is in the name for a reason! Continuous Integration opens the door for integrating other tools and services your team uses into the development workflow. Create a channel for each project in Slack, and CI can send a message when significant events, such as a deployment, occur. A project stakeholder, like a project manager, will have an easier time if all they need to do is check that channel instead of hunting down a developer to see what's shipped.

Risk Mitigation

- "it worked on my local machine" . As local development environments often differ from where the website will actually run on the internet, there can be a number of things that are different between your local environment and where you push to production. Continuous Integration allows you to mitigate risk not only with testing, but also by enabling production parity.

CI is a safety net that lets developers prevent many issues before they reach users. As a result, they ship  code with more confidence, but not necessarly faster- the deployement process may still be manual, long, and complicated (Marco Anastasov)


Thanks and Regards

Webmozart Team!