Comparison of release engineering practices in a large mature company and a startup

Modern release engineering practices provide multiple benefits for software companies, but organizations have struggled when trying to adopt the most advanced practices, such as continuous delivery. It is not known in which contexts the most advanced practices are applicable and what can be achieved by adopting them. In this study, we discuss the effect of the organizational context on adopted release engineering practices and what outcomes are achieved with the practices. We study two organizational contexts: the startup and the large mature company context. The effect of the product context is mitigated by studying two case organizations with similar products, a rare research opportunity. We performed 18 interviews with various roles in the case organizations. The number of production environments, the number of customers, the control over the production environment, the available resources, the organization size and the distribution of the organization affected the release engineering practices and the ability to release frequently. Having less internal verification and more customer verification enabled fast feedback and customer experimentation in the startup context, but increased the number of production defects. However, having more internal verification in the large mature company context surprisingly did not prevent production defects. The organizational context had a large effect on how achievable modern release engineering practices, such as continuous delivery, were. In the startup context, the lack of resources was the main factor hindering the improvement of release engineering practices, while in the large mature company context, the number of stakeholders and products were the main factors.

[1]  R. Yin Case Study Research: Design and Methods , 1984 .

[2]  D B Yoffie,et al.  Judo strategy. The competitive dynamics of Internet time. , 1999, Harvard business review.

[3]  Steve Neely,et al.  Continuous Delivery? Easy! Just Change Everything (Well, Maybe It Is Not That Easy) , 2013, 2013 Agile Conference.

[4]  Hans van Vliet,et al.  When agile meets the enterprise , 2013, Inf. Softw. Technol..

[5]  M. Patton Qualitative research & evaluation methods , 2002 .

[6]  Richard Berntsson-Svensson,et al.  Challenges When Adopting Continuous Integration: A Case Study , 2014, PROFES.

[7]  Subhajit Datta,et al.  Does latitude hurt while longitude kills? geographical and temporal separation in a large scale software development project , 2014, ICSE.

[8]  Laurie A. Williams,et al.  Continuous Deployment at Facebook and OANDA , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[9]  Robert G. Cooper,et al.  Stage-gate systems: A new tool for managing new products , 1990 .

[10]  Tony Gorschek,et al.  Software Development in Startup Companies: The Greenfield Startup Model , 2016, IEEE Transactions on Software Engineering.

[11]  Casper Lassenius,et al.  Bottom-up Adoption of Continuous Delivery in a Stage-Gate Managed Software Organization , 2016, ESEM.

[12]  Mika Mäntylä,et al.  A tool supporting root cause analysis for synchronous retrospectives in distributed software teams , 2014, Inf. Softw. Technol..

[13]  Richard S. Hall,et al.  Software release management , 1997, ESEC '97/FSE-5.

[14]  Philippe Kruchten,et al.  Contextualizing agile software development , 2013, J. Softw. Evol. Process..

[15]  Robert Rosenberger,et al.  The problem with hands-free dashboard cellphones , 2013, CACM.

[16]  Terhi Kilamo,et al.  Improving the delivery cycle: A multiple-case study of the toolchains in Finnish software intensive enterprises , 2016, Inf. Softw. Technol..

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

[18]  Barbara Weber,et al.  Agile Processes in Software Engineering and Extreme Programming - 18th International Conference, XP 2017, Cologne, Germany, May 22-26, 2017, Proceedings , 2017, XP.

[19]  John Freeman,et al.  Models of Innovation: Startups and Mature Corporations , 2007 .

[20]  Stephen P. Berczuk,et al.  Software Configuration Management Patterns: Effective Teamwork, Practical Integration , 2003 .

[21]  Md Tajmilur Rahman,et al.  Release Stabilization on Linux and Chrome , 2015, IEEE Software.

[22]  Bram Adams,et al.  Feature Toggles: Practitioner Practices and a Case Study , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[23]  Klaus Quibeldey-Cirkel,et al.  Continuous Deployment , 2012, Informatik-Spektrum.

[24]  Harald C. Gall,et al.  Towards quality gates in continuous delivery and deployment , 2016, 2016 IEEE 24th International Conference on Program Comprehension (ICPC).

[25]  Horst Lichter,et al.  Towards Definitions for Release Engineering and DevOps , 2015, 2015 IEEE/ACM 3rd International Workshop on Release Engineering.

[26]  Eric Helms,et al.  Synthesizing Continuous Deployment Practices Used in Software Development , 2015, 2015 Agile Conference.

[27]  Daniela Cruzes,et al.  What works for whom, where, when, and why? On the role of context in empirical software engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[28]  Eric Knauss,et al.  Technical Dependency Challenges in Large-Scale Agile Software Development , 2014, XP.

[29]  Gopalaswamy Ramesh,et al.  Software Testing: Principles and Practices , 2005 .

[30]  James Roche,et al.  Adopting DevOps practices in quality assurance , 2013, CACM.

[31]  Casper Lassenius,et al.  Challenges and success factors for large-scale agile transformations: A systematic literature review , 2016, J. Syst. Softw..

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

[33]  Casper Lassenius,et al.  Problems, causes and solutions when adopting continuous delivery - A systematic literature review , 2017, Inf. Softw. Technol..

[34]  Tony Gorschek,et al.  Software development in startup companies: A systematic mapping study , 2014, Inf. Softw. Technol..

[35]  Jan Bosch,et al.  Scale and Responsiveness in Large-Scale Software Development , 2014, IEEE Software.

[36]  Jez Humble,et al.  Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation , 2010 .

[37]  Hyrum K. Wright,et al.  Release engineering processes, their faults and failures , 2012 .

[38]  Shane McIntosh,et al.  Modern Release Engineering in a Nutshell -- Why Researchers Should Care , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[39]  Mark Staples,et al.  Software Configuration Management in Global Software Development: A Systematic Map , 2010, 2010 Asia Pacific Software Engineering Conference.

[40]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[41]  Björn Regnell,et al.  Are you biting off more than you can chew? A case study on causes and effects of overscoping in large-scale software engineering , 2012, Inf. Softw. Technol..

[42]  Mehdi Jazayeri,et al.  Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering , 1997 .