When a team of programmer is contributing to the same large project, usually with some sort of source control system like git or subversion, changes from the various team members must be merged in to the main repository asynchronously. In order to avoid “integration hell” which is what happens when you waited too long before committing your changes and it takes a long time to get the project to build again, it is better to check in often and have an automated way of ensuring the project is still sound.
Continuous Integration is the practice of continually testing the code (from more than one developer) to ensure that work from one person is not impacting the work of another programmer in a way that would make it difficult to merge all the various changes back together.
In its simplest form, all you have to do is obtain a fresh copy of the project and make sure it still builds. If it doesn’t you email the offending author and tell him or her to fix it. Where is gets complicated is when you have dependencies, multiple users making multiple changes a day, etc. The solution is to automate the testing. A piece of software will sit patiently and wait for somebody to check in some code. After a brief period to let the author complete the check in process, the software will download the latest code, build it using any number of configurations and analyze the results. Said results can then be emailed, published on a dashboard, sent to your boss, etc.
The best part is that you can use free open source software to do all this. Jenkins, formerly Hudson is one of the leading Continuous Integration tool out there. Jenkins is available from the Jenkins website as free software. It can be configured to pull code from multiple Source Control System, run a certain interval or on activity, and has hundreds of plug in to configure it just the way you want. It can run Unit Tests when the build succeed and keep track on your coverage and all kinds of cool statistics.