This time, I will be writing about Continuous Integration, I really recommend following it when doing software development.
What’s Continuous Integration?
As Martin Fowler said, Continuous Integration is a software development practice where several people integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day.
One specific point of Continuous Integration is that the verification of the integration is done automatically using what is called a Continuous Integration Server. This server will fetch the latest code from the corresponding VCS in use (hopefully Subversion, read my article about it).
Why Continuous Integration?
The most important advantage of following the Continuous Integration practices is that errors are detected in a much earlier phase, specially when you use it along with Test Driven Development. Errors in this context not only mean bugs but integration errors as well, as integration is done on a daily basis.
It is not the only advantage of course, for example, deployments to production are a LOT easier as the build process is already in place. I recommend reading the benefits section of Fowler’s article for a detailed explanation.
Tools and Useful Resources
I have used the following tools for doing Continuous Integration:
I also heard good things about Hudson, so give it a try as well.