Technical debt denotes shortcuts taken during software development, mostly for the sake of expedience. When such shortcuts are admitted explicitly by developers (e.g., writing a TODO/Fixme comment), they are termed as Self-Admitted Technical Debt or SATD. There has been a fair amount of work studying SATD management in Open Source projects, but SATD in industry is relatively unexplored. At the same time, there is no work focusing on developers' perspectives towards SATD and its management. To address this, we conducted an exploratory case study in cooperation with an industrial partner to study how they think of SATD and how they manage it. Specifically, we collected data by identifying and characterizing SATD in different sources (issues, source code comments and commits) and carried out a series of interviews with 12 software practitioners. The results show: 1) the core characteristics of SATD in industrial projects; 2) developers' attitudes towards identified SATD and statistics; 3) triggers for practitioners to introduce and repay SATD; 4) relations between SATD in different sources; 5) practices used to manage SATD; 6) challenges and tooling ideas for SATD management.
翻译:技术债务是指软件开发期间采取的捷径,主要是为了权宜之计。当开发商明确接受这些捷径(例如,撰写TODO/Fixme评论)时,这些捷径被称为自发技术债务或SATD。在开放源码项目中,对SATD管理进行了相当数量的研究,但工业中的SATD相对没有探索。与此同时,对于开发商对SATD及其管理的观点没有进行重点研究。为了解决这个问题,我们与一个工业伙伴合作进行了一项探索性案例研究,研究他们如何看待SATD及其管理。具体地说,我们通过在不同来源(问题、源码评论和承诺)中确定和定性SATD,收集了数据,并对12名软件从业者进行了一系列访谈。结果显示:(1) SATD在工业项目中的核心特点;(2) 开发商对已查明的SATD和统计数据的态度;(3) 激励从业者介绍和偿还SATD;(4) 不同来源的关系;(5) 管理SATD的做法;(6) SATD管理的挑战和工具。