Beyond Continuous Delivery: An Empirical Investigation of Continuous Deployment Challenges

Context: A growing number of software organizations have been adopting Continuous DElivery (CDE) and Continuous Deployment (CD) practices. Researchers have started investing significant efforts in studying different aspects of CDE and CD. Many studies refer to CDE (i.e., where an application is potentially capable of being deployed) and CD (i.e., where an application is automatically deployed to production on every update) as synonyms and do not distinguish them from each other. Despite CDE being successfully adopted by a large number of organizations, it is not empirically known why organizations still are unable or demotivated to have automatic and continuous deployment (i.e., CD practice). Goal: This study aims at empirically investigating and classifying the factors that may impact on adopting and implementing CD practice. Method: We conducted a mixed-method empirical study consisting of interviewing 21 software practitioners, followed by a survey with 98 respondents. Results: Our study reveals 11 confounding factors that limit or demotivate software organizations to push changes automatically and continuously to production. The most important ones are "lack of automated (user) acceptance test", "manual quality check", "deployment as business decision", "insufficient level of automated test coverage", and "highly bureaucratic deployment process". Conclusion: Our findings highlight several areas for future research and provide suggestions for practitioners to streamline deployment process.

[1]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[2]  A. Furnham Response bias, social desirability and dissimulation , 1986 .

[3]  Jan Bosch,et al.  Continuous Integration and Delivery Traceability in Industry: Needs and Practices , 2016, 2016 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA).

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

[5]  Liming Zhu,et al.  DevOps - A Software Architect's Perspective , 2015, SEI series in software engineering.

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

[7]  Liming Zhu,et al.  Developing Dependable and Secure Cloud Applications , 2016, IEEE Internet Computing.

[8]  Naihua Duan,et al.  Purposeful Sampling for Qualitative Data Collection and Analysis in Mixed Method Implementation Research , 2015, Administration and Policy in Mental Health and Mental Health Services Research.

[9]  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).

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

[11]  Georgios Gousios,et al.  Work practices and challenges in pull-based development: the contributor's perspective , 2015, ICSE.

[12]  Bente Anda,et al.  Experiences from conducting semi-structured interviews in empirical software engineering research , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[13]  Jan Bosch,et al.  Towards DevOps in the Embedded Systems Domain: Why is It So Hard? , 2016, 2016 49th Hawaii International Conference on System Sciences (HICSS).

[14]  Shari Lawrence Pfleeger,et al.  Personal Opinion Surveys , 2008, Guide to Advanced Empirical Software Engineering.

[15]  B. Kitchenham,et al.  Case Studies for Method and Tool Evaluation , 1995, IEEE Softw..

[16]  S. Berg Snowball Sampling—I , 2006 .

[17]  Mika Mäntylä,et al.  The highways and country roads to continuous deployment , 2015, IEEE Software.

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

[19]  Jan Bosch,et al.  Climbing the "Stairway to Heaven" -- A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software , 2012, 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.

[20]  Pasi Kuvaja,et al.  Customer Involvement in Continuous Deployment: A Systematic Literature Review , 2016, REFSQ.

[21]  Daniela Cruzes,et al.  Recommended Steps for Thematic Synthesis in Software Engineering , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[22]  Emerson R. Murphy-Hill,et al.  The Design Space of Bug Fixes and How Developers Navigate It , 2015, IEEE Transactions on Software Engineering.

[23]  Klaas-Jan Stol,et al.  Continuous software engineering: A roadmap and agenda , 2017, J. Syst. Softw..

[24]  Torgeir Dingsøyr,et al.  Emerging themes in agile software development: Introduction to the special section on continuous value delivery , 2016, Inf. Softw. Technol..

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

[26]  Liming Zhu,et al.  Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices , 2017, IEEE Access.

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

[28]  Lianping Chen,et al.  Continuous Delivery: Huge Benefits, but Challenges Too , 2015, IEEE Software.

[29]  Harald C. Gall,et al.  SQA-Mashup: A mashup framework for continuous integration , 2015, Inf. Softw. Technol..

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