Problem Solving Techniques for Developers
To learn how to use Fishbone Diagram, Why-Why Diagram and How-How Diagrams
Fishbone Diagram is an useful approach to identifying problems. It was developed by Professor Kaoru Ishikawa of the University of Tokyo. The primary purpose of this exercise is to identify and list all the possible causes of the problem. The problem and its causes are recorded as a diagram that resembles the skeleton of a fish.
In the example, you can see that the problem is on the fish head. The causes of the problem is listed on the stems. Ishikawa describes the process as one in which 'you write your problem down on the head of the fish and then let it cook overnight'. The completed diagram is analyzed to determine the problems that needs to be solved. In order to determine the relative important of the causes, we can use Pair Ranking algorithm.
This technique is a variation of the Fishbone Diagram. It is used to identify the causes of a problem in a systematic way. It moves from left to right. The problem statement is on the left-hand side. You ask the question 'Why?' and list the possible causes in ovals that connects to the problem statement. For each of the causes, we ask the question 'Why?' to identify the possible causes. This is listed and connects to its corresponding cause.
The How-How Diagram is used to identify the steps necessary to implement a solution. You ask 'How?' and list the possible solutions on the left side of the paper. For each of the solution, you ask the question 'How?'. The answer with a more detailed action plan is placed on the right. This technique is extremely useful to think about the details of implementation.
The Fishbone Diagram, Why-Why Diagram and How-How Diagram are extremely useful to solve problems. It can be used to analyze a problem in a systematic way and discuss the alternative solutions to any problem. You can use them with other developers to come up with better design for your software projects.
101 Creative Problem Solving Techniques by James M. Higgins