/
Defect Injection Rate

Defect Injection Rate

 

Overview

 

Overview

Applicability

Scrum-based projects

Definition (Hover Text)

Measures the total number of defects (bugs) linked to closed user stories of a sprint.

Source Tools

Jira, Azure Boards

Graph type

Line chart

Filters

<None>

Hover Format on KPI

Sprint Name: <<Percentage Value>>

Defects: <<Value>>

Closed Stories: <<Value>>

Fields on Explore Overlay

  1. Sprint Name

  2. Story ID

  3. Issue Description

  4. Linked Defects

Business Logic

Calculation Formula

No. of defects tagged to all stories closed in an iteration/ Total no. of stories closed in the iteration.

  1. Numerator :

    • This is the count of defects (bugs or issues) that were found in all the stories that were completed in a sprint.

  2. Denominator :

    • This is the total count of stories that were completed in the same sprint, regardless of whether they had defects or not.

  3. Quality Indicator: This metric shows the quality of the work done in a sprint. A lower defect rate means fewer issues were found, indicating higher quality work.

Example

Imagine your team completed 30 stories in a sprint. Out of these, 6 stories had defects. The Defect Rate would be:

Defect Rate=6 / 30 ​=0.2 or 20%

This means 20% of the completed stories had defects, which helps in understanding the quality of the work done during the sprint.


*Please note:- ‘stories’ denote units of work, not to be confused with ‘User Story’ issue type in Jira

KPI Settings

  1. Issue types to identify as Stories:

    1. Primary → ‘Issue types which will have linked defects’

    2. Secondary → 'Labels to identify issues to be included' can be used to filter the desired set of stories considered in primary setting

      image-20240703-143936.png
      image-20240703-144037.png

  2. Defects field mappings

    1. Priority to be excluded

    2. Root cause values to be included

  3. Workflow Status field mappings

    1. Resolution type to be excluded

    2. Status to be excluded

    3. Default start status for defects

    4. Statuses for issue closure (for both stories and defects)

*Please note:- Global mappings and default Jira statuses of sprint reports will apply if the KPI level settings are not used.

Trend

A downward trend in DIR is desirable. This means fewer defects are being injected over time.

Maturity Levels

DIR maturity is assessed by averaging data from the last 5 sprints. This helps in understanding the stability and improvement over time.
M1: > 175%

M2: 175% -125%

M3: 125%-75%

M4: 75-25%

M5: 25%
*Please note:- KPI widget denotes the average maturity over data points

Instance level thresholds

Target KPI Value denotes the bare minimum a project should maintain for a KPI.

Global Configurations- (Field Mapping)

Processor Fields

Whenever we update the defect mapping and issue type mapping, whether we add or remove any issue type, we must run the processor. This is necessary to show the changes in the KPI.

Defect Mapping :

 

Mandatory fields

 

Project Settings

  1. Navigate to Project Settings: Start by going to the Project Settings in your application.

  2. Access the Mapping Section: Within Project Settings, find and click on the Mapping option.

  3. Mandatory Field: In the Mapping section, you’ll find the Mandatory Field. This is where you’ll configure the necessary global mapping fields.

  4. Configure the Fields:

Defect Mapping :

  • Issue Type to identify Defect - all the issue type that signify defect

Issue type Mapping :

  • Issue type for subtask Defect - Any specified issue category will be treated as a subtask that is linked to a story.`

 

How to Validate KPI

Suggested ways of working

  1. Ensure Defects are Tagged to Stories:

    • Mandatory: All defects must be linked to user stories. since unlinked defects will not be considered

    • Sprint Closure: Ensure that these stories are closed within the same sprint.

  2. Include/Exclude Rejected, Dropped, or Abandoned Defects/Stories:

    • Include: If you want to include these defects/stories in your validation, ensure they are part of your JQL query.

    • Exclude: If you want to exclude them, modify your JQL query accordingly.

  3. The issues identified as stories and defects should belong to the sprints of the configured project scrum board

  4. Verify the sprint snapshots of closed sprints

Sample JQLs

project in ("XYZ") and component ="ABC" and type in (Defect) and issueFunction in linkedIssuesOf("type in (Story) AND sprint in(406)")

project in ("ABC") AND component = "xyz" AND type in (Defect) AND issueFunction in linkedIssuesOf("type in (Story) AND sprint in (40756)") AND status NOT IN (Rejected, Dropped, Abandoned)

Best Practices

Automate Testing

Implement automated testing (unit, integration, and end-to-end tests) to catch defects early in the development process.

Pair Programming

Implement pair programming to increase code quality and reduce the likelihood of defects being introduced.

Adopt TDD/BDD

Use Test-Driven Development (TDD) or Behavior-Driven Development (BDD) methodologies to write tests before code, ensuring that functionality is well-defined and tested from the start.

Use Static Analysis Tools

Implement static code analysis tools to automatically check code for potential defects and enforce coding standards.

 

 

Benefits of KPI

Quality Measurement

It helps in measuring the quality of the code being produced and identifying areas where improvements are needed.

Predictability

Understanding the defect injection rate can help in forecasting the amount of rework required and in planning more accurately.

Cost Reduction

Reducing the defect injection rate can lead to lower costs associated with fixing bugs, especially those found later in the development cycle or after release.

Process Improvement

By tracking this metric, teams can identify stages in the development process where defects are commonly introduced and take steps to improve those stages.

 

 

© 2022 Publicis Sapient. All rights reserved.