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-05-14

Type of Experiement: Case Study
Sample Size: 7
Class/Experience Level: Other
Participant Selection: Apache open source projects that differ in scale, application domain, length of history, and many other project characteristics
Data Collection Method: Project Artifact(s)


This paper studies the causes of architectural debt and how to quantify such debts. Architectural Debt is defined as a group of architecturally connected files that incur high maintenance costs over time due to their flawed connections. The researchers used seven Apache open source projects to evaluate their method for identifying architectural debt. They found a significant portion (51% - 85%) of the maintenance effort in each project is spent paying interest on architectural debts. Just five architectural debts, representing a small portion of all error-prone files, consumed 20%-61% of the maintenance effort.

The results of the study suggest that discovering debts early on in the project lifespan and paying them down by refactoring could save significant costs in maintenance. The study also points out that a significant portion of the maintenance effort is done in just a few of the error-prone files. This means investing in refactoring small groups of files could lead to large benefits.