2

6 simple steps to analyze the root cause of software bugs

Software Bugs

As a software engineer, you probably agree with me…

Sometimes we need to find the root cause of software bugs and it takes forever.

Fixing this kind of bugs requires more than switching on the debugger. Instead, it requires a more structured approach.

In the automotive industry, 8D problem solving is used for root cause analysis. In this blog post, I summarized the essentials of this method to analyze the root cause of software bugs. Hence, I want to focus on the “dinosaur”-like bugs and how to find their root cause and solve them.

Root Cause Analysis Guideline

For my team, I reduced my experience with the 8D problem-solving method into six simple steps that helps us to find the root cause of software bugs easier and structured.my team and myself to solve our bugs more efficiently. Therefore, I explicitly combined the 8D approach with the Is/Is Not analysis and 5 Whys method.

Step #1: Bug Description

First, we need to collect the first information you received about the bug. The focus is on the problem analysis. Avoid thinking about technical solutions.

Step #2: Define the Problem Scope

In step 2, the problem description is extended. Clarify the following points:

  • How many users are affected?
  • How long was the bug undetected?
  • Is there a feasible workaround for the users?

If required, you can define short-term measures to reduce the impact of the bug. For example, inform your users or stakeholders about the bug.

Step #3: Is / Is Not Analysis

The Is / Is Not analysis is a very good method to complete your problem description. It summarizes all the details before analyzing the root cause of software bugs. Usually, bug reports have a very limited perspective. For this reason, developers (including myself) move from problem to solution thinking too quickly. This step helps you to keep your focus on the problem and analyze it from different perspectives.

With the Is / Is Not Analysis you will ask:

  • Where does the problem occur?
  • What causes the problem?
  • When does the problem occur?
  • Who detects the problem?

Step #4: 5 Whys Method

After creating a clear picture of the problem, we can start to analyze the root cause of the software bug using the 5 Whys method. Start with your problem description and ask multiple times “Why?” to figure out the cause for each problem. The basic theory behind this is that every cause has an effect. Here, the visible effect is the bug you want to fix. For difficult bugs, the root cause is likely hidden behind another cause. There will be a sequence of causes and their effects that finally produced the bug.

With the 5 Whys method, we want to track this sequence backward to find the root cause of the software bug. Therefore, the 5 Whys method is the core of this guideline.

Step #5: Root Cause Description

After we found the root cause, we need to write it done. It is very simple but it will help you to check again if there are any unclear points. Your colleagues need to understand it as well.

In addition, you should think about why the bug was not detected until now and how to avoid it in the future.

Step #6: Define measures

Define the measures to fix the problem. Keep your original problem description in mind as you don’t want to define countermeasures that are not targeting your problem with 100 %. From my experience, three measures are usually enough. Otherwise, you will not be able to finish all measures in a short time.

Download: The 6 step bug analysis workbook [FREE]

Ressources

8D problem solving

“Bullet Proof Debugging” – Simple Programmer

5 Whys Method

Is / Is Not Analysis

Click Here to Leave a Comment Below 2 comments
The bug analysis workbook: Fix difficult bugs with these 6 steps [Free Download] - Software Has Bugs - April 4, 2018

[…] If you are in doubt if this can help you, read the complete blog post with more details about the 6 steps. […]

Reply
The Eisenhower Matrix: Important vs. Urgent Tasks - Software Has Bugs - June 2, 2018

[…] will attend in 2 hours. The production of your company stops. Or a user tells you that there is a bug in your software that is blocking his work. Unexpected and urgent tasks exist everywhere. No matter if you are […]

Reply

Leave a Reply: