Articles: Smart questions
In the world of hackers, the kind of answers you get to your technical questions depends as much on the way you ask the questions as on the difficulty of developing the answer. This guide will teach you how to ask questions in a way that is likely to get you a satisfactory answer.
Source: http://www.catb.org/~esr/faqs/smart-questions.html and http://unix.za.net/docs/documentation/smart-questions/smart-questions.html
Added: 2005-03-11 14:39:36 - Modified: 2005-10-05 09:56:30 - Level: Beginner
![]()
Recommend this article to a friend.
Toggle more
| 1 | 2 | 3 | 4 | 5 | 6 |
<< Previous page | Next page >>
Before You Ask
Before asking a technical question by email, or in a newsgroup, or on a website chat board, do the following:
- Try to find an answer by searching the Web.
- Try to find an answer by reading the manual.
- Try to find an answer by reading a FAQ.
- Try to find an answer by inspection or experimentation.
- Try to find an answer by asking a skilled friend.
- if you are a programmer, try to find an answer by reading the source code.
When you ask your question, display the fact that you have done these things first; this will help establish that you're not being a lazy sponge and wasting people's time. Better yet, display what you have learned from doing these things. We like answering questions for people who have demonstrated that they can learn from the answers.
Use tactics like doing a Google search on the text of whatever error message you get (and search Google groups as well as web pages). This might well take you straight to fix documentation or a mailing list thread that will answer your question. Even if it doesn't, saying "I googled on the following phrase but didn't get anything that looked useful" is a good thing to be able to put in email or news postings requesting help.
Prepare your question. Think it through. Hasty-sounding questions get hasty answers, or none at all. The more you do to demonstrate that you have put thought and effort into solving your problem before asking for help, the more likely you are to actually get help.
Beware of asking the wrong question. If you ask one that is based on faulty assumptions, J. Random Hacker is quite likely to reply with a uselessly literal answer while thinking "Stupid question...", and hoping that the experience of getting what you asked for rather than what you needed will teach you a lesson.
Never assume you are entitled to an answer. You are not; you aren't, after all, paying for the service. You will earn an answer, if you earn it, by asking a question that is substantial, interesting, and thought-provoking - one that implicitly contributes to the experience of the community rather than merely passively demanding knowledge from others.
On the other hand, making it clear that you are able and willing to help in the process of developing the solution is a very good start. "Would someone provide a pointer?", "What is my example missing?" and "What site should I have checked?" are more likely to get answered than "Please post the exact procedure I should use." because you're making it clear that you're truly willing to complete the process if someone can simply point you in the right direction.
When you ask
Choose your forum carefully
Be sensitive in choosing where you ask your question. You are likely to be ignored, or written off as a loser, if you:
- post your question to a forum where it is off topic
- post a very elementary question to a forum where advanced technical questions are expected, or vice-versa
- cross-post to too many different newsgroups
- post a personal email to somebody who is neither an acquaintance of yours nor personally responsible for solving your problem
Hackers blow off questions that are inappropriately targeted in order to try to protect their communications channels from being drowned in irrelevance. You don't want this to happen to you.
The first step, therefore, is to find the right forum. Again, Google and other web-searching methods are your friend. Use them to find the project web page most closely associated with the hardware or software that is giving you difficulties. Usually it will have links to a FAQ (Frequently Asked Questions) list, and to project mailing lists and their archives. These mailing lists are the final places to go for help, if your own efforts (including reading those FAQs you found) do not find you a solution. The project page may also describe a bug-reporting procedure, or have a link to one; if so, follow it.
Shooting off an email to a person or forum which you are not familiar with is risky at best. For example, do not assume that the author of an informative web page wants to be your free consultant. Do not make optimistic guesses about whether your question will be welcome - if you are unsure, send it elsewhere, or refrain from sending it at all.
When selecting a Web forum, newsgroup or mailing list, don't trust the name by itself too far; look for a FAQ or charter to verify that your question is on-topic. Read some of the back traffic before posting so you'll get a feel for how things are done there. In fact, it's a very good idea to do a keyword search for words relating to your problem on the newsgroup or mailing list archives before you post. It may find you an answer, and if not it will help you formulate a better question.
Don't shotgun-blast all the available help channels at once, that's like yelling and irritates people. Step through them.
Know what your topic is! One of the classic mistakes is asking questions about the Unix or Windows programming interface in a forum devoted to a language or library or tool that is portable across both. If you don't understand why this is a blunder, you'd be best off not asking any questions at all until you get it.
In general, questions to a well-selected public forum are more likely to get useful answers than equivalent questions to a private one. There are multiple reasons for this. One is simply the size of the pool of potential respondents. Another is the size of the audience; hackers would rather answer questions that educate a lot of people than questions which only serve a few.
Understandably, skilled hackers and authors of popular software are already receiving more than their fair share of mistargeted messages. By adding to the flood, you could in extreme cases even be the straw which breaks the camel's back - quite a few times, contributors to popular projects have withdrawn their support because the collateral damage in the form of useless email traffic to their personal accounts became unbearable.
Web and IRC forums directed towards newbies often give the quickest response
Your local user group, or your Linux distribution, may advertise a Web forum or IRC channel where newbies can get help. (In non-English-speaking countries newbie forums are still more likely to be mailing lists.) These are good first places, to ask, especially if you think you may have tripped over a relatively simple or common problem. An advertised IRC channel is an open invitation to ask questions there and often get answers in real time.
In fact, if you got the program that is giving you problems from a distro (as common today), it may be better to ask in the distro forum/list before trying the program's project forum/list. The project's hackers may just say, "use our build"?.
Before posting to any Web forum, check if it has a Search feature. And if it does, try a couple of keyword searches for something like your problem; it just might help. If you did a general Web search before (as you should have), search the forum anyway; your web-wide search engine might not have all of this forum indexed recently.
There is an increasing tendency for projects to do user support over a Web forum or IRC channel, with email more reserved for development traffic. So look for those channels first when seeking project-specific help.
As a second step, use project mailing lists
When a project has a development mailing list, write to the mailing list, not to individual developers, even if you believe that you know who can answer your question best. Check the documentation of the project and its homepage for the address of a project mailing list, and use it. There are several good reasons for this policy:
- Any question that's good enough to be asked of one developer will also be of value to the whole group. Contrariwise, if you suspect that your question is too dumb for a mailing list, it's not an excuse to harass individual developers.
- Asking questions on the list distributes load between developers. The individual developer (especially if he's the project leader) may be too busy to answer your questions.
- Most mailing lists are archived and the archives are indexed by search engines. Somebody could find your question and the answer on the web instead of asking it again in the list.
- If certain questions are seen to be asked often, the developers can use that information to improve the documentation or the software itself to be less confusing. But if those questions are asked in private, nobody has the complete picture of what questions are asked most often.
If a project has both a "user" and a "developer" (or "hacker") mailing list or Web forum, and you are not hacking on the code, ask in the "user" list/forum. Do not assume that you will be welcome on the developer list, where they are likely to experience your question as noise disrupting their developer traffic.
However, if you are sure your question is non-trivial, and you get no answer in the "user" list/forum for several days, try the "developer" one. You would be well advised to lurk there for a few days before posting to learn the local folkways (actually this is good advice on any private or semi-private list).
If you cannot find a project's mailing list address, but only see the address of the maintainer of the project, go ahead and write to the maintainer. But even in that case, don't assume that the mailing list doesn't exist. State in your e-mail that you tried and could not find the appropriate mailing list. Also mention that you don't object to having your message forwarded to other people. (Many people believe that private e-mail should remain private, even if there is nothing secret in it. By allowing your message to be forwarded you give your correspondent a choice about how to handle your e-mail.)
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.
A 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:XFree86 4.1 misshapen mouse cursor, Fooware MV1005 vid. chipset
Smarter:XFree86 4.1 mouse cursor on Fooware MV1005 vid. chipset - is misshapen
The process of writing an "object-deviation" description will help you organize your thinking about the problem in more detail. What is affected? Just the mouse cursor or other graphics too? Is this specific to XFree86? To version 4.1? Is this specific to Fooware video chipsets? To model MV1005? A hacker who sees the result can immediately understand what it is that you are having a problem with and the problem you are having, at a glance.
More generally, imagine looking at the index of an archive of questions, with just the subject lines showing. Make your subject line reflect your question well enough that the next guy searching the archive with a question similar to yours will be able to follow the thread to an answer rather than posting the question again.
If you ask a question in a reply, be sure to change the subject line to indicate that you are asking a question. A Subject line that looks like "Re: test" or "Re: new bug" is less likely to attract useful amounts of attention. Also, pare quotes of previous messages to the minimum consistent with cluing in new readers.
Do not simply hit reply to a list message in order to start an entirely new thread. This will limit your audience. Some mail readers, like mutt, allow the user to sort by thread and then hide messages in a thread by folding the thread. Folks who do that will never see your message.
Changing the subject is not sufficient. Mutt, and probably other mail readers, looks at other information in the email's headers to assign it to a thread, not the subject line. Instead start an entirely new email.
On Web forums the rules of good practice are slightly different, because messages are usually much more tightly bound to specfic discussion threads and often invisible outside those threads. Changing the subject when asking a question in reply is not essential (not all forums even allow separate subject lines on replies, and nearly nobody reads them when they do). But asking a question in a reply is a dubious practice in itself, because it will only be seen by those who are watching this thread. So, unless you are sure you want to ask the people currently active in the thread, start a new one.
Make it easy to reply
Finishing your query with "Please send your reply to... " makes it quite unlikely you will get an answer. If you can't be bothered to take even the few seconds required to set up a correct Reply-To header in your mail agent, we can't be bothered to take even a few seconds to think about your problem. If your mail program doesn't permit this, get a better mail program. If your operating system doesn't support any mail programs that permit this, get a better operating system.
In Web forums, asking for a reply by email is outright rude, unless you believe the information may be sensitive (and somebody will, for some unknown reason, let you but not the whole forum know it). If you want to get an email when somebody replies in the thread, request that the Web forum send it; this feature is supported almost everywhere under options like “watch this thread�?, “send email on answers�?, etc.)
| 1 | 2 | 3 | 4 | 5 | 6 |
<< Previous page | Next page >>
Related articles:
[Sitemap]

