A human mistake or machine error introduces a defect in an application or related work product. We analyze Defects to determine their root causes to reduce the occurrence of similar defects in the future.
The root causes of defects are the earliest actions or conditions that contributed to creating the defects. The root cause is a source of a defect such that if the root cause is removed, the occurrence of a similar defect will decrease.
Root Causes Examples
Typical root causes of defects are:
- Unclear, Missing, or Wrong Requirements
- Logical Errors
- Data Errors
- Incorrect Design
- Environment Issue
- Time Pressure etc.
Root Cause Types
You can also categorize root causes in three types:
- Human cause: lack of skills or knowledge
- Organizational cause: poor management or organizational strategies
- Physical cause: hardware failure or equipment malfunction
What is Root Cause Analysis
Root Cause Analysis is done to identify the root cause of defects and to prevent the future reoccurrence of similar defects. Root cause analysis also leads to process improvement. We can use different techniques and software for root cause analysis.
Root Cause Analysis Techniques
Some of the techniques used for root cause analysis are:
- Fishbone Analysis
- The 5 Whys Technique
- Pareto Chart
- Scatter Diagrams
- Affinity Diagram
- Failure Mode and Effects Analysis (FMEA)
- Fault Tree Analysis (FTA)
Example Scenario: Defects Root Causes and Effects
Let's understand defects, root cause, and effect with the help of an example. In a Banking System, a Business Analyst gathers the requirement for EMI calculation and writes down formulas for it. The developer implemented the formula, and testers verified it. Later, we got complaints from customers that their EMIs were calculated wrong. Here:
- Effect: Customer Complaint
- Defect: Wrong EMI Calculation
- Root Cause: During root cause analysis, you found that Business Analyst wrote the formula incorrectly, and the product owner approved the story without looking at the formula carefully. The root cause of the defect is Incorrect Requirements gathering due to a lack of domain knowledge or human errors.