Root Cause Analysis (RCA) is an iterative problem solving method. It’s used to find the root cause of an encountered problem. By applying this method, we try to prevent the occurrence of the same problem in the future. This can be true by taking some preventive actions.
Several techniques can be used to implement the RCA method such as Kepner Tregoe Problem Analysis, Pareto analysis, 5-whys... The last technique (5-whys) is the one I personally use, it’s quite simple to implement, it consists of asking the Why question 5 times. So that we end up to the root cause of the issue we are analyzing.
Let’s take an example:
- My car will not start. (the problem)
- Why? - The battery is dead. (first why)
- Why? - The alternator is not functioning. (second why)
- Why? - The alternator belt has broken. (third why)
- Why? - The alternator belt was well beyond its useful service life and has never been replaced. (fourth why)
- Why? - I have not been maintaining my car according to the recommended service schedule. (fifth why, a root cause)
- I will start maintaining my car according to the recommended service schedule. (preventive action or solution)
In software development, we can implement this technique for each encountered issue (bug). The goal is to reduce and optimize the development process by taking the necessary preventive actions.