An empirical assessment of technical debt practices in industry. Issue 10 (25th August 2017) - Codabux, Zadia; Williams, Byron J.; Bradshaw, Gary L.; Cantor, Murray
Abstract: Context: Technical debt refers to the consequences of taking shortcuts when developing software. These consequences can impede the software growth and have financial implications. The software engineering research community needs to explore technical debt further from a practitioner standpoint. Objective: This study gathers insights from practitioners on key components of technical debt such as its definition, characterization, consequences, benefits, and how it is communicated. Method: We conducted semi‐structured interviews with a convenience sample of 17 practitioners and a survey of 67 participants. Results: Despite the lack of consensus, we identified the most commonly accepted definition, method to measure technical debt (as person hours), and method to reduce debt (by allocating time in iterations to address the debt). Defects were also identified as type of debt and the cost of technical debt is more than the cost to make changes to source code. Three distinct company profiles emerged. Conclusion: Despite increasing research on technical debt, the field lacks consensus on its many facets. One interesting outcome of this study is how to assess the risks of technical debt by evaluating liabilities beyond costs of directly handling debt. Abstract : The results of this study contributed to the development of a technical debt management feature model which depicts a set of criteria for practitioners managing technical debt. Practitioners can choose items from the criteria as inputs to a decision‐making framework outlined in the paper to prioritize technical debt items. In addition, we identified several types of technical debt based on 3 broad categories: software related, technical areas, and organizational debt.