Problem solving is a skill that is helpful in many areas of life, and having a method to do it consistently for different types of problems can have a positive impact.
## Observe the Problem
Before solving a problem, you must understand what the problem *is*. Your first encounter might just be a symptom or a piece of something larger. The best way to start is through **observation**.
* How does it differ from expectations? * When does the problem happen? * How often? * When did it start? * What has changed? * What else happens when the problem happens? * What are the pieces involved and how are they connected?
## Make Sense of the Problem
Once you have enough data and observation, you can make hypotheses about what's going on and try Proving Yourself Wrong. There's several tools that can help you make sense of what's going on.
* Cynefin, what type of problem am I dealing with? * Ishikawa Diagrams, what are the potential causes of this? * Causal Loop Diagrams, what variables are involved and how do they influence each other? * Histograms or Scatter Plots, how do two values relate to each other? * Swimlane charts or flowcharts, what are the steps of a process?
## Define the Problem
Now that you understand the problem, you should be able to define it precisely (and maybe even avoid Disagreeing on the Problem). You should also be able to define *tests* that prove the problem has been solved.
At this point you can also identify or set constraints based on your context. How much of the problem is *a problem*, and how far you need to extend your solution will depend on priorities, resources, available expertise, time-pressure, etc.
## Explore Solutions
Avoid the [Einstellung effect](https://en.wikipedia.org/wiki/Einstellung_effect) and other cognitive biases and don't settle with your first instinct.
* How have others solved this problem? * Can existing and available tools be used in a different way to solve this? * Can you solve the problem through Subtraction?
If possible, involve others and get a variety of options, no matter how wild or impractical they are.
## Discard Solutions
With a healthy crop of solutions to pick from, narrow them down.
* Would they pass your problem test? * Do they fit your constraints? * What tradeoffs are you willing to make? * Which is simplest?
Some of the solutions might have components that you're not sure about. In this case, Prototyping can help you quickly prove whether they will work as you expect.