Alessio Piergiacomi
not if, when err!=nil

not if, when err!=nil

How to deal with difficult problems

How to deal with difficult problems

Alessio Piergiacomi's photo
Alessio Piergiacomi
·Feb 5, 2022·

2 min read

This article is incomplete, and a live draft. I might or might not complete it later.

First: understand the problem space.

Do not start exploring with the solution space until you're 100% sure you understand the problem: solutionizing sometimes works, but often doesn't lead to an ideal solution.

So, how do you reason about the problem?

Good old socratic questioning method is a good starting point:

  1. Clarify and explain your thinking, what do I think the problem is. This implies writing down stuff, which is in itself a technique to clarify your own thoughts
  2. Challenge the initial assumptions. Even before sitting down to think and write about the problem, you already had some initial intuition about the problem, based on some initial assumption. This is the right time to challenge them (e.g. do I need to do X to comply with this regulation or will Y suffice?)
  3. Provide evidence: what I've written so far makes sense? Can I back this up with something which is not just my opinion?
  4. Discover alternative viewpoints: how could be this problem understood differently by other people? How do I know I am correct?
  5. Explore implications and consequences: If ... happened, what else would result? How does it affect what I've written so far?
  6. Questioning the question: Why did I think that? Which one of the questions about the problem turned out to be most useful?

Now that you've thought A LOT about the problem, you are actually qualified to think about the solution.


Share this