Conference Paper

Rework Effort Estimation of Self-admitted Technical Debt.

Solomon Mensah, Jacky W. Keung, Michael Franklin Bosu, Kwabena Ebo Bennin
QuASoQ/TDA@APSEC 2016 conf/apsec/MensahKBB16

Abstract

Programmers sometimes leave incomplete, temporary workarounds and buggy codes that require rework. This phenomenon in software development is referred to as Selfadmitted Technical Debt (SATD). The challenge therefore is for software engineering researchers and practitioners to resolve the SATD problem to improve the software quality. We performed an exploratory study using a text mining approach to extract SATD from developers' source code comments and implement an effort metric to compute the rework effort that might be needed to resolve the SATD problem. The result of this study confirms the result of a prior study that found design debt to be the most predominant class of SATD. Results from this study also indicate that a significant amount of rework effort of between 13 and 32 commented LOC on average per SATD prone source file is required to resolve the SATD challenge across all the four projects considered. The text mining approach incorporated into the rework effort metric will speed up the extraction and analysis of SATD that are generated during software projects. It will also aid in managerial decisions of whether to handle SATD as part of on-going project development or defer it to the maintenance phase. Keywords-Self-admitted Technical Debt; Rework Effort; Text Mining; Source code comments; Source code analysis I. INTRODUCTION The increasing pressure to deliver fast software products to customers sometimes forces project managers to impose unrealistic deadlines on their developers. As a result, these developers intentionally commit incomplete code, buggy code and temporary fixes in order to meet the expectation of their customers. This practice could produce errors which might require rework. These intentional or self-admitted errors are assumed as mistakes by the software development team. Potdar and Shihab [1] describe this phenomenon of weak software development process resulting in series of long-term overheads in the maintenance phase as Self-admitted Technical Debt (SATD). The debt metaphor is gradually becoming a research focus [1][3][5] with studies aimed at finding solutions for combating or minimizing the developers' coding errors and s

Keywords