ANYONE CAN SOLVE ANY PROBLEM WITH THE RIGHT METHOD.
In this blog, I'm gonna reveal the secret that any good MD knows.
You will be able to solve any problem efficiently and look smart about it :-)
To handle a problem efficiently, we need first to describe what a problem is!
Once it's clear we'll see a perfect roadmap to solve any kind of problem.
This approach has been built over years of experience in the Software industry.
Unfortunately I'm not a doctor :-(
But the "differential diagnosis" can be applied to any domain.
It's a simple and logical approach that anyone can apply.
What is a problem?
A problem is an unusual or unexpected situation.
It has a cause (a reason why it happened) and effects/symptoms (manifestation of this situation).
PROBLEM = CAUSE + SYMPTOMS
From the MD point of view:
- You are sick => this is the problem
- You are coughing => this is a symptom
- You have the flu => this is the cause
Another important relation is the one between the cause and the symptoms
CAUSE => SYMPTOMS
How to Solve Any Problem?
Here you need to understand the problem.
What happened? When did it happen? How did it happen?
You might want to ask the following questions:
- When was the last "normal" situation?
- When did you realize there was a problem?
- What have you been doing/trying to achieve between these two states?
Here you need to understand what the client identified as a problem.
You might want to ask:
What are the symptoms/manifestation of the problem?
Does it happen all the time or in a specific environment/situation?
3/ Hypothesis Building
Then you need to use your personal knowledge of the domain to build hypothesis on what the cause is.
The more you know, the more hypotheses you will be able to build.
4/ Hypothesis Sorting
Here a smart move is always to sort the hypotheses by decreasing probability.
The more a problem has occurred for a specific reason (cause), the higher the probability should be.
This sorting step is optional but it can obviously save a lot of time during the next step.
Now that we have build a series of hypotheses we need to test them.
You need to test all your hypotheses until you find the correct one.
a/ You have found the correct hypothesis.
In this case you have identified the cause => Problem solved
b/ You have tested all your hypotheses and could not verify any of them.
In this situation there are still some options:
- You don't know the domain well enough and have missed a hypothesis => Research
- The symptoms are not correct. You need to test the symptoms and restart to step 3 => Test the Symptoms
Among the common mistakes I've noticed (and done for most of them :-) )
Don't skip any of these steps!
It has been proven that in average you will simply loose your time and worse, the time of your client.
Don't cure the symptoms, cure the cause!
The only reason for curing the symptoms and not the cause are:
- There is no cure for the cause
- The cure for the cause is worse (or more expensive) than the problem itself
I hope this blog will be useful and might help people who want to improve their problem solving skills.
Feel free to comment.