Continuous integration is about merging code changes from different developers into the main branch in a shared repository several times a day.
Each code change delivered to the main branch will trigger an automatic build and unit testing session, to get quick feedback on if the new changes are good enough or not. With continuous integration, we get:
- Less bugs in production, since regressions are caught early.
- Less context switching, since developers will quickly know if they broke the build, and can fix the build while the changes they made causing the break are fresh in their memory.