Quality Debt
Purpose
Quality Debt metric shows an approximate estimated effort (in man-hours) for a team to fix all open defects. For ease of effort prioritization - it's sliced by Priorities.
How metric helps
Quality Debt value helps to understand how much time is required to invest into a system functional stability. If bugs are ignored, the system shows unpredictable behavior, experiences errors, crashes. So, while it is hardly possible to eliminate the quality debt on a project completely, it still makes sense to keep an eye on its amount - to prevent a quality degradation e.g. upon an unplanned release.
Some ways to prevent defects:
Have a dedicated Testing capacity in a project team (manual, automated, or mix, or both);
Apply test-driven development principles;
Introduce continuous integration approach;
Do not neglect documentation (specifications, test cases).
Required prerequisites
As this metric uses historical efforts on bug fixing to forecast future efforts, there are several required bullets for it to work properly:
There are some fixed defects on a project, otherwise it's not possible to determine historical efforts on a bug fixing (i.e. from "nothing")
A team logs spent man-hours for fixed defects on a project, otherwise it's not possible to determine historical efforts on a bug fixing
There are at least some open defects on a project, otherwise it's hardly possible to apply calculated historical averages to "nothing".
How metric works
Chart overview
Chart shows efforts in hours to eliminate defects by priority (colored segments) and a total required effort (a central number). Chart can show efforts for the whole project (by default) or for a particular release - according to the selection in the drop down. Additional info is provided on hover over a segment:
Priority
Fixed defects
Fixed defects number of a selected priority
Effort required to fix defects of a selected priority in the past
Average effort required to fix a defect of a selected priority in the past
Open defects
Open defects number with estimates
Effort required to fix a defect of a selected priority based on remaining effort
Open defects number without estimates
Effort required to fix a defect of a selected priority based on the past experience
By click on a colored segment - defects of a particular priority - a pop up appears with the following information obtained from the task tracking system:
Defect ID
Type
Priority
Summary
Quality Debt per Release
By default, a chart shows information without a segmentation per release.
In case if a particular release is chosen, it allows viewing a quality debt only for defects assigned into that release.
Calculation
Total time to eliminate all defects:
QD = Σ (Ndp1*Trem.d.p1 + Ndp2*Trem.d.p2+ .. Ndpi*Trem.d.pi) + Σ (Ndp1*Tavg.d.p1 +Ndp2*Tavg.d.p2 + .. +Ndpi*Tavg.d.pi )
To know a percentage of time required to eliminate defects of a particular priority (a colored sector):
QD = ( Σ (Ndp1*Trem.d.p1 + Ndp2*Trem.d.p1 + .. Ndpi*Trem.d.pi) + Σ (Ndp1*Tavg.d.p1 +Ndp2*Tavg.d.p2 + .. +Ndpi*Tavg.d.pi )) / QD
where
QD - Quality Debt - overall effort required to eliminate defects of all priorities;
Trem. - for a defect with estimated effort: remaining time to fix a defect of a considered priority;
Tavg. - for a defect without estimated effort: average time to fix a defect of a considered priority calculated as:
Tavg. = ΣTlog/Ndef
where
Tlog- logged time for closed defects of this priority till today;
Ndef - number of closed defects of this priority till today. For optimistic view defects with zero efforts are included into the calculation. For a regular Quality Debt zero efforts are not included, this's why it's usually bigger than an optimistic value.
Defects are grouped into releases by 'Fixed release' field.
RAG thresholds: n/a.
Data Source
Data for the metric can be collected from a task tracking system (Jira, TFS, Rally, etc.)