Technical Debt Cripples Software Developer Productivity: A Longitudinal Study on Developers’ Daily Software Development Work

Software companies need to continuously deliver customer value, both from a short-and long-term perspective. However, software development can be impeded by what has been described as Technical Debt (TD). The aim of this study is to explore the negative consequences of TD in terms of wasted software development time. This study also investigates on which additional activities this wasted time is spent and whether different types of TD impact the wasted time differently. This study also sets out to examine the benefits of tracking and communicating the amount of wasted time, both from a developer's and manager's perspective. This paper reports the results of a longitudinal study, surveying 43 software developers, together with follow-up interviews with 16 industrial software practitioners. The analysis of the reported wasted time revealed that developers waste, on average, 23% of their development time due to TD and that they are frequently forced to introduce new TD due to already existing TD. The most common activity on which additional time is spent is performing additional testing.

[1]  Robert J. Eisenberg A threshold based approach to technical debt , 2012, SOEN.

[2]  Katrina Maxwell Software development productivity , 2003, Adv. Comput..

[3]  G. B. Schaalje,et al.  Adequacy of approximations to distributions of test statistics in complex mixed linear models , 2002 .

[4]  Jan Bosch,et al.  The Pricey Bill of Technical Debt: When and by Whom will it be Paid? , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[5]  S. Holm A Simple Sequentially Rejective Multiple Test Procedure , 1979 .

[6]  Jan Bosch,et al.  On the interest of architectural technical debt: Uncovering the contagious debt phenomenon , 2017, J. Softw. Evol. Process..

[7]  Robert L. Nord,et al.  Reducing Friction in Software Development , 2016, IEEE Software.

[8]  Rodrigo O. Spínola,et al.  Towards an Ontology of Terms on Technical Debt , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

[9]  Bill Curtis,et al.  Estimating the size, cost, and types of Technical Debt , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[10]  Carl Auerbach,et al.  Qualitative Data: An Introduction to Coding and Analysis , 2003 .

[11]  John L. Campbell,et al.  Coding In-depth Semistructured Interviews , 2013 .

[12]  James Miller,et al.  Triangulation as a basis for knowledge discovery in software engineering , 2008, Empirical Software Engineering.

[13]  Paul Ralph,et al.  Software Development Waste , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering (ICSE).

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

[15]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[16]  Yuanfang Cai,et al.  A Case Study in Locating the Architectural Roots of Technical Debt , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[17]  Hadley Wickham,et al.  Easily Install and Load the 'Tidyverse' [R package tidyverse version 1.3.0] , 2019 .

[18]  Donald F. Morrison,et al.  The Optimal Spacing of Repeated Measurements , 1970 .

[19]  Richard T. Vidgen,et al.  An exploration of technical debt , 2013, J. Syst. Softw..

[20]  SeamanCarolyn,et al.  Identification and management of technical debt , 2016 .

[21]  Jan Bosch,et al.  Time to Pay Up: Technical Debt from a Software Quality Perspective , 2017, CIbSE.

[22]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[23]  Robert E. Ployhart,et al.  Longitudinal Research: The Theory, Design, and Analysis of Change , 2010 .

[24]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.

[25]  Yuanfang Cai,et al.  Using technical debt data in decision making: Potential decision approaches , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[26]  Forrest Shull,et al.  Identification and management of technical debt: A systematic mapping study , 2016, Inf. Softw. Technol..

[27]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

[28]  Ville Leppänen,et al.  Technical Debt and the Effect of Agile Software Development Practices on It - An Industry Practitioner Survey , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

[29]  Neil A. Ernst,et al.  Measure it? Manage it? Ignore it? software practitioners and technical debt , 2015, ESEC/SIGSOFT FSE.

[30]  D. Bates,et al.  Fitting Linear Mixed-Effects Models Using lme4 , 2014, 1406.5823.

[31]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..