- A Day in the Life of CI
- What Is the Value of CI?
- What Prevents Teams from Using CI?
- How Do I Get to "Continuous" Integration?
- When and How Should a Project Implement CI?
- The Evolution of Integration
- How Does CI Complement Other Development Practices?
- How Long Does CI Take to Set Up?
- CI and You
- Commit Code Frequently
- Don't Commit Broken Code
- Fix Broken Builds Immediately
- Write Automated Developer Tests
- All Tests and Inspections Must Pass
- Run Private Builds
- Avoid Getting Broken Code
- Summary
- Questions
The Evolution of Integration
Is CI the newest, latest, "whiz-bang" approach to software development? Hardly. CI is simply an advance in the evolution of integrating software. When software programs consisted of a few small files, integrating them into a system was not much of a problem. The practice of performing nightly builds has been described as a best practice for years. Similar practices have been discussed in other books and articles. In the book Microsoft Secrets, Michael A. Cusumano and Richard W. Selby discuss the practice of daily builds at Microsoft. Steve McConnell, in Software Project Survival Guide, discusses the practice of the "Daily Build and Smoke Test" as part of a software development project.
In Object Solutions: Managing the Object-Oriented Project, Grady Booch writes, "The macro process of object-oriented development is one of 'continuous integration' At regular intervals, the process of 'continuous integration' yields executable releases that grow in functionality at every release... It is through these milestones that management can measure progress and quality, and hence anticipate, identify, and then actively attack risks on an ongoing basis." With the advent of XP and other Agile methodologies, and with the recommended practice of CI, people began to take notice of the concept of not just daily, but "continuous," builds.
The practice of CI continues to evolve. You'll find the practice in almost every XP book. Often, when people discuss the practice of CI, they refer to Martin Fowler's seminal "Continuous Integration" article.4
As hardware and software resources continue to increase, you'll find that more processes will become a part of what is considered to be CI.