A method is described for executing program builds comprising: scheduling
jobs for a program build based on dependencies between files used in the
jobs; executing the jobs according to the schedule; collecting file usage
information from each of the jobs, the file usage information indicating
operations performed on the files in each of the jobs; and analyzing the
file usage information to determine whether any one of the jobs resulted
in a conflict.