12.6 Shortening the Development Cycle with CruiseControl.NET

Integration can be a very difficult portion of a project. Waterfall-style projects leave integration until after the majority of development is done, sometimes resulting in horrifically long integration phases. Integration can be a very complex process, and it can point out problems causing ripples all the way back to the system’s design.

Martin Fowler, in his seminal article “Continuous Integration” (see the site http://www.martinfowler.com/articles/continuousIntegration.html), writes about his experience as a summer intern at an electronics company where a large project had been underway for years. Fowler’s guide told him the integration phase had been going on for several months, and that “nobody really knew how long it would take to finish integrating.”

Imagine a scenario in which a developer is working on a piece of functionality involving a new component. That developer employs a test-driven development methodology and gets his component working with all unit tests passing in good order. But what happens if some side effect from that component impacts other portions of the larger system? That side effect won’t show up until the integration phase, and who knows how many similar problems will raise their ugly heads at that point?

Think of the software development process as a value stream. You want to shorten all parts of that stream or somehow add value to each part.[3] Leaving integration until the very end does no ...

Get Windows Developer Power Tools now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.