Abstract

During software evolution technical debt (TD) follows a constant ebb and flow, being incurred and paid back, sometimes in the same day and sometimes ten years later. There have been several studies in the literature investigating how technical debt in source code accumulates during time and the consequences of this accumulation for software maintenance. However, to the best of our knowledge there are no large scale studies that focus on the types of issues that are fixed and the amount of TD that is paid back during software evolution. In this paper we present the results of a case study, in which we analyzed the evolution of fifty-seven Java open-source software projects by the Apache Software Foundation at the temporal granularity level of weekly snapshots. In particular, we focus on the amount of technical debt that is paid back and the types of issues that are fixed. The findings reveal that a small subset of all issue types is responsible for the largest percentage of TD repayment and thus, targeting particular violations the development team can achieve higher benefits.

Highlights

  • IntroductionTechnical Debt (TD) is a powerful metaphor that represents shortcuts taken in a software development project, usually to meet business goals such as limited time or budget [1]

  • Our study aims at addressing the following five research questions (RQs): 1) How does the issue fixing rate vary for different projects? The goal of this research question is to investigate whether software development practices differ with respect to technical debt (TD) repayment among projects

  • Development teams can act on Technical Debt by removing issues and inefficiencies

Read more

Summary

Introduction

Technical Debt (TD) is a powerful metaphor that represents shortcuts taken in a software development project, usually to meet business goals such as limited time or budget [1]. Technical debt concerns mostly invisible parts of the system (i.e. no visible features or defects) that have a detrimental effect on the maintainability and evolvability of software [1]. Technical Debt cannot realistically be eliminated but it does need to be proactively managed in order to be kept at a sustainable level [2]. Monitoring technical debt aims to identify trends in the evolution of TD and alert the development teams in case certain TD items increase beyond a threshold, or even worse grow out of control. In that sense monitoring helps to identify and prioritize repayment actions where TD items are resolved (e.g. through refactoring)

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call