Identification and analysis of the elements required to manage technical debt by means of a systematic mapping study

Identification and classification of the elements to manage technical debt (TD).The classification resulted in a framework including the stakeholders interests.The industrial relevance of current support to elements was assessed.The framework is a basis for building TD decision-making models.It was found out that TD management decisions are context-dependent. Technical debt, a metaphor for the long-term consequences of weak software development, must be managed to keep it under control. The main goal of this article is to identify and analyze the elements required to manage technical debt. The research method used to identify the elements is a systematic mapping, including a synthesis step to synthesize the elements definitions. Our perspective differs from previous literature reviews because it focused on the elements required to manage technical debt and not on the phenomenon of technical debt or the activities used in performing technical debt management. Additionally, the rigor and relevance for industry of the current techniques used to manage technical debt are studied. The elements were classified into three groups (basic decision-making factors, cost estimation techniques, practices and techniques for decision-making) and mapped according three stakeholders' points of view (engineering, engineering management, and business-organizational management). The definitions, classification, and analysis of the elements provide a framework that can be deployed to help in the development of models that are adapted to the specific stakeholders' interests to assist the decision-making required in technical debt management and to assess existing models and methods. The analysis indicated that technical debt management is context dependent.

[1]  Bill Curtis,et al.  Estimating the Principal of an Application's Technical Debt , 2012, IEEE Software.

[2]  T.C. Lethbridge,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK) and the Software Engineering Education Knowledge (SEEK) - a preliminary mapping , 2001, 10th International Workshop on Software Technology and Engineering Practice.

[3]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[4]  Yuanfang Cai,et al.  A replication case study to measure the architectural quality of a commercial system , 2014, ESEM '14.

[5]  Reinhold Plösch,et al.  A Benchmarking-Based Model for Technical Debt Calculation , 2014, 2014 14th International Conference on Quality Software.

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

[7]  Clemente Izurieta,et al.  Preemptive management of model driven technical debt for improving software quality , 2015, 2015 11th International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA).

[8]  Alfredo Goldman,et al.  Managing Technical Debt in Software Projects Using Scrum: An Action Research , 2015, 2015 Agile Conference.

[9]  Davide Falessi,et al.  Validating and prioritizing quality rules for managing technical debt: An industrial case study , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[10]  Ken Power Understanding the impact of technical debt on the capacity and velocity of teams and organizations: Viewing team and organization capacity as a portfolio of real options , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

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

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

[13]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[14]  Jan Bosch,et al.  Architecture Technical Debt: Understanding Causes and a Qualitative Model , 2014, 2014 40th EUROMICRO Conference on Software Engineering and Advanced Applications.

[15]  A. Strauss,et al.  Basics of qualitative research: Grounded theory procedures and techniques. , 1993 .

[16]  Jennifer Pérez,et al.  Guiding Flexibility Investment in Agile Architecting , 2014, 2014 47th Hawaii International Conference on System Sciences.

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

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

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

[20]  Yuanfang Cai,et al.  Manufacturing execution systems: A vision for managing software development , 2015, J. Syst. Softw..

[21]  Joost Visser,et al.  An empirical model of technical debt and interest , 2011, MTD '11.

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

[23]  Richard E. Fairley,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK(R)): Version 3.0 , 2014 .

[24]  Ville Leppänen,et al.  Examining Technical Debt Accumulation in Software Implementations , 2015 .

[25]  Philippe Kruchten,et al.  Five Reasons for Including Technical Debt in the Software Engineering Curriculum , 2015, ECSA Workshops.

[26]  Harry M. Sneed Dealing with Technical Debt in Agile Development Projects , 2014, SWQD.

[27]  Nicholas A. Kraft,et al.  A Framework for Estimating Interest on Technical Debt by Monitoring Developer Activity Related to Code Comprehension , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

[28]  Liming Zhu,et al.  Visualising architectural dependencies , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[29]  Richard E. Fairley,et al.  Software Engineering Body of Knowledge (SWEBOK) , 2019 .

[30]  A. Strauss Basics Of Qualitative Research , 1992 .

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

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

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

[34]  Yuanfang Cai,et al.  Comparing four approaches for technical debt identification , 2014, Software Quality Journal.

[35]  Juan Garbajosa,et al.  A framework to aid in decision making for technical debt management , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[36]  Pekka Abrahamsson,et al.  Software product roadmapping in a volatile business environment , 2011, J. Syst. Softw..

[37]  Klaus Schmid On the limits of the technical debt metaphor some guidance on going beyond , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[38]  Davide Falessi,et al.  Towards an open-source tool for measuring and visualizing the interest of technical debt , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

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

[40]  Jürgen Döllner,et al.  Monitoring code quality and development activity by software maps , 2011, MTD '11.

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

[42]  Yuanfang Cai,et al.  Making the case for a "manufacturing execution system" for software development , 2014, CACM.

