Technical debt (TD) is a metaphor that has been used to communicate the consequences of poor software development practices. In recent years, the concept has gained significant attention in agile software development (ASD) owing to its economic implications and the specific characteristics of ASD which make it prone to incurring TD.
The main purpose of this study is identifying the state of the art by structuring and classifying the body knowledge of TD within the context of ASD. This study aims to determine research areas investigating TD within the context of ASD, research types and methods employed, distribution of contributions, definitions, causes and consequences of incurring TD in ASD. It also identifies technical debt management (TDM) strategies applied in ASD and explores research gaps in the area.
A systematic mapping study was conducted following the systematic literature review (SLR) guidelines by Kitchenham et al., 2007 and the systematic mapping (SM) guidelines by Peterson et al., 2008 to identify, structure and classify the existing literature of TD within the context of ASD.
There were a total of 37 primary studies among which 68% constituted empirical studies, while 27% were theoretical and the other 5% constituted both. Evaluation, experience and solution proposal papers were the most popular research types undertaken in the area. There were 5 research focus areas of interest, 5 categories regarding TD definitions, 8 categories regarding causes and 5 categories regarding consequences of incurring TD in ASD. Additionally, there were 12 different strategies of managing TD within the context of ASD. Regarding the research focus areas managing TD in ASD received the biggest attention followed by architecture in ASD and its relationship with TD. In general, most definitions of TD in ASD reflect consequences of poor software development practices. While considering causes of TD in ASD, pure focus on quick delivery and architectural and design issues, were found as the most popular reasons, followed by lack of understanding of the system being built and inadequate test coverage. Reduced productivity, system degradation, and increased maintenance cost were identified as significant consequences of incurring TD in ASD. Refactoring and enhancing the visibility of TD were the most significant TDM strategies in ASD.
The findings of this systematic mapping provide an insight into the state of the art of TD within the context of ASD, and also present structured knowledge on TD and TDM in ASD for practitioners. Inconsistencies observed in the definitions of TD indicate the need for further work to clarify the concept and its values in ASD. Additionally, more empirical studies should be conducted in industrial settings and more? TDM practices and alternative solutions should be reported in the future. Regarding the quality of reporting in the studies, researchers should focus on improving the rigor of their studies to have more transferable knowledge applicable both to academia and industry. Emphasis should also be given to investigate TDM strategies and the role of architecture in ASD with respect to TD.
Woubshet Behutiye (University of Oulu): Analyzing the concept of technical debt in the context of agile software development : a systematic mapping study