The Contributor Friction Index (CFI) is a DETANGLE® Architecture Health Factor metric about the modularity of the code base with respect to the separability of contributions per developer. The more friction there is by overlapping work of developers, the lower the modularity of the codebase.
It is based on issue types selected by the “Features” filter and the contributions of developers when implementing these issues. This category filter is normally used to select the issue types which capture the functionality (e.g. user stories or features) as “functional” issues of your system in your issue tracker.
CFI measures the coupling and cohesion of contributors’ code work (when implementing “functional” issues) across the whole codebase and during the last time period.
The more contributors there are to a file due to “functional” issues , the less separable the code is over the contributors, the more each contributor feels less responsible for that file and the lower its Contributor Cohesion.
In addition to Contributor Cohesion, DETANGLE® also measures Contributor Coupling. The more contributors work on a set of files in a chaotic and irregular way to implement some “functional” issues,
- the more blurred their coding style and comprehensibility,
- and the higher the Contributor Coupling of these files and their error-proneness are.
The Contributor Friction Index combines the Contributor Coupling and Cohesion values across all files to one index which represents an Architecture Health Factor Index across all functional issues and all of the code base.
It is calculated for single files, for folders or single “functional” issues and the whole system. The displayed icons follow certain thresholds along the Contributor Friction Index values for the system or for folders:
- 👎 CFI exceeds the value of 25, i.e. the system has reached a critical CFI level.
- ⚠️ CFI has passed the threshold value of 15 in the last time period, i.e. the system CFI has reached warning level.
- 👍 CFI is lower than 10 and is in a normal state.
Only the contributors’ work on “functional” issues is considered when calculating these contributor metrics for two reasons:
- it is quite often the case that bug-fixes represent smaller effort (compared to implementing “functional” issues) and and bug-fixing is distributed across many developers for several reasons (e.g. due to the high priority of fixing them or being a means of fast knowledge ramp up for new developers)
- in order to independently show the error-proneness and maintenance effort spent on files and folders with high CFI values, it is necessary to exclude any work on defects from calculating CFI values
The Contributor Friction Index is calculated for single files, for folders or single contributors and the whole system:
Granularity/ Health Factors |
per
bug |
per
“functional” issue |
per
contri- butor |
per
file |
per
folder |
per
entire system |
Feature Debt Index | x | x | x | x | ||
Contributor Friction Index | x | x | x | x | ||
Defect Impact | x | x | x | x | ||
Defect Density | x | x | x | x | ||
Team Effectiveness | x | x | x | x | ||
Bus Factor
Islands |
x | x | x | x | ||
Bus Factor Balances | x | x | x | x |
Take a look at DETANGLE® Metrics at a Glance for an overview of all metrics.