It's been more than a year now since I've set up our bug tracking in JIRA. In there, I've set up an Issue Root Cause custom field where it had the following options:
- Incorrect coding
- Unclear / Missing / Incorrect Requirements
- Unclear / Missing / Incorrect Design
- Insufficient / Duplicated / Incorrect Testing
- Deployment Issue
- Environment
- Third-party issue
Recently, I've been reading a few articles regarding Shift Left, reducing silos, and generally how quality is a team activity instead of it being a responsibility of one department only. Now that I'm looking at the list I realize that:
When I pull data from the bugs we've raised, the number of bugs that show for each root cause item didn't really tell me anything apart from which team might have caused the bug.
The keyword is "might". Because Incorrect coding isn't simply because the developers deviated fro the requirement. What I'd really want to know is the why? Why did they deviate from the requirement? It's not like our developers are rebels and disregard input from our product and design team right? The possible reasons why they made it incorrectly could be:
- Dev and QA had a different understanding of the requirement, and the QA was correct.
- There was a change in the requirement and they weren't aware of it.
- The scenario doesn't happen in the common flows (could be due to different data, or something that we didn't foresee could happen)
- Maybe yes, they simply skipped over a requirement and missed a detail which caused the deviation.
- Deviation from requirement/design
- Mismatched expectations due to lack of clear communication
- Unexpected/unforeseen scenario
- Deployment Issue
- Environment
- Third-party issue
- Possible outcome from this root cause: We can see how much are really from simple mistakes like these then we can try to find ways to reduce these.
- Possible outcome from this root cause: We can start looking into the gaps in how we communicate, and think of how we can improve it.
- Possible outcome from this root cause: The next question is another "why"? Why was it unforeseen? Could it have been avoided if we had taken more time to analyze the supplier data? Could it have been avoided if we asked someone who actually knew this could happen? And if it was really unforeseen, then so be it, and let's take it as a learning experience.