TY - JOUR
T1 - On the value of a prioritization scheme for resolving Self-admitted technical debt
AU - Mensah, Solomon
AU - Keung, Jacky
AU - Svajlenko, Jeffery
AU - Bennin, Kwabena Ebo
AU - Mi, Qing
N1 - Publisher Copyright:
© 2017 Elsevier Inc.
PY - 2018/1
Y1 - 2018/1
N2 - Programmers tend to leave incomplete, temporary workarounds and buggy codes that require rework in software development and such pitfall is referred to as Self-admitted Technical Debt (SATD). Previous studies have shown that SATD negatively affects software project and incurs high maintenance overheads. In this study, we introduce a prioritization scheme comprising mainly of identification, examination and rework effort estimation of prioritized tasks in order to make a final decision prior to software release. Using the proposed prioritization scheme, we perform an exploratory analysis on four open source projects to investigate how SATD can be minimized. Four prominent causes of SATD are identified, namely code smells (23.2%), complicated and complex tasks (22.0%), inadequate code testing (21.2%) and unexpected code performance (17.4%). Results show that, among all the types of SATD, design debts on average are highly prone to software bugs across the four projects analysed. Our findings show that a rework effort of approximately 10 to 25 commented LOC per SATD source file is needed to address the highly prioritized SATD (vital few) tasks. The proposed prioritization scheme is a novel technique that will aid in decision making prior to software release in an attempt to minimize high maintenance overheads.
AB - Programmers tend to leave incomplete, temporary workarounds and buggy codes that require rework in software development and such pitfall is referred to as Self-admitted Technical Debt (SATD). Previous studies have shown that SATD negatively affects software project and incurs high maintenance overheads. In this study, we introduce a prioritization scheme comprising mainly of identification, examination and rework effort estimation of prioritized tasks in order to make a final decision prior to software release. Using the proposed prioritization scheme, we perform an exploratory analysis on four open source projects to investigate how SATD can be minimized. Four prominent causes of SATD are identified, namely code smells (23.2%), complicated and complex tasks (22.0%), inadequate code testing (21.2%) and unexpected code performance (17.4%). Results show that, among all the types of SATD, design debts on average are highly prone to software bugs across the four projects analysed. Our findings show that a rework effort of approximately 10 to 25 commented LOC per SATD source file is needed to address the highly prioritized SATD (vital few) tasks. The proposed prioritization scheme is a novel technique that will aid in decision making prior to software release in an attempt to minimize high maintenance overheads.
KW - Open source projects
KW - Prioritization scheme
KW - Self-admitted technical debt
KW - Source code comment
KW - Textual indicators
UR - http://www.scopus.com/inward/record.url?scp=85031008685&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2017.09.026
DO - 10.1016/j.jss.2017.09.026
M3 - Article
AN - SCOPUS:85031008685
SN - 0164-1212
VL - 135
SP - 37
EP - 54
JO - Journal of Systems and Software
JF - Journal of Systems and Software
ER -