Identifying and Quantifying Architectural Debt

Author(s): Lu Xiao, Yuanfang Cai, Rick Kazman, Ran Mo, Qiong Feng
Venue: International Conference on Software Engineering
Date: 2016

Type of Experiement: Survey/Multi-Case Study
Sample Size: 7
Class/Experience Level: Other
Participant Selection: Open-source projects different in scale, application domain, length of history, and other project characteristics were randomly selected
Data Collection Method: Observation, Code Metric


This paper investigates the relationship between architectural debt and error-prone source files. The authors looked at 7 large open source projects, identified areas of architectural debt, and measured the amount of maintenance spent on them. They identified architectural debt using novel history model—the History Coupling Probability (HCP) matrix—to approximate the probabilities of change propagation among files, and defined 4 patterns based on the HCP matrix to capture problematic architectural connections among files. They found that architectural debts consume 85% of the total project maintenance effort, and the top 5 architectural debts in each of the 7 projects consume 20% to 61% of each project’s maintenance effort. However, these architectural debts only contain a small portion of each project’s error-prone files (8% to 25%). This means that investing in refactoring small groups of files could reap large benefits.

Finally, the authors quantified the growing trend of maintenance costs for each debt. They found that half of the debts grow linearly, meaning that developers pay a consistently increasing penalty on these debts in every release. The authors qualitatively illustrate how architectural issues incur more maintenance costs and evolve into debts over time.