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 accelerate builds. 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; and (iii) the percentage of future builds that might be affected by such change.

[1]  Shane McIntosh,et al.  BLIMP Tracer: Integrating Build Impact Analysis with Code Review , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[2]  Margaret-Anne D. Storey,et al.  Understanding, Debugging, and Optimizing Distributed Software Builds: A Design Study , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[3]  Jesper Holck,et al.  Continuous Integration and Quality Assurance: a case study of two open source projects , 2003, Australas. J. Inf. Syst..

[4]  Dror G. Feitelson,et al.  Development and Deployment at Facebook , 2013, IEEE Internet Computing.

[5]  Maria Paasivaara,et al.  Stakeholder Perceptions of the Adoption of Continuous Integration -- A Case Study , 2015, 2015 Agile Conference.

[6]  Richard Berntsson-Svensson,et al.  On the journey to continuous deployment: Technical and social challenges along the way , 2015, Inf. Softw. Technol..

[7]  Srikanth Kandula,et al.  CloudBuild: Microsoft's Distributed and Caching Build Service , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).