A system comprising: a plurality of build machines, wherein each build machine includes a processor to execute instructions and a memory coupled with the processor to store instructions that when executed cause the processor to schedule jobs for a program build invoked by that build machine; a computing device including a memory to store program code and a processor to execute the program code to generate a cluster manager to dynamically allocate different ones of a plurality of nodes from a node cluster to different ones of the plurality of build machines for the program builds based on a specified configurable node allocation policy, wherein for each build machine the node allocation policy indicates which one or more of the nodes from the node cluster to allocate to that build machine based on current node availability and evaluated performance of each of the nodes; the plurality of nodes being adapted to execute the jobs for each of the program builds in parallel according to the schedule generated by the build machines; a job scheduler module adapted to analyze original file dependency information contained within a first file, the job scheduler module further adapted to determine, based on the analysis, which jobs may be executed in parallel, and the job scheduler module further being adapted to schedule the jobs which may be executed in parallel to execute in parallel across the plurality of nodes allocated by the cluster manager; and a usage tracking module executed on each node and adapted to collect file usage information from each of the jobs, the file usage information including (i) supplemental file dependency information for the files as used in each job and for which a conflict occurred during execution of jobs utilizing the files, (ii) redundant file dependency information for two or more files falsely indicated as dependent in the original file dependency information, (iii) job execution times indicative of an amount of time each job takes to complete, and (iv) node processing capabilities of each node determined by execution of jobs, each of the nodes providing the file usage information to the build machine following the completion of each of the jobs, the central build module to supplement the original file dependency information with the file usage information following execution of one or more of the jobs; wherein the job scheduler module analyzes the original file dependency information, supplemental file dependency information, redundant file dependency information, job execution times, and node processing capabilities and schedules jobs to execute in parallel across the plurality of nodes for a subsequent program build based on the analysis of the original file dependency information and the supplemental file usage information. a plurality of build machines, wherein each build machine includes a processor to execute instructions and a memory coupled with the processor to store instructions that when executed cause the processor to schedule jobs for a program build invoked by that build machine; a computing device including a memory to store program code and a processor to execute the program code to generate a cluster manager to dynamically allocate different ones of a plurality of nodes from a node cluster to different ones of the plurality of build machines for the program builds based on a specified configurable node allocation policy, wherein for each build machine the node allocation policy indicates which one or more of the nodes from the node cluster to allocate to that build machine based on current node availability and evaluated performance of each of the nodes; the plurality of nodes being adapted to execute the jobs for each of the program builds in parallel according to the schedule generated by the build machines; a job scheduler module adapted to analyze original file dependency information contained within a first file, the job scheduler module further adapted to determine, based on the analysis, which jobs may be executed in parallel, and the job scheduler module further being adapted to schedule the jobs which may be executed in parallel to execute in parallel across the plurality of nodes allocated by the cluster manager; and a usage tracking module executed on each node and adapted to collect file usage information from each of the jobs, the file usage information including (i) supplemental file dependency information for the files as used in each job and for which a conflict occurred during execution of jobs utilizing the files, (ii) redundant file dependency information for two or more files falsely indicated as dependent in the original file dependency information, (iii) job execution times indicative of an amount of time each job takes to complete, and (iv) node processing capabilities of each node determined by execution of jobs, each of the nodes providing the file usage information to the build machine following the completion of each of the jobs, the central build module to supplement the original file dependency information with the file usage information following execution of one or more of the jobs; wherein the job scheduler module analyzes the original file dependency information, supplemental file dependency information, redundant file dependency information, job execution times, and node processing capabilities and schedules jobs to execute in parallel across the plurality of nodes for a subsequent program build based on the analysis of the original file dependency information and the supplemental file usage information.