/* Google Analytics ----------------------------------------------- */

Friday, June 5, 2009

Sonar: Technical Debt Plugin

The Technical Debt plugin is an advanced metric that combines existing quality axes (Duplication, Violations, Complexity, Coverage, Documentation) to output a global measure.

To make it easy to understand, this global indicator reports how much it would cost to bring all axis to maximum values (100% coverage...) and therefore reimburse the Technical Debt. The indicator is calculated in man days and in $$ (that is now really easy to understand, isn't it ?). Next to the technical debt appears the repartition of each quality axis.

Technical debt plugin dashboard image

Clicking on the debt brings to the usual drill down page showing modules / packages / classes most impacted

This plugin does not pretend to calculate in an exact manner the cost of reimbursement. Here are its primary objectives :
  • - enables to compare the projects global level of quality, rather than axis by axis
  • - help to understand what axis is going to cost most, thank to the repartition
Here is how the debt is currently calculated at resource level:

Debt(in man days): cost_to_fix_duplications + cost_to_fix_violations + cost_to_comment_public_API + cost_to_fix_uncovered_complexity + cost_to_bring_complexity_below_threshold

Having a weight on coding rules or being able to distinguish checkstyle, PMD and FIndbugs would add a lot accuracy