Saturday, December 18, 2010

How To Ask Questions The Smart Way

Use meaningful, specific subject headers

On mailing lists, newsgroups or Web forums, the subject header is your golden opportunity to attract qualified experts' attention in around 50 characters or fewer. Don't waste it on babble like “Please help me” (let alone “PLEASE HELP ME!!!!”; messages with subjects like that get discarded by reflex). Don't try to impress us with the depth of your anguish; use the space for a super-concise problem description instead.

One good convention for subject headers, used by many tech support organizations, is “object - deviation”. The “object” part specifies what thing or group of things is having a problem, and the “deviation” part describes the deviation from expected behavior.

Stupid:
HELP! Video doesn't work properly on my laptop!

Smart:
X.org 6.8.1 misshapen mouse cursor, Fooware MV1005 vid. chipset

Smarter:
X.org 6.8.1 mouse cursor on Fooware MV1005 vid. chipset - is misshapen

Write in clear, grammatical, correctly-spelled language
If you are writing in English but it is a second language for you, it is good form to alert potential respondants to potential language difficulties and options for getting around them. Examples:

English is not my native language; please excuse typing errors.

If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question.

I am familiar with the technical terms, but some slang expressions and idioms are difficult for me.

I've posted my question in $LANGUAGE and English. I'll be glad to translate responses, if you only use one or the other.

Describe the goal, not the step

Stupid:
How do I get the color-picker on the FooDraw program to take a hexadecimal RGB value?

Smart: 
I'm trying to replace the color table on an image with values of my choosing. Right now the only way I can see to do this is by editing each table slot, but I can't get FooDraw's color picker to take a hexadecimal RGB value.

Questions Not To Ask

Q:
Where can I find program or resource X?

A:
The same place I'd find it, fool — at the other end of a web search. Ghod, doesn't everybody know how to use Google yet?

Q:
How can I use X to do Y?

A:
If what you want is to do Y, you should ask that question without pre-supposing the use of a method that may not be appropriate. Questions of this form often indicate a person who is not merely ignorant about X, but confused about what problem Y they are solving and too fixated on the details of their particular situation. It is generally best to ignore such people until they define their problem better.

Q:
How can I configure my shell prompt?

A:
If you're smart enough to ask this question, you're smart enough to RTFM and find out yourself.

Q:
Can I convert an AcmeCorp document into a TeX file using the Bass-o-matic file converter?

A:
Try it and see. If you did that, you'd (a) learn the answer, and (b) stop wasting my time.

Q:
My {program, configuration, SQL statement} doesn't work

A:
This is not a question, and I'm not interested in playing Twenty Questions to pry your actual question out of you — I have better things to do. On seeing something like this, my reaction is normally of one of the following:

do you have anything else to add to that?

oh, that's too bad, I hope you get it fixed.

and this has exactly what to do with me?

Q:
I'm having problems with my Windows machine. Can you help?

A:
Yes. Throw out that Microsoft trash and install an open-source operating system like Linux or BSD.

Note: you can ask questions related to Windows machines if they are about a program that does have an official Windows build, or interacts with Windows machines (i.e., Samba). Just don't be surprised by the reply that the problem is with Windows and not the program, because Windows is so broken in general that this is very often the case.

Q:
My program doesn't work. I think system facility X is broken.

A:
While it is possible that you are the first person to notice an obvious deficiency in system calls and libraries heavily used by hundreds or thousands of people, it is rather more likely that you are utterly clueless. Extraordinary claims require extraordinary evidence; when you make a claim like this one, you must back it up with clear and exhaustive documentation of the failure case.

Q:
I'm having problems installing Linux or X. Can you help?

A:
No. I'd need hands-on access to your machine to troubleshoot this. Go ask your local Linux user group for hands-on help. (You can find a list of user groups here.)

Note: questions about installing Linux may be appropriate if you're on a forum or mailing list about a particular distribution, and the problem is with that distro; or on local user groups forums. In this case, be sure to describe the exact details of the failure. But do careful searching first, with "linux" and all suspicious pieces of hardware.

Q:
How can I crack root/steal channel-ops privileges/read someone's e-mail?

A:
You're a lowlife for wanting to do such things and a moron for asking a hacker to help you.

Good and Bad Questions

Finally, I'm going to illustrate how to ask questions in a smart way by example; pairs of questions about the same problem, one asked in a stupid way and one in a smart way.
Stupid: Where can I find out stuff about the Foonly Flurbamatic?

This question just begs for "STFW" as a reply.
Smart: I used Google to try to find “Foonly Flurbamatic 2600” on the Web, but I got no useful hits. Can I get a pointer to programming information on this device?

This one has already STFWed, and sounds like he might have a real problem.
Stupid: I can't get the code from project foo to compile. Why is it broken?

The querent assumes that somebody else screwed up. Arrogant git...
Smart: The code from project foo doesn't compile under Nulix version 6.2. I've read the FAQ, but it doesn't have anything in it about Nulix-related problems. Here's a transcript of my compilation attempt; is it something I did?

The querent has specified the environment, read the FAQ, is showing the error, and is not assuming his problems are someone else's fault. This one might be worth some attention.
Stupid: I'm having problems with my motherboard. Can anybody help?

J. Random Hacker's response to this is likely to be “Right. Do you need burping and diapering, too?” followed by a punch of the delete key.
Smart: I tried X, Y, and Z on the S2464 motherboard. When that didn't work, I tried A, B, and C. Note the curious symptom when I tried C. Obviously the florbish is grommicking, but the results aren't what one might expect. What are the usual causes of grommicking on Athlon MP motherboards? Anybody got ideas for more tests I can run to pin down the problem?

This person, on the other hand, seems worthy of an answer. He/she has exhibited problem-solving intelligence rather than passively waiting for an answer to drop from on high.

In the last question, notice the subtle but important difference between demanding “Give me an answer” and “Please help me figure out what additional diagnostics I can run to achieve enlightenment.”

No comments: