There's far too much knowledge about the local build environment required to enable software developers and release engineers to build, test, and release products.
Product build environments become standardized and the cost of adding new platforms is reduced.
The challenge we faced was one of release engineers having to build on multiple platforms, developers needing to build and test on a subset of these platforms, all working from a variety of individual environments and experience levels. We built a small kernel representing these tasks, whose behavior is controlled by and changeable via config files which are themselves Tcl . Scripts to execute on the remote hosts were generated, then launched on the remote host. From within these scripts, host-specific config files were sourced to enforce the build environment and policies, as well as supplemental information, including compilers, compiler flags, paths, etc. These scripts captured statistical information on each distributed build in the form of a Tcl statement representing a database entry.