Problem Solving Techniques for Developers


To learn how to use Fishbone Diagram, Why-Why Diagram and How-How Diagrams

Fishbone Diagram

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.

Fish Bone Diagram

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.

Why-Why Diagram

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.

Why Why Diagram

Why Why Diagram

How-How Diagram

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.

How How Diagram


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

Related Articles

Ace the Technical Interview

  • Easily find the gaps in your knowledge
  • Get customized lessons based on where you are
  • Take consistent action everyday
  • Builtin accountability to keep you on track
  • You will solve bigger problems over time
  • Get the job of your dreams

Take the 30 Day Coding Skills Challenge

Gain confidence to attend the interview

No spam ever. Unsubscribe anytime.