There is a newer version of the record available.

Published January 18, 2022 | Version v1

Technical Debt Prioritization: A Developer's Perspective

  • 1. University of São Paulo
  • 2. University Maryland, Baltimore County

Description

Background: The prioritization of technical debt is an essential 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 understand 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 software projects in order to reach a large and diverse set of experiences. 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.

Files

answers.csv

Files (207.9 kB)

Name Size Download all
md5:c59a7a89d316b49da20b7c6049a1c709
206.6 kB Preview Download
md5:d394fe195b3d120a1043120670107c42
1.3 kB Preview Download