If you are new to the concept of continuous integration you should start reading here. If you have some prior experience you might want to skip ahead to the full documentation guide.
When working on a large project with many components, a change to one component might inadvertently change another component. This is a serious problem especially when several developer work together and might change each other’s code in unexpected ways.
Usually each developer works on a separate branch and when the work is done integrates with the master branch. If the task takes a long time, during this time the developer’s branch might diverge significantly from the master branch. When it’s time to re-integrate the branch there might be many conflicts and unexpected changes which will be hard to fix.
CI methodology strive to solve these problems in two ways:
Read more in Wikipedia - Continuous integration.
Automated tests which verify the validity of your code.
Automated tests which test the application as a whole, including external dependencies.
All the developers should be able to work on the same configurations and environments.
To provide a consistent environment - there should be a single command that will automatically build the required environment and configuration.