ADT Interview: Continuous Integration
(Thu Feb 17, 2005) [/CodeCraft] #
A while back, Mike Gunderloy of Application Development Trends interviewed me for his Five Questions column, which was distributed in a newsletter. With Mike's permission, I thought it would be fun to post the interview one question at a time over several weeks. Think about how you'd answer each question differently. Here's the fourth one:
Q: Is there a maximum size project where you're comfortable with continuous integration? What do you do on larger projects?
A: I think larger projects have as much, if not more, to gain from continuous integration than smaller projects. When working in a larger team we have more people contributing code into a common baseline.
Larger teams are generally spread out across many floors of a building, or perhaps across time zones and countries. That increases the potential for integration problems to occur more than, say, four people working around a table. Projects that are large as measured by the amount of code being supported have an increased risk of making a change that breaks something.
So I've not found a maximum size project where I'm comfortable with continuous integration. Indeed, as the size of the project increases I'm uncomfortable without continuous integration. The book (Pragmatic Project Automation) includes a real-world story of a company with 800 developers working on more than 250 projects with five million lines of Java code. The size of the projects vary, but it's encouraging that they have all of these projects under continuous integration with CruiseControl. So while continuous integration tools such as CruiseControl can be used on smaller projects, they can also scale up to larger projects.
Is your code being continually integrated by an automated build process? If so, how has it helped you? If not, what barriers have you found to using continuous integration on your project? I'd enjoy hearing your responses on your blog or via email.
