Build Management
I wrote in the previous section that a benefit of adopting CI is that it forces you to simplify the building of your project (by which I mean compiling sources, translating assets, creating packages, and anything else that takes the inputs created by the project team and converts them into a product that will be used by customers). Indeed, to use CI you will have to condense the build down until an automated process can complete it given any revision of your source code.
There's no need to write a script or an other program to do this work, because plenty of build management tools already exist. At a high level, they all do the same thing: they take a collection of input files, a collection of output files, and some information about the transformations needed to get from one to the other. How they do that, of course, varies from product to product.
Convention or Configuration
Some build systems, like make and ant, need the developer to tell them nearly everything about...