In browsing through some of the articles I’ve written, I stumbled across Benefits of the Build, which was published in the March 2005 issue of Software Development Magazine. SD Magazine was rolled into Dr. Dobb’s a while back, but I found the article is still on-line, and still very relevant. That article also forms the foundation of a very successful talk I’ve given at various conferences.
I’m continually amazed by the number of development teams that don’t practice continuous integration. IMHO, it’s the most important technical practice you can employ, assuming you leverage the fact that you’ve got a functional product. I’d highly recommend that any team start today.
Since the time I wrote that article, I’ve learned a lot and developed a stronger sense of what it takes to employ a successful continuous integration strategy. Here are a few guiding principles and rules that help maximize the benefits of the build.
- The Prime Directive – Strive for a system that always compiles and tests that always execute successfully. In other words, make sure the system is always in a functional state.
- The Golden Rule – Anytime a build fails, it must become the priority of the team to fix it before doing anything else.
- The Synchronization Rule – Developers should release and update their code at least once per day with the master source repository. More is preferable. Waiting any longer increases integration risk.
- The Release Rule – Before releasing code, developers should execute all relevant test cases locally to decrease the possibility of introducing a breaking change.
- The Defect Rule – Anytime a defect is discovered, developers should strive to first write a test case that recreates the defect.
The image is a wordle of the text in Benefits of the Build.