Root cause analysis is a well-defined process used to find the root cause of any issue in a Software Project.
As long as we don’t know the root cause of a problem, we will have to keep coming up with ways to perform fixes on the symptoms for damage control. When we figure out the root cause, we can directly fix it and put it all behind us once for all.
Different Types of Issues
-
Human
These errors are human-made and can occur because the people involved in work are not skilled enough for the role. It can also occur when instructions are not duly followed or an unnecessary operation is performed.
-
Organization
Issues can sometimes be caused due to improper decision making processes set up in the organization. For instance, the team lead may have given vague instructions to the members of the team or the wrong person was chosen for a task. Even matters like lack of adequate tools for quality assessment come under this category.
-
Physical
The failure of any physical component leads to these errors. The constant restarting of a computer, the server ceasing to boot up, or strange noises coming from the system are examples of a physical failure.
Benefits of Performing a Root Cause Analysis
- Finding the root cause will allow us to prevent the same problem from recurring in the future
- In the long run, the number of defects that are reported go down significantly.
- The time and cost of development reduces
- The process of software development is improved, thereby enabling faster delivery to markets
- Customer satisfaction increases
- Productivity is increased
- Hidden problems in the system can be identified
- Root Cause Analysis helps in continuous improvement.
Root cause Analysis process
-
Define the Problem
As the saying goes, a problem that is well-defined is half solved. Ensure that you understand what the problem is, the sequence of events that led to it, and the systems that were involved. Also, make note of the duration for which the problem has existed, the impact it has had, the personnel involved, and those who need to be interviewed.
-
Identify the Root Cause
The RCA team brainstorms to identify the reason behind the issue that has occurred. This can be done using any of these techniques:
- Fish bone
This method, also called the Cause and Effect method, makes use of a visual diagram to find the possible causes of the problem at hand. The problem is written at the head of the fish, and the category of causes are written at the end of each bone. The primary causes in each of these categories are then noted branching out from the bones. These can be extended to secondary and tertiary causes if need be.
- 5 Whys
The 5 Whys technique leads you to ask yourself a series of questions, wherein the answer to each of the questions is in turn responded to with another Why. The number of Whys need not be exactly 5. We keep asking Why till we get to the root cause of the problem.
-
Implement Corrective Action
This step deals with fixing the problem after identifying the root cause. There should be a delivery manager who can choose the version that can get the fix implemented and decide the delivery date. The root cause corrective action should be made in a way that ensures the recurrence problem is avoided in future. Also, proper impact analysis must be conducted to make sure that no pre-existing feature is compromised while integrating the fix with the program.
-
Implement Preventive Action
It is also the responsibility of the RCA team to think of a plan to see to it that such issues are prevented henceforth. Throughout the RCA process, it is necessary to keep in mind the factors that provoke the occurrence of defects. Unclear or incorrect requirements, incorrect design, incorrect coding, insufficient testing, and issues with the environment in terms of hardware, software or configurations are the most common factors. If you observe that one of these factors is contributing more to the root causes of your problems, it means that that particular factor has to be improved in your application.