Published January 18, 2022 | Version v2

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 (345.5 kB)

Name Size Download all
md5:c59a7a89d316b49da20b7c6049a1c709
206.6 kB Preview Download
md5:fbe3b938c3f1796a73e40c410530ca4f
48.0 kB Preview Download
md5:d394fe195b3d120a1043120670107c42
1.3 kB Preview Download
md5:4eb4acca97cb3750fca352eed15a6167
89.6 kB Preview Download