Prioritizing design debt investment opportunities

  • Authors:
  • Nico Zazworka;Carolyn Seaman;Forrest Shull

  • Affiliations:
  • Fraunhofer Center for Experimental Software Engineering, College Park, MD, USA;University of Maltimore at Baltimore County, Baltimore, MD, USA;Fraunhofer Center for Experimental Software Engineering, College Park, MD, USA

  • Venue:
  • Proceedings of the 2nd Workshop on Managing Technical Debt
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Technical debt is the technical work developers owe a system, typically caused by speeding up development, e.g. before a software release. Approaches, such as code smell detection, have been developed to identify particular kinds of debt, e.g. design debt. Up until now, code smell detection has been used to help point to components that need to be freed from debt by refactoring. To date, a number of methods have been described for finding code smells in a system. However, typical debt properties, such as the value of the debt and interest rate to be paid, have not been well established. This position paper proposes an approach to using cost/benefit analysis to prioritize technical debt reduction work by ranking the value and interest of design debt caused by god classes. The method is based on metric analysis and software repository mining and is demonstrated on a commercial software application at a mid-size development company. The results are promising: the method helps to identify which refactoring activities should be performed first because they are likely to be cheap to make yet have significant effect, and which refactorings should be postponed due to high cost and low payoff.