Root Cause Analysys (RCA)
Performing a root cause analysis (RCA) in a software development team is vital for effective problem-solving and continuous improvement. RCA helps identify the underlying causes of issues, enabling the team to address them directly instead of treating symptoms. By understanding the root causes, the team can implement corrective actions and preventive measures, reducing the likelihood of recurrence. This optimization of resources improves productivity and efficiency. RCA also provides a valuable learning opportunity, enhancing skills and knowledge within the team. Ultimately, RCA promotes development team confidence by demonstrating a proactive approach to problem-solving and delivering high-quality software products.
To implement this process effectively:
Once the bug has been fixed, the developer needs to exercise the 5 "Whys”in order to found the real root cause.
Identify the classification of the root cause according to the list below and add the root case as a label on Jira.
Raise to the team in case you have it difficulty to identify or if you find that we could create a new one.
Use the root cause notes field on Jira to explain better the reasons.
If it is possible think about how we could avoid that this issue happens again.
Root cause list definition
Incomplete or erroneous specification
LABEL - RC_INCOMPLETE_SPECIFICATION
Acceptance criteria incorrect or missing;
Acceptance criteria not well described;
Eg: Bug happens because there was a functionality that was not specificated.
Misinterpretation of customer communication
LABEL - RC_CUSTOMER_MISSINTERPRETATION
Client did not sent all the information needed;
We misinterpreted the criteria sent by the client;
Eg: Client want it green but we understood blue.
Intentional deviation from specifications
LABEL - RC_DEVIATION_SPECIFICATIONS
Some members of the team aligned a change but forgot to aligned with everyone;
Eg: Due to technical limitations and compatibility, the team changed the behavior of the button to turn it to red when clicking and not blue as requested by the client. But this was not communicated at all team.
Violations of programming standards
LABEL - RC_CODE_REVIEW
Code review;
Eg: Best Practices, Coding Standards and Security or Performance issues.
Inconsistent component interface
LABEL - RC_INCONSISTENT_INTERFACE
Some interface element of a third part application that was not well integrated with the site;
Some third part application used on the site that change its parameters and break out site;
Eg: Youtube thumbnail did not have the correct resolution on our site.
Inaccurate or inconsistent documentation
LABEL - RC_DOCUMENTATION_PROBLEMS
Incorrect or incomplete documentation of an application used;
Incorrect or incomplete documentation of the site previously made;
Eg: assets/psd/copy deck provided by client is inconsistent or incorrect. Or an update on documentation was sent but the team was not aware (not updated on Jira/ acceptance criteria).
Error in design logic (EDL)
LABEL - RC_WRONG_SOLUTION_DESIGN
Issue on Logic of code and layout structure, technical solution;
Not following technical solution that was aligned;
Eg: The technical solution implemented did not reach the best logic and caused bugs in the system or the technical solution reached only part of its objective.
As a member of the team was not on the story opening, he made a technical solution different from what was aligned making a bug.
Error in programming language translation of design
LABEL - RC_REQUIREMENTS_NOT_FOLLOWED
Wrong development;
Wrong way to execute the change. The strategy to implement (tech grooming) was correct, but during the implementation, something was wrong developed;
Eg: The task was to create a new field called “Privacy Policy” but it was developed as “Privacy Police”.
The documentation was correct, but the developer did not follow some of the items like copy deck, tech grooming or parts of the process as an all and caused a bug in the system