Apr 29, 2007

Do You Fly Your Own Airplane?

One of the best tests for a software product is using it for your own needs-- in other words, flying your own airplane. By using your product in an internal production environment, you can shake out bugs and reliability issues and make a better product for your paying customers. Running in a real environment helps you find issues that wouldn't turn up in test scenarios.

In Cassatt, we started using Collage to run our IT systems and development build systems in early 2005. We have three development sites, and the IT systems in each site are run on Collage. A common set of application images are developed in San Jose and pushed out to the other sites, which have no local IT staff.

Product builds, however, are the at core of a development organization. If you can't check-in code and build your product, everything comes to a screeching halt. In Product Development, we use Cruise Control (builds), Bit Keeper (source-code management) and Bugzilla (defect tracking). All three applications are managed in a Collage environment. Spencer Smith, one of our developers in Colorado, wears a second hat-- release engineer or buildmeister.

In 2007, we changed our development process in PD so that we now have about a dozen projects proceeding in parallel. Each project requires its own repository and build. The build system was revamped to include a web application that allows project leads to configure new projects and to set up their own build schedules.

This new Unified Build Service (UBS) is a LAMP application that simply runs as an application tier within a Collage environment. This same Collage environment includes other application tiers for the builder nodes, which are part of the CruiseControl system. CruiseControl also runs as another application within this Collage environment. Spen just finished UBS last week, and now all project builds have transitioned to UBS. So, Collage is built using Collage. Pretty neat, huh?

No comments: