It is the practice that requires developers to integrate the code into a shared repository at least once a day. The integration is followed up by a build and test steps to solve problems quickly. Then you can fix the problems easily before they get serious. It would be hard to find and fix them on the repository where the developers don’t integrate their changes so often. When they do, they will be able to add new features instead of spending more time on debugging. Everyone can see what is happening on the repository. Unit and Integration tests have important roles on that pipeline. Overall, reduced risks, release more often and provide higher quality products.
“Continuous Integration doesn’t get rid of bugs, but it does make them dramatically easier to find and remove.”
— Martin Fowler, Chief Scientist, ThoughtWorks
Continuous Delivery vs Deployment
Satisfying customers feedback on the production is important. Continuous Delivery is the discipline where the software can be released to production when there is a change on the code or configuration. Your application can benefit from this while providing you always production ready software. So what is the difference between delivery and the deployment ? Continuous delivery is the pipeline where the release is controlled manually whereas continuous deployment is the pipeline which is sequences of automated steps. The changes are always released to the production in continuous deployment. However it requires continuous delivery. So they are the terms which are used for each other by mistake.