Analyzing the concept of technical debt in the context of agile software development: A systematic literature review

Abstract Context Technical debt (TD) is a metaphor that is used to communicate the consequences of poor software development practices to non-technical stakeholders. In recent years, it has gained significant attention in agile software development (ASD). Objective The purpose of this study is to analyze and synthesize the state of the art of TD, and its causes, consequences, and management strategies in the context of ASD. Research Method Using a systematic literature review (SLR), 38 primary studies, out of 346 studies, were identified and analyzed. Results We found five research areas of interest related to the literature of TD in ASD. Among those areas, “managing TD in ASD” received the highest attention, followed by “architecture in ASD and its relationship with TD”. In addition, eight categories regarding the causes and five categories regarding the consequences of incurring TD in ASD were identified. “Focus on quick delivery” and “architectural and design issues” were the most popular causes of incurring TD in ASD. “Reduced productivity”, “system degradation” and “increased maintenance cost” were identified as significant consequences of incurring TD in ASD. Additionally, we found 12 strategies for managing TD in the context of ASD, out of which “refactoring” and “enhancing the visibility of TD” were the most significant. Conclusion The results of this study provide a structured synthesis of TD and its management in the context of ASD as well as potential research areas for further investigation.

[1]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[2]  Günther Ruhe,et al.  When-to-Release Decisions in Consideration of Technical Debt , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

[3]  Marco Torchiano,et al.  Exploratory Testing as a Source of Technical Debt , 2014, IT Professional.

[4]  Zahra Shakeri Hossein Abad,et al.  Using real options to manage Technical Debt in Requirements Engineering , 2015, 2015 IEEE 23rd International Requirements Engineering Conference (RE).

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

[6]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[7]  George Mangalaraj,et al.  Challenges of migrating to agile methodologies , 2005, CACM.

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

[9]  Neil A. Ernst,et al.  Toward Design Decisions to Enable Deployability: Empirical Study of Three Projects Reaching for the Continuous Delivery Holy Grail , 2014, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks.

[10]  Jouni Markkula,et al.  Survey on agile and lean usage in finnish software industry , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[11]  Kai Petersen,et al.  Considering rigor and relevance when evaluating test driven development: A systematic review , 2014, Inf. Softw. Technol..

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

[13]  Rami Bahsoon,et al.  Evaluating Technical Debt in Cloud-Based Architectures Using Real Options , 2014, 2014 23rd Australian Software Engineering Conference.

[14]  Tony Gorschek,et al.  A method for evaluating rigor and industrial relevance of technology evaluations , 2011, Empirical Software Engineering.

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

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

[17]  Robert L. Nord,et al.  Technical debt in software development: from metaphor to theory report on the third international workshop on managing technical debt , 2012, SOEN.

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

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

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

[21]  Roel Wieringa,et al.  Requirements engineering paper classification and evaluation criteria: a proposal and a discussion , 2005, Requirements Engineering.

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

[23]  Mikael Lindvall,et al.  An introduction to agile methods , 2004, Adv. Comput..

[24]  Mary Shaw,et al.  Writing good software engineering research papers: minitutorial , 2003, ICSE 2003.

[25]  J. R. Landis,et al.  The measurement of observer agreement for categorical data. , 1977, Biometrics.

[26]  Robert L. Nord,et al.  Technical debt: towards a crisper definition report on the 4th international workshop on managing technical debt , 2013, SOEN.

[27]  Pekka Abrahamsson,et al.  Agile Software Development Methods: Review and Analysis , 2017, ArXiv.

[28]  J. Fleiss Measuring nominal scale agreement among many raters. , 1971 .

[29]  Pasi Kuvaja,et al.  Continuous deployment of software intensive products and services: A systematic mapping study , 2017, J. Syst. Softw..

[30]  Apostolos Ampatzoglou,et al.  The financial aspect of managing technical debt: A systematic literature review , 2015, Inf. Softw. Technol..