Elementary, My Dear Watson – Systematic Problem Solving Helps Fix Mystery Bugs
Elementary, My Dear Watson – Systematic Problem Solving Helps Fix Mystery Bugs
Systematically Establishing the Cause of the Bug
In product development, we often encounter problems that first seem like complete mysteries. More than once or twice I have heard a developer utter the words “But that’s not possible” when I have reported a problem. Another common mistake is to rush to the favorite explanation without establishing the facts first.
The result of disbelief, bubblegum fixes, quick fixes, and favorite explanations is often that the problem is not solved and its actual cause remains unknown, while the problem still haunts in the background, causing difficulties for the team or the customer.
Product development staff should use the methods of systematic problem solving.
Elementary, My Dear Watson
Product development staff should use the methods of systematic problem solving. This is quite similar to detective work, so the Sherlock Holmes comparison is appropriate! In literature on leadership, systematic problem solving was first introduced by Charles Kepner and Ben Tregoe in their book The Rational Manager in the 1960’s. The methods in themselves, however, are age-old since their basics are familiar to us from Arthur Conan Doyle’s Sherlock Holmes stories.
Don’t Jump to Conclusions
“It is a capital mistake to theorize before you have all the evidence. It biases the judgment.”
– Sherlock Holmes, A Study in Scarlet
The process of systematic problem solving starts from accurately describing and investigating the problem. In this phase, it is essential to avoid jumping to any theories, favorite explanations, and other conclusions.
All energy should be focused on collecting data on the problem. It is easier to investigate the problem if its title describes it as accurately as possible. For example, the titles “the warehouse floor is slippery” and “there is oil on the warehouse floor” are not descriptive enough. A better title would be: “There is an oil leak under the air vent number 1.” With today’s electronic bug management tools, it is easy to update the title of the problem. Right from the beginning of investigating the bug, it would be useful to review the title description of the bug and change it until everyone is satisfied with it.
The Importance of Clarifying the Description
“Always approach a case with an absolutely blank mind. It is always an advantage. Form no theories, just simply observe and draw inferences from your observations.”
– Sherlock Holmes, The Adventure of the Cardboard Box
The next step is to give a more detailed description. These questions will help you: WHAT, WHERE, WHEN, HOW MUCH.
Finding the answers to these questions improves your understanding of the problem. When was this bug first detected? How often does it occur? How severe is it? Where does it occur?
Even though it might be a little more difficult to remember, this next step provides a lot of additional information about the problem. The above-mentioned questions can be refined: where this problem COULD OCCUR, where does it NOT OCCUR. The purpose of this is to find data on where and when the problem occurs and where it does not occur. Does the problem only occur in large systems, never in smaller ones? Does it only occur at a certain time of the day, for example, every day at 4 a.m., but never at other times? Does it only occur when the user logs in? Does it only occur when several users log in simultaneously?
The purpose of all these questions and answers is to help the investigators understand the problem better. This phase should be continued until the investigators feel that they have enough information and are now able to move on to the next step.
Round up the suspects!
“There should be no combination of events for which the wit of man cannot conceive an explanation.”
– Sherlock Holmes, The Valley of Fear
The next step is to find the possible culprits. This step is much like brainstorming, and the best way to carry it out is in pairs or in a small group. In this step, it is essential to remember to remain disciplined and not to prematurely move on to the next phase.
When enough potential causes have been found, you should consider their mechanisms. Which sequence of events is required so that this potential cause could explain the problem? How likely is that sequence of events? If there are three potential causes, one of which is much more likely to be the actual cause compared to the other suspects, the next step is quite obvious.
Consider the Probabilities and Test the Most Probable Cause First
“When you have eliminated the impossible, whatever remains, no matter how improbable, must be the truth.”
– Sherlock Holmes, The Sign of Four
Next, you need to consider what kind of test could establish which one of the suspects is the actual cause. Then you should simply begin testing, beginning from the most probable suspect, to find out which one of the potential causes explains the problem. The testing becomes less difficult if the bug can be easily repeated.
When the culprit has been found, the last step is to fix the bug and carry out other necessary actions, which is usually quite a lot easier than finding the cause.
Systematic Problem Solving Can Be Learned
Thanks to the methods of systematic problem solving, it is easier and faster to find a solution to mystery bugs.
Thanks to the methods of systematic problem solving, it is easier and faster to find a solution to mystery bugs. These methods should be understood by product development staff, project managers, Product Owners, developers, testers, and customer support staff. A shared understanding can help create good titles and descriptions for bugs right from the start. Finding the possible causes and determining their probabilities quickly leads to finding the root cause.
The problem-solving methods should be learned and practiced. Contribyte’s Systematic Problem Solving course module can be organized as a two-hour module with of the normal Scrum or Agile training, or as a more comprehensive one-day or half-day module with practical exercises and case descriptions. Contact us to improve the problem-solving skills of your team or organization!
![Arto Kiiskinen](https://b845811.smushcdn.com/845811/wp-content/uploads/2018/10/Kiiskinen-Arto.jpg?lossy=1&strip=1&webp=1)
Arto Kiiskinen
Senior Consultant
In his career, Arto has worked in product development as a Product Owner, Scrum Master and Product Development Manager. The operating methods of both large and small companies have become familiar. Arto loves to improve organizational learning and product owner know-how, and write blogs on different topics. Because retrospectives are one of Arto’s favorite topics, some of his customers have given him the nickname “Retroman”. During his free time, Arto tries to live healthy, buy as many cars as possible, rewatch the Star Gate series and study to become a Personal Trainer. Arto has also written the book “OWN IT – 8 Simple Secrets of Product Owner Success”.