An Exploratory Study on Self-Admitted Technical Debt
Authors:
- Aniket PotdarAPAniket Potdar
- Emad ShihabESEmad Shihab
Top Cited Papers
- 1 September 2014
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 10636773,p. 91-100
Abstract
Throughout a software development life cycle, developers knowingly commit code that is either incomplete, requires rework, produces errors, or is a temporary workaround. Such incomplete or temporary workarounds are commonly referred to as 'technical debt'. Our experience indicates that self-admitted technical debt is common in software projects and may negatively impact software maintenance, however, to date very little is known about them. Therefore, in this paper, we use source-code comments in four large open source software projects-Eclipse, Chromium OS, Apache HTTP Server, and ArgoUML to identify self-admitted technical debt. Using the identified technical debt, we study 1) the amount of self-admitted technical debt found in these projects, 2) why this self-admitted technical debt was introduced into the software projects and 3) how likely is the self-admitted technical debt to be removed after their introduction. We find that the amount of self-admitted technical debt exists in 2.4%-31% of the files. Furthermore, we find that developers with higher experience tend to introduce most of the self-admitted technical debt and that time pressures and complexity of the code do not correlate with the amount of self-admitted technical debt. Lastly, although self-admitted technical debt is meant to be addressed or removed in the future, only between 26.3%-63.5% of self-admitted technical debt gets removed from projects after introduction.Keywords
This publication has 12 references indexed in Scilit:
- Managing technical debtCommunications of the ACM, 2012
- @tComment: Testing Javadoc Comments to Detect Comment-Code Inconsistencies2012
- Lightweight Transformation and Fact Extraction with the srcML Toolkit2011
- Rework Requirement Changes in Software Maintenance2010
- Automatic Quality Assessment of Source Code Comments: The JavadocMiner2010
- Listening to programmers — Taxonomies and characteristics of comments in operating system code2009
- Toward an understanding of bug fix patternsEmpirical Software Engineering, 2008
- /*icommentACM SIGOPS Operating Systems Review, 2007
- Do Code and Comments Co-Evolve? On the Relation between Source Code and Comment Changes14th Working Conference on Reverse Engineering (WCRE 2007), 2007
- Examining the evolution of code comments in PostgreSQL2006