My professional life involves a lot of problem-solving, whether architectural problems or working with engineers digging through traces, metrics and logging to work out why a system is misbehaving.
My personal life also includes problem solving, whether it is interpersonal or understanding why a drawer in the kitchen just won't shut.
I even like solving problems in my leisure time, working on physicall puzzles or solving them in computer games.
A lifetime of problem-solving has lead me to one inescapable conclusion.
If you can't see a solution, then you don't actually properly understand the problem.
Most of the time people articulate the immediate concern as the problem.
"My kitchen drawer is stuck."
This definition of the problem is no use in solving the problem. A little investigation reveals a little more about the problem.
"My kitchen drawer is stuck because the balloon whisk has hooked up on the edge of the drawer above."
This articulation of the problem begins to suggest a simple solution. By manipulating the balloon whisk you should be able to unhook it and open the drawer.
Great! Our problem has been solved... or has it?
"My kitchen drawer is likely to get stuck whenever I put the balloon whisk in such that it hooks on the edge of the drawer above."
This demonstrates an understanding that the problem can recur in certain circumstances and suggests further solutions:
- Don't keep the baloon whisk in the drawer.
- Smooth or otherwise change the edge of the drawer above so it doesn't get stuck.
- Only store the baloon which in such an orientation / position in the drawer that it will not ever get stuck.
Further iterations of understanding the problem can lead to even more solutions which I am not going to go into here.
The point is that by broadening and deepening our understanding of the problem, new and different solutions suggest themselves.
Have you ever fully articulated a problem to such an extent that the best solution just springs out naturally?