From Manufacturing to Software: The Evolution of Root Cause Analysis
Pratik Daga
Principal Engineer | Ex Tech Lead-Asana & Staff Engineer-LinkedIn | Multi Family Real Estate
Software engineers are the builders and designers of the applications we conduct all our digital activities. While making these ingenious and complicated applications, there are high chances of problems and bugs. Every company has a different route to finding the root cause of the problem. Among these techniques of Root Cause Analysis, we will touch upon the two most common ones I have encountered. The origins, pros, and cons of these two methods weighed together make them a paramount step to locating and removing the cause of the problem in a software engineer’s work.
What is Root Cause Analysis?
Root Cause Analysis (RCA) is a problem-solving technique used to identify the root/cause of a problem. It is a broad term comprising multiple techniques and methods adopted worldwide from various professions and industries. RCA includes analyzing the problem from all angles, collecting all the relevant data, and identifying and linking multiple factors that have ultimately caused the problem.? RCA isn’t limited to a specific industry’s problems. It is a universal technique and can be applied everywhere. In software development, this broad technique helps pinpoint a specific bug or shortcoming in the code.
The basic goal of RCA is to prevent the problem from happening again. The two most popular techniques for conducting RCA are the “5 whys” technique and the “Fishbone diagram.” Both of these methods will be discussed thoroughly here.
"5 Whys" and Its Origin
The 5 Whys technique involves asking ‘why’ questions 5 times to identify the underlying cause of the problem.? This simple yet intuitive method was first popularized by the founder of Toyota, Sakichi Toyoda . Now, an essential problem-solving approach not only in Toyota but globally in other industries and professions. Taiicho Ohno , famously known as the father of Toyota’s production system, summarizes the 5 whys concisely below:
"The basis of Toyota’s scientific approach is to ask why five times whenever we find a problem … By repeating why five times, the nature of the problem, as well as its solution, becomes clear."
Source: 5 whys
The 5 whys aren’t limited to car production factories but can be applied in any industry, especially software engineering. Let's see an example related to software engineering.
Example of 5 Whys in Software Engineering
In this example, we are facing a problem with software that is frequently crashing. We’ll see how asking a few simple questions can dig deep into the cause of the problem.?
Question: Why is a particular software frequently crashing?
Outcome: The inexperienced development team underestimated the scale of the application after creating a short window of time, which limited their testing ability.
The answers in the above questionnaire can change. But comparing the complexity and vagueness* of the first and last questions, we can see that asking a simple question (Like question 1) will often lead to more direct questions that answer our query.
Concluding 5 whys, we will explore its advantages and disadvantages.
Pros
Cons
Fishbone Diagram and Its Origin
Fishbone is also known as the Ishikawa diagram or cause-and-effect diagram. Like the 5 whys, this method also originates in Japan. Renowned engineer Kauro Ishikawa developed this technique in the 1960s. It was widely used for quality management in numerous industries. The fishbone diagram helps professionals identify a problem's root causes by looking at it from multiple perspectives. A fishbone diagram is constructed where the underlying problem is stated first. The other branches of the fishbone represent different entities or bodies, such as people, procedures, equipment, environment, etc., which could’ve led to the problem. The diagram given below will help you understand and visualize this better.
Source: Fishbone diagram
领英推荐
Example of Fishbone Diagram
We will again limit our problems related only to software engineering. We shall look at another similar example to the 5 Ways example so that you can compare both methods easily. The only difference here is that professionals/the team will brainstorm potential causes of the problem and categorize them into appropriate branches.
Problem: The software is frequently crashing.
Branches
Developers: Incomplete code, bugs in code, miscommunication.
Users: Misunderstanding the application, lack of training
Testers: missed bugs, incomplete testing
2. Procedures:
Documentation issues: Lack of documentation.
Quality control and standards: lack of quality control.
3. Equipment:
Hardware: Outdated computer configuration and obsolete technology.
Servers: Overloaded or inadequate
4. Environment:
Network: Poor internet (bandwidth limitations or latency issues).
High Traffic: Overloaded communication channels.
5. Product:
System configuration: incorrect settings.
Software application: compatibility issues.
Once the fishbone diagram has been created, the investigation team can analyze the potential causes shown/identified by each branch and subbranch. More than one branch can reveal problems. Moreover, this method helps to alleviate all the possible roots of the problem, which leaves the conclusion and solution more decisive. This is the beauty of the fishbone diagram method, as it helps to visualize brainstorming properly and leads to proper conclusions.?
Now, let’s dive into the pros and cons list to analyze the efficiency of this technique.
Pros
Cons
Conclusion
There are many more techniques for conducting root cause analysis, but 5 whys and Fishbone are the easiest and most effective. Both methods are linked in many ways. It’s up to you to choose the method that will fit your requirements. “5 whys” is used for smaller problems, whereas the fishbone diagram is used for problems of larger magnitude.
Problems and setbacks are part of our lives. It’s up to us how we choose to deal with them. This applies to both our personal and professional lives. RCA might look tedious, but it surely does help in the long run, where our products must be reliable and trustworthy. If you are a software engineer, I highly recommend choosing the 5 whys and fishbone diagram methods to dissect your issue.
Have you used any other RCA technique? Please share your experience in the comments.
Improving Engineers Through Community I MEP Engineer I??? Impactful Engineer Podcast I?? Electrical Engineer at Hallam-ICS I
1 年Love the 5 whys. When people get frustrated with the second “why”, you know you’ve hit something worth asking the remaining whys, because it will teach them a lot about their own problem solving process.