et's face itdevelopers are creative folk who generally like to focus on what they do best: develop code. In many ways, they are similar to master chefs who delight in the planning and preparation of a meal but have little time to focus on the actual cooking. Just as a chef must be able to set an oven for the right temperature and trust that the results will be predictable and accurate, a developer must be able to depend on a build system that is automated, reliable, unobtrusive, and adaptable.
Traditionally, build systems have been an unsophisticated collection of scripts and manual steps, developed in-house. But three key trends in application development are driving up the complexity of these systems to the point that a new approach to build management is required. First, complications have arisen from the growing need to support a variety of environments, platforms, and languages. Second, code reuse and refactoring is rapidly increasing the rate of change in software applications and technology. And, perhaps most importantly, end users are simply demanding higher quality applications.
A number of vendors have introduced enterprise-class build systems specifically designed to address these issues, and development organizations should take a good, hard look at their current build systems to determine whether they are sufficiently sophisticated to tackle complex architectures and requirements. In particular, you should pay close attention to features and benefits such as:
- Ease of administration
- Automated population of build areas
- Automated build execution (across platforms)
- Integration with multiple development environments
- Comprehensive auditing and logging
- Integration with configuration management (CM) systems
|Editor's Note: The author, Peter Raymond, is a principal software architect for Merant, a vendor of lifecycle management products, including build management tools. We have selected this article for publication because we believe it to have objective technical merit.