Self-admitted technical debt (SATD) is a particular case of Technical Debt (TD) where developers explicitly acknowledge their sub-optimal implementation decisions. Previous studies mine SATD by searching for specific TD-related terms in source code comments. By contrast, in this paper we argue that developers can admit technical debt by other means, e.g., by creating issues in tracking systems and labelling them as referring to TD. We refer to this type of SATD as issue-based SATD or just SATD-I. We study a sample of 286 SATD-I instances collected from five open source projects, including Microsoft Visual Studio and GitLab Community Edition. We show that only 29% of the studied SATD-I instances can be tracked to source code comments. We also show that SATD-I issues take more time to be closed, compared to other issues, although they are not more complex in terms of code churn. Besides, in 45% of the studied issues TD was introduced to ship earlier, and in almost 60% it refers to Design flaws. Finally, we report that most developers pay SATD-I to reduce its costs or interests (66%). Our findings suggest that there is space for designing novel tools to support technical debt management, particularly tools that encourage developers to create and label issues containing TD concerns.
翻译:自认技术债务(SATD)是技术债务(TD)的一个特例,在这一特例中,开发商明确承认其次级最佳执行决定。以前的研究通过在源代码评论中寻找与TD有关的具体条款而发现SATD-I。相比之下,在本文中,我们争辩说,开发商可以通过其他手段承认技术债务,例如,在追踪系统上制造问题并将之标注为TDT。我们把这种类型的SATD称为基于问题的SATD或仅仅是SATD-I。我们研究了从包括微软视觉工作室和GitLab社区编辑在内的五个开放源项目中收集的286个SATD-I案例的样本。我们报告,只有29%的研究SATD-I案例可以追踪到源代码评论。我们还表明,与其它问题相比,SAPTD-I问题需要更多的时间才能解决,尽管在代码方面并不更为复杂。此外,在所研究的问题中,有45%的TD(TD-I)被介绍为船舶早些,而几乎有60%提到设计缺陷。最后,我们报告说,大多数开发商向STD-I支付SATD-I支持降低成本或利益,特别是技术工具。我们的调查结果表明,我们发现,研发者们制造工具。