One benefit of communities is that there are very generous people who are willing to answer my questions. These wonderful people take the time to explain things to me and I try to to pay it forward by answering questions that are put to me.

I have realised that I am much more likely to answer some questions than others and am going to share with you factors that I think will make it much more likely that you’re questions will be answered.

Do your research

If you are going to ask for help, please spend some time doing your own research. Google and Stack Overflow are fantastic resources and will probably help you. You may even get enough pointers to solve your problem and then you can get on with your day.

When you ask a question, I expect you to show your research. Tell us what you have already tried and why it didn’t work or didn’t do what you expected. This will save everyone time as we’ll know what not to suggest.

Ask in public

I’m much more likely to answer a question on Stack Overflow, a mailing list or forum than I am a personal email. This is for two reasons. Firstly if I answer a question in public, then that answer is available for others to find when doing their own research in the future. This means that my answer has much more reach and benefits more people. Also, if my answer isn’t fully complete or there are some edge cases that I hadn’t considered, then others can weigh in with their experience and we end up with a much better answer. This is fantastic as no one knows everything, least of all me!

Asking your question

If your question looks like it’s your homework question then I won’t answer it. If your question looks like you haven’t even bothered to do minimal research, then I’m not motivated to help you. If you’re aggressive or negative towards the technology in question, then I’m going to skip over it too.

To get me to spend time on your question, make it as specific as you can and make it easy to understand. Provide background information on what you are trying to do so that I have the context. Provide a code sample that shows what you’re doing. Tell me what the outcome of your code is and if there’s an error message, provide it word-for-word. If the error message includes a line number, tell me which line that is in your sample code. Finally, make sure you explain what you expect to happen if it was working correctly. Sometimes the problem is with the expectation and not with the code.

Handling answers

When someone answers your question, there are a few niceties you should remember. Firstly, it’s possible that the answerer has misunderstood your question. If that happens, be gracious; it could have been that your question wasn’t as clear as you thought or it could simply be that the answerer misread. Never be aggressive, scornful or belittle the answerer when this happens; it will shut down the conversation and the chances are that no one else will join in to answer your question.

Even if you are sure that the suggestion will not help, try it out before replying. You may be surprised. If it doesn’t work then you can now explain what happened when you tried it and if a different error occurred, you may be on the path to the solution.

Finally

Finally, say thank you. Show appreciation for the time and effort that other people have put into helping you solve your problem. Also, pay it forward. If you come across a question that you can answer, do so and make someone’s day.