1. A method performed by a data processing apparatus, comprising: creating a first compilation strategy, which is a plan created for compiling program code, for a first build, wherein a build, including the first build and a second build, changes programming code into executable code upon compilation; performing said first build using said first compilation strategy; computing a first checksum for configuration files identifying build dependencies associated with said first build, said first checksum is a global build checksum computed using one or more local build checksums which are computed based on a transitive closure of the first build configuration files, the transitive closure computed based on dependencies of the first build configuration files; storing said first compilation strategy and said first checksum; computing a second checksum for configuration files identifying build dependencies associated with said second build; determining if said second checksum is equal to said first checksum; in response to determining that said second checksum is not equal to said first checksum, creating a second compilation strategy, which is different from the first compilation strategy; storing said second compilation strategy and said second checksum, and performing said second build using said second compilation strategy; and in response to determining that said second checksum is equal to said first checksum, retrieving said first compilation strategy and performing said second build using said first compilation strategy.