An exploration of technical debt

Context: Whilst technical debt is considered to be detrimental to the long term success of software development, it appears to be poorly understood in academic literature. The absence of a clear definition and model for technical debt exacerbates the challenge of its identification and adequate management, thus preventing the realisation of technical debt's utility as a conceptual and technical communication device. Objective: To make a critical examination of technical debt and consolidate understanding of the nature of technical debt and its implications for software development. Method: An exploratory case study technique that involves multivocal literature review, supplemented by interviews with software practitioners and academics to establish the boundaries of the technical debt phenomenon. Result: A key outcome of this research is the creation of a theoretical framework that provides a holistic view of technical debt comprising a set of technical debts dimensions, attributes, precedents and outcomes, as well as the phenomenon itself and a taxonomy that describes and encompasses different forms of the technical debt phenomenon. Conclusion: The proposed framework provides a useful approach to understanding the overall phenomenon of technical debt for practical purposes. Future research should incorporate empirical studies to validate heuristics and techniques that will assist practitioners in their management of technical debt.

[1]  Colin J. Neill,et al.  Paying down design debt with strategic refactoring , 2006, Computer.

[2]  D. Silverman Doing Qualitative Research , 2009 .

[3]  Justin D. Davis,et al.  Surviving the Economic Downturn , 2009, 2009 Agile Conference.

[4]  Richard T. Vidgen,et al.  A Consolidated Understanding of Technical debt , 2012, ECIS.

[5]  John Klein,et al.  How Does the Architect’s Role Change as the Software Ages? , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[6]  Barbara Kitchenham,et al.  Procedures for Performing Systematic Reviews , 2004 .

[7]  Ivan Porres,et al.  Metrics Functions for Kanban Guards , 2010, 2010 17th IEEE International Conference and Workshops on Engineering of Computer Based Systems.

[8]  Robert L. Nord,et al.  Enabling Agility Through Architecture , 2010 .

[9]  Patrick Debois,et al.  Agile Infrastructure and Operations: How Infra-gile are You? , 2008, Agile 2008 Conference.

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

[11]  Eric Allman,et al.  Managing technical debt , 2012, Commun. ACM.

[12]  Carolyn B. Seaman,et al.  A Balancing Act: What Software Practitioners Have to Say about Technical Debt , 2012, IEEE Softw..

[13]  Richard Torkar,et al.  Adopting Free/Libre/Open Source Software Practices, Techniques and Methods for Industrial Use , 2011, J. Assoc. Inf. Syst..

[14]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[15]  Anders Wall,et al.  A Method for Balancing Short- and Long-Term Investments: Quality vs. Features , 2008, 2008 34th Euromicro Conference Software Engineering and Advanced Applications.

[16]  Anders Wall,et al.  Key Aspects of Software Release Planning in Industry , 2008 .

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

[18]  Rebecca Wirfs-Brock,et al.  Designing Then and Now , 2008, IEEE Software.

[19]  Jonathan P. Bowen,et al.  Formal Versus Agile: Survival of the Fittest , 2009, Computer.

[20]  Mika Mäntylä,et al.  What Types of Defects Are Really Discovered in Code Reviews? , 2009, IEEE Transactions on Software Engineering.

[21]  Oualid Ktata,et al.  Designing and implementing a measurement program for Scrum teams: what do agile developers really need and want? , 2010, C3S2E '10.

[22]  Carolyn B. Seaman,et al.  A portfolio approach to technical debt management , 2011, MTD '11.

[23]  Peri L. Tarr,et al.  An enterprise perspective on technical debt , 2011, MTD '11.

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

[25]  Carolyn B. Seaman,et al.  Defining the decision factors for managing defects: A technical debt perspective , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[26]  Rebecca Wirfs-Brock,et al.  Enabling Change , 2008, IEEE Software.

[27]  Matthew B. Miles,et al.  Qualitative Data Analysis: An Expanded Sourcebook , 1994 .

[28]  Rodney T. Ogawa,et al.  Towards Rigor in Reviews of Multivocal Literatures: Applying the Exploratory Case Study Method , 1991 .

[29]  Forrest Shull,et al.  Prioritizing design debt investment opportunities , 2011, MTD '11.

[30]  Forrest Shull,et al.  Perfectionists in a World of Finite Resources , 2011, IEEE Softw..

[31]  Daniel Sundmark,et al.  Technical Debt in Test Automation , 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.