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: Case Study
Sample Size: 7
Class/Experience Level: Professional
Participant Selection: Open source projects
Data Collection Method: Observation, Project Artifact(s)

Quality
4

Architectural debt as a model of the maintenance cost growth for such the files that compose the structure of a system. In the study, the authors take a look at 7 open source projects and determine the instances of architectural debt for each of them.

For all the projects a definition of architectural debt was created and then an algorithm created to go through all the projects and counting instances of architectural debt. After finding the instances they measured out how much debt was being created by these instances and then put them into regression models to determine their growing trends. After this, they're compared and ranked with each other to by order of their severity which was measured in the last step.

In the actual study with the 7 projects they found that architectural debt consumes 85% of efforts in maintaining the project. They also found that a majority of the effort was more heavy on the top side, where the top few had most of them. The third thing they found was the modularity of files was the main problem with architectural debt. The fourth was that the biggest architectural debts were focused on small groups of files.

Based on these findings they decided that refactoring the largest offenders in architectural debt would be the best option since it would yield the best results for the lowest effort.

To conclude, architectural debt in projects is a large problem in maintaining software and that most of these problems are found in the first few instances of architectural debt. In order to resolve this, more effort should be spent refactoring these few instances of large debt in order to reduce efforts spent in maintaining software.

0