Continuous Integration, Continuous Delivery, and Continuous Deployment

The Financial Services industry is a fast-paced environment. With constantly changing and increasing compliance regulations, client expectations, and access to information, financial services organizations need access to the newest and best tools. 

But in responding to that need, some of the newly created software terms can be confusing and highly technical, such as continuous integration, continuous delivery, and continuous deployment.

What do these terms mean?
 
Continuous Integration is when all developers working on a product merge their code to a central branch multiple times a day to avoid conflicts in the future. This allows multiple people to work on the same project while maintaining the most recent version, so that all developers are checking in or out the latest code.
 
Continuous Delivery is the logical next step from continuous integration, where the latest code that has been successfully tested and accepted is then pushed to customers continually. Customers can then determine whether they want to accept and deploy the new code. The focus of continuous delivery is keeping the code base in a deployable state.
 
Continuous Deployment is the logical next step from continuous delivery, where the automation is taken a step further. Rather than having the customer manually determine whether they want to accept or deploy the new code, this is done automatically for every change in the code that passes testing and acceptance.
 
How do these terms differ?

Continuous integration is the heart of all three of these terms. Without continuous integration, neither continuous delivery nor continuous deployment are possible. The goal of all three terms is the same - to make software development and software release faster and more streamlined.
 
Why do these terms matter?

The benefit of this is that code is kept clean, merged, and up-to-date. And, as soon as code is successfully tested and accepted, it's released to the users. This means that your users won't need to wait for the features and functionality that can make their job easier and more efficient. It also allows your company to respond more quickly and flexibly to changes in the industry. Finally, with rapid and continuous change, your users have more opportunities to give feedback on the product, sooner, which allows your company to have more input on the product as it grows.