Continuous Integration (CI): The practice of frequently merging all developer working copies to a shared mainline.

Continuous Delivery (CD): Aims at building, testing, and releasing software faster and more frequently by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for Continuous Delivery.And if these definitions aren’t confusing enough, let me add thethird term: Continuous Deployment. Continuous Deployment means that every change is automatically deployed to production. So, why should you care, and my favoriteanswer is “Release Velocity“. Let me explain.

Remember, when you wrote your first big code (the one after “hello world” J), you compiled it and voila, you saw the results. But then your colleague said: “Did you test it?” So, you thought of various use case scenarios and created tests and ran it. But then your user said: “I want to test it myself.” By the time you got youruser feedback, you already wrote 3 new features. Repeat this for 2-3 more cycles and suddenly you realize there’s a mess and it’s increasing exponentially. So youdecided to have a separate development/test environment (sandboxes) and a production environment.

Now, let’s say there are 20 more developers like you in your team; you end up with 20 parallel sandboxes. So, you introduce a Version Control system and decided to have a Release Manager to manage these releases into one product release. This ‘mess’ is more common and more exasperating, since I am, of course, oversimplifying…buthopefully you get my drift.

The point is that a significant chunk of development cycle is spent on managing this code(s) vs. writing that code, and CI/CD helps you ease that pain. In fact, we, at AutoRABIT, assert that the entire release cycle can be done with just a few clicks of the button.