The Case for Continuous Integration
In a nutshell, the case for continuous integration is early detection and prevention. Software defects are best caught and dealt with early, to ensure a healthy system, just as we would hope to eliminate certain diseases and sicknesses from our human bodies before they cause major damage.
So, what is continuous integration? It''s "a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily -- leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible," as stated by Martin Fowler.
The why of continuous integration is a fairly simple matter of keeping things under control. It''s based on the premise that frequent integration is far less risky than putting integration off toward the end of a project, when undetected bugs may surface and wreak havoc at the worst possible time. Of course, it''s always easier to fix bugs before the build gets bigger and more complicated, and in a less panicked situation.
How is continuous integration implemented? First off, each build is automated. This means compiling, updating, and otherwise preparing the code is done automatically so as to make it available for testing at any time. Every successive build becomes part of a mainline, a (mostly) single, continuous code stream that gets updated constantly. Developers work changes into the mainline by running their most recently updated build versus a series of unit and acceptance and other tests that are designed to catch errors any time changes are made to the mainline. If an error shows up, it is dealt with immediately and the process repeats until a clean build is had.
The crux for those outfits not yet having made the switch to continuous integration seems to be getting all of the build and test methods automated. However, we feel strongly that over time, this investment pays for itself greatly. You will most likely agree that once the switch to continuous integration is made, the methods prove themselves and you will be astounded at not having adopted these superior development practices sooner. Please contact us for more information.