Technical Debt Prioritization: A Developer's Perspective

Date

2022-06-27

Department

Program

Citation of Original Publication

D. Pina, C. Seaman and A. Goldman, "Technical Debt Prioritization: A Developer's Perspective," 2022 IEEE/ACM International Conference on Technical Debt (TechDebt), 2022, pp. 46-55, doi: 10.1145/3524843.3528096.

Rights

© 2022 IEEE.  Personal use of this material is permitted.  Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.

Subjects

Abstract

Background: The prioritization of technical debt is an essen-tial task in managing software projects because, with current analysis tools, it is possible to find thousands of technical debt items in the software that would take months or even years to be fully paid. Aims: In this study, we aim to under-stand which criteria software developers use to prioritize code technical debt in real software projects. Methods: We performed a survey to collect data from open-source soft-ware projects in order to reach a large and diverse set of ex-periences. We analyzed the data using Straussian Grounded Theory techniques: open coding, axial coding, and selective coding. Results: We grouped the criteria into 15 categories and divided them into 2 super-categories related to paying off the technical debt and 3 related to not paying it. Conclusions: When participants decided to pay off technical debt, they wanted to do it soon. However, when they decided not to pay it, it is often because the debt occurred intentionally due to a project decision. Also, participants using similar criteria for their decisions tended to choose similar priority levels for those decisions. Finally, we observed that each software project needs to tailor the rules used to identify code technical debt to their project context.