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

Technical debt refers to taking shortcuts to achieve short-term goals, which might negatively influence software maintenance in the long-term. There is increasing attention on technical debt that is admitted by developers in source code comments (termed as self-admitted technical debt or SATD). But SATD in issue trackers is relatively unexplored. We performed a case study, where we manually examined 500 issues from two open source projects (i.e. Hadoop and Camel), which contained 152 SATD items. We found that: 1) eight types of technical debt are identified in issues, namely architecture, build, code, defect, design, documentation, requirement, and test debt; 2) developers identify technical debt in issues in three different points in time, and a small part is identified by its creators; 3) the majority of technical debt is paid off, 4) mostly by those who identified it or created it; 5) the median time and average time to repay technical debt are 25.0 and 872.3 hours respectively.

[1]  Ipek Ozkaya,et al.  Managing Technical Debt in Software Engineering (Dagstuhl Seminar 16162) , 2016, Dagstuhl Reports.

[2]  R. Grissom,et al.  Effect sizes for research: A broad practical approach. , 2005 .

[3]  Forrest Shull,et al.  Identification and management of technical debt: A systematic mapping study , 2016, Inf. Softw. Technol..

[4]  Emad Shihab,et al.  An Exploratory Study on Self-Admitted Technical Debt , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[5]  H. B. Mann,et al.  On a Test of Whether one of Two Random Variables is Stochastically Larger than the Other , 1947 .

[6]  Austen Rainer,et al.  Case Study Research in Software Engineering - Guidelines and Examples , 2012 .

[7]  Rini van Solingen,et al.  Goal Question Metric (GQM) Approach , 2002 .

[8]  Mary Popeck,et al.  Got Technical Debt? Surfacing Elusive Technical Debt in Issue Trackers , 2016, 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR).

[9]  Alexander Serebrenik,et al.  An Empirical Study on the Removal of Self-Admitted Technical Debt , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[10]  Eric Allman,et al.  Managing technical debt , 2012, Commun. ACM.

[11]  Emad Shihab,et al.  Detecting and quantifying different types of self-admitted technical Debt , 2015, 2015 IEEE 7th International Workshop on Managing Technical Debt (MTD).

[12]  Alexander Serebrenik,et al.  Was Self-Admitted Technical Debt Removal a Real Removal? An In-Depth Perspective , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

[13]  J. Fleiss,et al.  The measurement of interrater agreement , 2004 .

[14]  Ahmed E. Hassan,et al.  A qualitative study on performance bugs , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[15]  Philippe Kruchten,et al.  Detecting Technical Debt through Issue Trackers , 2017, QuASoQ@APSEC.

[16]  Rodrigo O. Spínola,et al.  Towards an Ontology of Terms on Technical Debt , 2014, 2014 Sixth International Workshop on Managing Technical Debt.