Self-Admitted Technical Debt

Reviewed by Greg Wilson / 2023-03-16
Keywords: Technical Debt

The word "FIXME" appears 18 times in the source code of a small open source project I contribute to, and almost exactly the same number of times in the much larger code base I help develop in my job. Is that just a coincidence, or does it mean that I'm comfortable with a fixed amount of technical debt in any project regardless of size? Alternatively, does the lower density of "FIXME" comments at work imply that I'm less comfortable with technical debt on the job? All three explanations are plausible, and each one might be true under different circumstances.

The authors of this study found more similarities than differences between industry and open source when it comes to self-admitted technical debt. They also turned up a fourth possible explanation: that developers might be less comfortable admitting technical debt when it might affect their careers. Insights like this are why our profession needs empirical studies: not just to test ideas, but to suggest new ones.

Fiorella Zampetti, Gianmarco Fucci, Alexander Serebrenik, and Massimiliano Di Penta. Self-admitted technical debt practices: a comparison between industry and open-source. Empirical Software Engineering, Sep 2021. doi:10.1007/s10664-021-10031-3.

Self-admitted technical debt (SATD) consists of annotations, left by developers as comments in the source code or elsewhere, as a reminder about pieces of software manifesting technical debt (TD), i.e., "not being ready yet". While previous studies have investigated SATD management and its relationship with software quality, there is little understanding of the extent and circumstances to which developers admit TD. This paper reports the results of a study in which we asked developers from industry and open source about their practices in annotating source code and other artifacts for self-admitting TD. The study consists of two phases. First, we conducted 10 interviews to gather a first understanding of the phenomenon and to prepare a survey questionnaire. Then, we surveyed 52 industrial developers as well as 49 contributors to open-source projects. Results of the study show how the TD annotation practices, as well as the typical content of SATD comments, are very similar between open-source and industry. At the same time, our results highlight how, while open-source code is spread of comments admitting the need for improvements, SATD in industry may be dictated by organizational guidelines but, at the same time, implicitly discouraged by the fear of admitting responsibilities. Results also highlight the need for tools helping developers to achieve a better TD awareness.