[43]  Jean-Louis Letouzey,et al.  Managing Technical Debt with the SQALE Method , 2012, IEEE Software.

[44]  André L. M. Santos,et al.  Applying Metrics to Identify and Monitor Technical Debt Items during Software Evolution , 2014, 2014 IEEE International Symposium on Software Reliability Engineering Workshops.

[45]  Lawrence Peters,et al.  Technical Debt: The Ultimate Antipattern - The Biggest Costs May Be hidden, Widespread, and Long Term , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

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

[47]  Thomas Bäck,et al.  What is the value of your software? , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[48]  Clemente Izurieta,et al.  A simulation study of practical methods for technical debt management in agile software development , 2014, Proceedings of the Winter Simulation Conference 2014.

[49]  Radu Marinescu,et al.  Assessing technical debt by identifying design flaws in software systems , 2012, IBM J. Res. Dev..

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

[51]  Manoel G. Mendonça,et al.  VisMinerTD - An Open Source Tool to Support the Monitoring of the Technical Debt Evolution using Software Visualization , 2015, ICEIS.

[52]  George Mastorakis,et al.  A Fluctuation-Based Modelling Approach to Quantification of the Technical Debt on Mobile Cloud-Based Service Level , 2015, 2015 IEEE Globecom Workshops (GC Wkshps).

[53]  Peng Liang,et al.  An empirical investigation of modularity metrics for indicating architectural technical debt , 2014, QoSA '14.

[54]  George M. Nixon,et al.  Practical Considerations of , 1945 .

[55]  Narayan Ramasubbu,et al.  Managing Technical Debt: Insights from Recent Empirical Evidence , 2015, IEEE Software.

[56]  Forrest Shull,et al.  Practical considerations, challenges, and requirements of tool-support for managing technical debt , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[57]  Apostolos Ampatzoglou,et al.  Estimating the breaking point for technical debt , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[58]  Robert L. Nord,et al.  In Search of a Metric for Managing Architectural Technical Debt , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[59]  Jean-Louis Letouzey,et al.  The SQALE method for evaluating Technical Debt , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[60]  Yuanfang Cai,et al.  A Decision-Support System Approach to Economics-Driven Modularity Evaluation , 2013, Economics-Driven Software Architecture.

[61]  Narayan Ramasubbu,et al.  Towards a model for optimizing technical debt in software products , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

[62]  Forrest Shull,et al.  Technical Debt: Showing the Way for Better Transfer of Empirical Results , 2013, Perspectives on the Future of Software Engineering.

[63]  Shirin Akbarinasaji Toward Measuring Defect Debt and Developing a Recommender system for their prioritization ∗ , 2015 .

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

[65]  David Moher,et al.  Few systematic reviews exist documenting the extent of bias: a systematic review. , 2008, Journal of clinical epidemiology.

[66]  George Mastorakis,et al.  Predicting and quantifying the technical debt in cloud software engineering , 2014, 2014 IEEE 19th International Workshop on Computer Aided Modeling and Design of Communication Links and Networks (CAMAD).

[67]  Peng Liang,et al.  Architectural Technical Debt Identification Based on Architecture Decisions and Change Scenarios , 2015, 2015 12th Working IEEE/IFIP Conference on Software Architecture.

[68]  Tony Gorschek,et al.  Software development in startup companies: A systematic mapping study , 2014, Inf. Softw. Technol..

[69]  Klaus Schmid A formal approach to technical debt decision making , 2013, QoSA '13.

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

[71]  Steve Tockey Aspects of Software Valuation , 2013, Economics-Driven Software Architecture.

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

[73]  Rami Bahsoon,et al.  CloudMTD: Using real options to manage technical debt in cloud-based service selection , 2013, 2013 4th International Workshop on Managing Technical Debt (MTD).

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

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

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

[77]  Juan Garbajosa,et al.  An Analysis of Techniques and Methods for Technical Debt Management: A Reflection from the Architecture Perspective , 2015, 2015 IEEE/ACM 2nd International Workshop on Software Architecture and Metrics.

[78]  Frank Buschmann,et al.  To Pay or Not to Pay Technical Debt , 2011, IEEE Software.

[79]  Peng Liang,et al.  Architectural Debt Management in Value-Oriented Architecting , 2013, Economics-Driven Software Architecture.

[80]  Jesse Yli-Huumo,et al.  The Sources and Approaches to Management of Technical Debt: A Case Study of Two Product Lines in a Middle-Size Finnish Software Company , 2014, PROFES.

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

[82]  Narayan Ramasubbu,et al.  Managing Technical Debt in Enterprise Software Packages , 2014, IEEE Transactions on Software Engineering.

[83]  Yuanfang Cai,et al.  Measuring architecture quality by structure plus history analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[84]  Antonio Martini,et al.  Identifying and visualizing Architectural Debt and its efficiency interest in the automotive domain: A case study , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[85]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.