Characterizing and Mitigating Self-Admitted Build Debt

02/19/2021
by   Tao Xiao, et al.
0

Technical Debt is a metaphor used to describe the situation in which long-term code quality is traded for short-term goals in software projects. In recent years, the concept of self-admitted technical debt (SATD) was proposed, which focuses on debt that is intentionally introduced and described by developers. Although prior work has made important observations about admitted technical debt in source code, little is known about SATD in build systems. In this paper, we coin the term Self-Admitted Build Debt (SABD) and through a qualitative analysis of 500 SABD comments in the Maven build system of 300 projects, we characterize SABD by location and rationale (reason and purpose). Our results show that limitations in tools and libraries, and complexities of dependency management are the most frequent causes, accounting for 49 of the comments. We also find that developers often document SABD as issues to be fixed later. To automate the detection of SABD rationale, we train classifiers to label comments according to the surrounding document content. The classifier performance is promising, achieving an F1-score of 0.67-0.75. Finally, within 16 identified 'ready-to-be-addressed' SABD instances, the three SABD submitted by pull requests and the five SABD submitted by issue reports were resolved after developers were made aware. Our work presents the first step towards understanding technical debt in build systems and opens up avenues for future work, such as tool support to track and manage SABD backlogs.

READ FULL TEXT

page 6

page 13

research
07/03/2020

Identification and Remediation of Self-Admitted Technical Debt in Issue Trackers

Technical debt refers to taking shortcuts to achieve short-term goals, w...
research
01/28/2019

Wait For It: Identifying "On-Hold" Self-Admitted Technical Debt

Self-admitted technical debt refers to situations where a software devel...
research
03/20/2020

Beyond the Code: Mining Self-Admitted Technical Debt in Issue Tracker Systems

Self-admitted technical debt (SATD) is a particular case of Technical De...
research
03/24/2021

Data Balancing Improves Self-Admitted Technical Debt Detection

A high imbalance exists between technical debt and non-technical debt so...
research
03/13/2023

Automatically Identifying Relations Between Self-Admitted Technical Debt Across Different Sources

Self-Admitted Technical Debt or SATD can be found in various sources, su...
research
09/07/2021

FixMe: A GitHub Bot for Detecting and Monitoring On-Hold Self-Admitted Technical Debt

Self-Admitted Technical Debt (SATD) is a special form of technical debt ...
research
04/16/2023

Automated Self-Admitted Technical Debt Tracking at Commit-Level: A Language-independent Approach

Software and systems traceability is essential for downstream tasks such...

Please sign up or login with your details

Forgot password? Click here to reset