Seminar by Shane McIntosh (Queen's University)
Speaker: Shane McIntosh
Queen's University, Kingston
Title: Software Build Systems: Enabling the Rapid Release Cycle of Modern Software Systems
Date: Thursday, January 15th, 2015
Time: 10:30AM - 12PM
Place: EV 3.309
Modern software is developed at a breakneck pace. While the software releases of the past would take several months or even years to prepare, modern software organizations like Google, LinkedIn, Amazon, and Facebook release several times daily. Indeed, contemporary techniques like continuous delivery hasten the tempo at which software organizations can produce official releases by automatically packaging and deploying changes to the source code of a software system that satisfy automated testing criteria.
At the heart of the rapid release cycle of modern software systems is the build system, i.e., the system that specifies how source code is translated into deliverables (e.g., makefiles, Maven pom.xml files). An efficient build system that quickly produces updated versions of a software system is required to keep up with competitors. The rapid release cycle fueled by continuous delivery would be error-prone (and thus, too risky) without a robust and reliable build system.
However, the benefits of an efficient build system come at a cost --- build systems introduce overhead on the software development process. For example, maintenance overhead is generated by the need to keep the build system in sync with other software artifacts, such as the source code and testing infrastructure. Furthermore, execution overhead is introduced by the slow nature of using the build system to generate (or regenerate) system deliverables.
In this talk, I will discuss the findings of our empirical analysis of 3,872 open source build systems. Our results indicate that there are concrete steps that software organizations can take to mitigate the overhead introduced by build systems. I will also show that build systems provide a unique source of information about a software system. For example, in recent work, we use a graph derived from build systems to detect license compliance inconsistencies that prompted rapid reactions from three open source systems.
Shane McIntosh is an NSERC Vanier Scholar and PhD candidate at Queen's University. He received his Bachelor's degree in Applied Computing from the University of Guelph and his MSc in Computer Science from Queen's University. In his research, Shane uses empirical software engineering techniques to study software build systems, release engineering, and software quality. His research has been published at several top-tier software engineering venues, such as the International Conference on Software Engineering (ICSE), the International Conference on Automated Software Engineering (ASE), and the Springer Journal of Empirical Software Engineering (EMSE). Shane actively collaborates with academics in Canada, the Netherlands, Singapore, Brazil, and Japan, as well as industrial practitioners in Germany and the USA. To learn more about Shane and his work please visit his website.