Right now, people are waiting for your question. They can’t wait to help you out, and they’ll give you incredibly good advice for free. Here’s how to get it:
1. Boil the problem down to one question in one sentence. Technology is complicated, and your question probably has a lot of moving parts. If you can’t fit your question into one sentence, that’s a sign that it’s actually multiple questions, or that you don’t understand the issue quite well enough yet. Strip out as many moving parts as possible. Simply by getting the question down to one sentence, I find that I answer it myself – like how Jeff Atwood wrote about rubber duck problem solving.
2. Type that sentence into a search engine. After all, this is what your answerers are going to do. You probably aren’t going to find the answer you want (you probably are, but I’m being kind here), but you want to look at the kinds of responses that were posted. Look at the followup questions other people asked, try that same solution, and compile the evidence that you gather.
3. Provide additional evidence in an accessible format. Even though you’ve boiled down your question to one sentence, that doesn’t mean it’s the only thing you’re going to provide. Start your email/post with that one-sentence-question, and finish it the same way, but in the middle, put all the juicy details about the things you tried. If you’re asking about a slow query on a database server, that means including the full query and the execution plan. If you’re asking about how to design a data model, include your idea. Your goal is to make it as easy as possible for people to copy/paste your work into their own environment, make changes, and then most importantly, copy/paste the right answer from their environment into the answer. For long copy/pastes, check out Pastebin.
4. Never say “my client” in the question. If you’re a consultant or a student and you’re tasked with getting the answer, don’t reveal that in the question. It really pisses the rest of us off because you’re asking us to do your work. I’m not saying you can’t ask questions; you certainly can, and I encourage it – but don’t rub our noses in it. You can avoid a lot of negative feedback by using terms like “we” instead of “my client.”
5. Ask as many strangers as possible simultaneously. Post your question on a Q&A site like StackOverflow, Serverfault, DBA.StackExchange.com, or SQLServerCentral. There are thousands of people sitting around hitting refresh on these sites, waiting for questions to come in, eager to help you. This is a much more effective solution than emailing one or two people directly. I even have an email template set up that instructs folks to post their questions online – I’d rather teach people to fish than feed them one answer at a time.
6. Follow up promptly. After posting the question, set yourself a repeating 15-minute alarm on your phone. When it goes off, check for followup questions or comments on your question. Answer them fully and promptly. These are strangers who are taking time out of their day to help you – treat them with thanks and respect.
7. If you don’t get the answers you need after 24 hours, escalate it. If it’s a SQL Server question, post a link to it on Twitter with the #SQLhelp hash tag and a link to your full question. Email it to your friends and resources, but hold off for 24 hours first – you want to respect their time.