How to Report Bugs


By Igor Polkovnikov, 2019.07.31

Introduction

In popular culture, and, regretfully, it has been sneaked in engineering sciences, people mostly misunderstand the words "problem" and "issue". When one describes an unfortunate event or situation, some call it a problem. It is not. It is only a "problematic situation". The problem to solve lies deeper, depends on what we want, and rigorous and often time-consuming analysis must be performed to formulate it. Guesses and quick remedies without discovering the true cause and understanding the true goal often lead to worsening the situation, if not now then in future.
On the other hand, trying to remedy the current problematic situation, even while obtaining the root-cause of it, may go into a hold: the solution might not be feasible or be absent. Therefore, one must clarify, what the important functionality the current problem worsens or prevents. If we are clear on that, we can find the ways around and solve unsolvable.
To be able clearly identify a problem I came to this short list of actions. It includes steps after the problem identification to complete the case.

1). Investigation

- In what system?
- Describe the problematic situation:
                - What harmful effects, symptoms, troubles, undesirables are observed and how?
                - Absence of the useful?
                - Something unexpected? It is not necessarily harmful.
                - What useful functions, actions, and properties are harmfully affected by this? (!)
- Steps to reproduce;
- Collect complete factual evidence;

2). Root-Cause analysis

                - Discover the root-cause or the whole causality chain, including steps how it was found, steps to isolate, find, and range. It could be more than one root-cause chain happening simultaneously. And in complex situations there are. Let us abbreviate it HE (from “harmful effects”). This step may be called “troubleshooting”. Note that the same single root-cause may cause different outcome another time.
                - What sort of solution we are looking for? What supposed to be? What can satisfy us? Let us abbreviate it UA (from “useful actions”)
                - Formulate the problem like this: “How to get rid of HE, obtaining, preserving or improving UA without any new harm”. UA should not spell “the system works correctly”. It is useless. The immediate what is affected by HE should be mentioned.

3). Solution

                - Describe possible solutions and workarounds, the process of coming to them, an implemented solution, and the reasons for solution choice. There could be many solutions to choose from. This step is less difficult if 1) and 2) are well thought over.

4). Verification

                - How to verify that the problem is solved?             

* * *
If in trouble, call a TRIZ expert to help with the process. Most problematic situations can be resolved.