Technical Debt tracking: Current state of practice: A survey and multiple case study in 15 large organizations

Abstract Large software companies need to support continuous and fast delivery of customer value both in the short and long term. However, this can be hindered if both the evolution and maintenance of existing systems are hampered by Technical Debt. Although a lot of theoretical work on Technical Debt has been produced recently, its practical management lacks empirical studies. In this paper, we investigate the state of practice in several companies to understand what the cost of managing TD is, what tools are used to track TD, and how a tracking process is introduced in practice. We combined two phases: a survey involving 226 respondents from 15 organizations and an in-depth multiple case study in three organizations including 13 interviews and 79 Technical Debt issues. We selected the organizations where Technical Debt was better tracked in order to distill best practices. We found that the development time dedicated to managing Technical Debt is substantial (an average of 25% of the overall development), but mostly not systematic: only a few participants (26%) use a tool, and only 7.2% methodically track Technical Debt. We found that the most used and effective tools are currently backlogs and static analyzers. By studying the approaches in the companies participating in the case study, we report how companies start tracking Technical Debt and what the initial benefits and challenges are. Finally, we propose a Strategic Adoption Model for the introduction of tracking Technical Debt in software organizations.

[1]  U. Flick An Introduction to Qualitative Research , 1998 .

[2]  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.

[3]  Ville Leppänen,et al.  DebtFlag: Technical debt management with a development environment integrated tool , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[4]  Francesca Arcelli Fontana,et al.  Tool support for evaluating architectural debt of an existing system: an experience report , 2016, SAC.

[5]  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.

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

[7]  Zadia Codabux,et al.  Managing technical debt: An industrial case study , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[8]  Rodrigo O. Spínola,et al.  Exploring the costs of technical debt management – a case study , 2016, Empirical Software Engineering.

[9]  Forrest Shull,et al.  A case study on effectively identifying technical debt , 2013, EASE '13.

[10]  Ipek Ozkaya,et al.  Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162) , 2016, Dagstuhl Reports.

[11]  Robert L. Nord,et al.  Managing technical debt in software-reliant systems , 2010, FoSER '10.

[12]  Jan Bosch,et al.  The Danger of Architectural Technical Debt: Contagious Debt and Vicious Circles , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[13]  David Lo,et al.  Identifying self-admitted technical debt in open source projects using text mining , 2017, Empirical Software Engineering.

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

[15]  Jan Bosch,et al.  An Empirically Developed Method to Aid Decisions on Architectural Technical Debt Refactoring: AnaConDebt , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[16]  Robert L. Nord,et al.  Technical Debt: From Metaphor to Theory and Practice , 2012, IEEE Software.

[17]  Deependra Moitra,et al.  Managing change for software process improvement initiatives: a practical experience‐based approach , 1998 .

[18]  Jesse Yli-Huumo,et al.  How do software development teams manage technical debt? - An empirical study , 2016, J. Syst. Softw..

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

[20]  André L. M. Santos,et al.  Tracking technical debt — An exploratory case study , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[21]  Jan Bosch,et al.  Investigating Architectural Technical Debt accumulation and refactoring over time: A multiple-case study , 2015, Inf. Softw. Technol..

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

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

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

[25]  Jan Bosch,et al.  The Introduction of Technical Debt Tracking in Large Companies , 2016, 2016 23rd Asia-Pacific Software Engineering Conference (APSEC).

[26]  Jan Bosch,et al.  The magnificent seven: towards a systematic estimation of technical debt interest , 2017, XP Workshops.

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

[28]  Philippe Kruchten,et al.  What is social debt in software engineering? , 2013, 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE).