Continuous Integration is Not About Build Systems

Keeping the build fast is often stated as an important prerequisite for continuous integration, and is also widely discussed in literature. But which importance does the capacity of the build system actually have in relation to developer behavior? Based on metrics and interview results from a large-scale industry project, we present the factors that according to the developers themselves affect how often they deliver software to the mainline. We show that the developer will deliver less frequently if the delivery processes is time-consuming, if it's too complicated to deliver or if there is no evident value in delivering often to the mainline. Behind these three main themes, we also present a range of sub-categories such as architecture, test activities and administration. The build system capacity is one of several factors which, if not considered, could result in undesired continuous integration behaviors – but other factors should be seen as at least as important.

[1]  Barbara Bloch Snyderman,et al.  The motivation to work, 2nd ed. , 1959 .

[2]  Jan Bosch,et al.  The continuity of continuous integration: Correlations and consequences , 2017, J. Syst. Softw..

[3]  Beryl Plimmer,et al.  Status Communication in Agile Software Teams: A Case Study , 2010, 2010 Fifth International Conference on Software Engineering Advances.

[4]  Bruce McMillin,et al.  Software engineering: What is it? , 2018, 2018 IEEE Aerospace Conference.

[5]  Jay Trimble,et al.  From Traditional, to Lean, to Agile Development: Finding the Optimal Software Engineering Cycle , 2013, 2013 46th Hawaii International Conference on System Sciences.

[6]  C. Robson,et al.  Real World Research: A Resource for Social Scientists and Practitioner-Researchers , 1993 .

[7]  Erik Herzog,et al.  Experience from model and software reuse in aircraft simulator product line engineering , 2013, Inf. Softw. Technol..

[8]  Eray Tüzün,et al.  Using continuous integration and automated test techniques for a robust C4ISR system , 2009, 2009 24th International Symposium on Computer and Information Sciences.

[9]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[10]  Christoph Woskowski Applying Industrial-Strength Testing Techniques to Critical Care Medical Equipment , 2012, SAFECOMP.

[11]  R. Owen Rogers,et al.  Scaling Continuous Integration , 2004, XP.

[12]  Jan Bosch,et al.  Continuous Integration Applied to Software-Intensive Embedded Systems - Problems and Experiences , 2016, PROFES.

[13]  Stefan Biffl,et al.  Communicating continuous integration servers for increasing effectiveness of automated testing , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[14]  Lianping Chen,et al.  The Journal of Systems and Software , 2022 .

[15]  T. Cook,et al.  Quasi-experimentation: Design & analysis issues for field settings , 1979 .