Problem Solving – The annotated poem – October 2019

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

    About Bobbing Wide

    Herb Miller is the web designer, web developer at Bobbing Wide, based in Rowlands Castle.