Towards Predicting the Impact of Software Changes on Building Activities
The pervasive adoption of Continuous Integration practices – both in industry and open source projects – has led software building to become a daily activity for thousands of developers around the world. Companies such as Microsoft have invested in in-house infrastructures with the goal of optimizing the build process. CloudBuild, a distributed and caching build service developed internally by Microsoft, runs the build process in parallel in the cloud and relies on caching to allow fast and reliable builds of large software products. This allows for agile development and rapid delivery of software even several times a day. However, moving towards faster builds requires not only improvements on the infrastructure side, but also attention to developers’ changes in the software. Surely, architectural decisions and software changes, such as addition of dependencies, can lead to significant build time increase. Yet, estimating the impact of such changes on build time can be challenging when dealing with complex, distributed, and cached build systems. In this paper we envision a predictive model able to preemptively alert developers on the extent to which their software changes may impact future building activities. In particular, we describe an approach that analyzes the developer’s change and predicts (i) whether it impacts (any of) the Longest Critical Path; (ii) may lead to build time increase and its delta (iii) the percentage of future builds that might be affected by such change.