Once
upon a time I was in high school. Ah,
the halcyon days of my youth. And
one day I was sitting in class, minding my own business when the teacher said:
"Does
anyone have a thin metal ruler?"
No
answer. Apparently no one had a thin
metal ruler.
"No? How
about a nail file?"
No
answer. Now, I cannot imagine that of
all the girls in the class, not one of them had a nail file. But
I can well imagine that none of them wanted to share it with a teacher.
"No? Hmm."
So
I piped up: "What do you need a nail file for?"
"I
have this big staple in this document that I need to remove."
Upon
which point one of my classmates mentioned that he had
a staple remover in his pencil case. Problem
solved.
Over
and over again I find that script customers (both internal consumers here at Microsoft
and third-party developers) frequently ask questions like my teacher. That
is, they have a preconceived notion of how the problem is going to be solved, and
then ask the necessary questions to implement their preconceived solution. And
in many cases this is a pretty good technique! Had
someone actually brought a thin metal ruler to class, the problem would have been
solved. But
by choosing a question that emphasizes the solution over the problem, the questioner
loses all ability to leverage the full knowledge of the questionees.
When
someone asks me a question about the script technologies I almost always turn right
around and ask them why they want to know. I
might be able to point them at some tool that better solves their problem. And
I might also learn something about what problems people are trying to solve with my
tools.
Joel
Spolsky once said that people don't want drills,
they want holes. As
a drill provider, I'm fascinated to learn what kinds of holes people want to put in
what kinds of materials, so to speak. And sometimes people think they want a
drill when in fact they want a rotary cutter...