The top ten questions to ask when something doesn’t work.
Problem Solving, by Herb Miller
The Cast
Step 1 – The Cast
The first thing that you have to do
when something has gone wrong
is make a list of who to ask.
It shouldn't take too long
Step 2 – Asker / Askee
Number one is called the Asker,
and that is often you.
Then there is the Askee;
he/she is number two.
Step 3 – Stupid Question Asker
In case you have a problem
which may require three
The stupid question asker
fits that role nic-e-ly
Step 4 – The Domain Expert
In many situations
it really doesn't hurt
to ask the person we believe
is THE domain expert
Step 5 – Project Manager
There is one other person
to avoid more oft'n than not.
And that's the Project Manager
He'll help you. Not a lot!
The Process
Step 6 – The Process
The question list you follow
depends upon your role.
The questions that you ask
come deep down from your soul.
Step 7 – Persist
In no particular order
is the way the questions go.
You keep on digging deeper
'til the answer you do know.
Step 8 – Ask questions
The general process to perform
involves these five, you'll see
first go through the Asker's Q's
then bother the Askee
Step 9 – Expect the unexpected
The Stupid Question Asker's
come in at number three
you'll often find involving them
resolves it quick-er-ly
Step 10 – Need to know
Next you try the expert
who may actually be thee.
But please avoid the PM;
to maintain your sanity.
The Askee’s questions
Step 11 – New code?
1. So here is your first question.
Don't tell me I'm a jerk.
"But have you seen this function
ever act-u-ally work?"
Step 12 – Has it happened before?
2. Question 2 is good and true
and doesn't cost a dime
"Do you really think it worked
when you ran it last time?"
Step 13 – What’s changed?
3. Question 3.
A bit of fun.
Ask yourself
"What have I done?"
Step 14 – The right change?
4. We know you're really busy,
you have a full work load
but please try to remember...
"Are you sure you changed the code?"
Step 15 – The correct version?
5. Now think again more carefully.
Try not to get annoyed
"The code that you are running,
is that what you deployed?"
Step 16 – Requirements vs specs
6. Dig deep into the source files
and you may get a fright.
"The code and comments do not match.
So which of them is right?"
Step 17 – Askee’s questions
There are a few more questions.
Well, slightly more than three.
but let's now shift and look at
those we get from the Askee
The Askee
Step 18 – Research
The Askee knows that nowadays
it doesn't cost that mu(r)ch
to choose some words then type in
your best long tail Google search
Step 19 – Simplify
So no results, then this technique
can often be your saviour
Reduce the problem to the simplest
showing bad behaviour
Step 20 – Reproduce
The next question will demonstrate
that you are really keen.
Ask them to reproduce the bug
on a-not-her machine
The Stupid Question Asker
Step 21 – SQA: Restate problem
So still no luck, it's time to call the
Stupid Question Man
Who usually says, "Explain again
the problem if you can"
Step 22 – Timing?
I know you think I'm stupid
because I'm not a geek
but does the code work on
any other day of the week?
Step 23 – Environment?
And regarding the data,
you'll think that I'm a chump
"but does it work on Windows
running last Wednesday's dump"?
Step 24 – Authority
I know I've suffered this myself
I don't think it's a sin
"I often find I can't do things
until I am logged in"
The Expert
Step 25 – Expert opinion
And still you have no answer.
Are you feeling strong...
to hear the Expert tell you
"You're doing it all wrong"?
Step 26 – Evidence
Or "Why then should I help you?
It's really not your place,
to say you've got a problem
but not provide a trace!"
Step 27 – Experience
Another of their answers
offered without delay
"I upgraded to version x
the problem went away"
Step 28 – Stop and Think
It only works on Windows,
not Linux nor Unix?
So take a break, it's time to take
time for a bar of Twix.
( Should be KitKat - but don't argue with the Expert! )
The Project Manager
Step 29 – Problem size
I'm going to skip the questions
the PM may well raise, like
"When'll you have a fix for it,
are we talking hours or days?"
Step 30 – Severity & Priority
Or, "If this problem had occurred
not in test but in live,
then how long would our e-business
be able to survive?"
Conclusion
Step 31 – And finally
Problem solving is a skill,
you learn more every day.
The bugs are in there somewhere.
They don't just go away.
Post Scriptum
Step 32 – Post Scriptum
Use these questions in your work;
when hacking in your den.
But never try to number them
in order: 1 to 10.
(C) Copyright Herb Miller, 2014, 2019
References
For the original script from which this poem was taken
see: bobbingwide.com/phphants/2013/11/01/top-10-questions-to-ask-when-something-doesnt-work
For the true original see:
solongandthanksforalltheghoti.blogspot.co.uk/2009/09/top-10-list-of-questions-to-ask-when.html
For the Lightning talk at WordCamp Bournemouth see:
herbmiller.me/2014/07/12/problem-solving-lightning-talk