Asking the right questions effectively is central to the pursuit of science and posting questions to online forums is a great way to improve that skill. Furthermore, knowing how to use forums is a great asset for your scientific career: it will help you overcome obstacles faster and connect with people who are doing similar research . However, in order to get the most out of online forums, you must first learn how to ask good questions.
Asking questions on forums is somewhat of an art form: easy to try but difficult to master. It is easy because we have been asking questions from a very young age. On the other hand, it is difficult because it is not enough to ask any question; we must ask good questions so that other people will be willing to spend some of their time to help us.
To quote Eric Steven Raymond, author of How to ask questions the smart way : "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". A well crafted question attracts good answers like a magnet, while "hasty-sounding questions get hasty answers, or none at all".
This tutorial explains some of the fundamentals of asking good questions on forums. It is intended to help maximize your chances of receiving useful answers.
Before you ask
The first thing to understand is that it is normal, and even essential, to ask questions when learning about a new subject. Online forums exist specifically to help tapping efficiently into the knowledge of other people and to learn to solve problems faster. The second thing to know is that, before posting your question on a technical forum, you are expected to try a few things on your own.
Here are some steps you should go through BEFORE posting a question on a forum. Keep in mind that your ultimate goal is not really to ask a question, but rather to find a solution to your problem and the next steps are very likely to help you find that answer without having to ask other people. Keep in mind: using an existing answer is always faster than asking a new question. Even if these steps do not produce an immediate answer, showing that you followed them will make other people more inclined to help you. Indeed, people are much more likely to help if you show them that you have already tried a few avenues yourself.
The first step is thus to search Google. This step alone should answer 95% or more of your questions so, as basic as this sounds, we cannot emphasis this enough: FIRST SEARCH GOOGLE. For example, if you received an error message from the program you are trying to use, cut and paste the message directly into Google. Posting a forum question that could have been easily answered with a simple Google search is often seen as disrespectful of other users, and such a question will potentially be closed or deleted on many forums. If Google did not return a satisfactory answer, the next step is to read the manual of the program you are trying to use. If your question is about a file format, find and read the documentation of the format. If there is a Frequently Asked Questions (FAQ), you should definitely read that too. As the name implies, this document lists questions that come up frequently, so yours may be answered in there. For the manual, the FAQ or wiki site of the program, search for keywords that are related to your question. If you still have no answer, you should experiment some more and try to solve your problem yourself and ask for the help of a friend or colleague.
If you still are without an answer, you clearly need to post a question and you should find an appropriate forum to ask it. Once again, Google should be helpful. It is important to search the forum to see if the question has already been asked and answered, as is often the case. You should also be aware of the forum's rules, which can often be summarized by the following points:
Remain polite at all times Do not post off-topic questions Do not post homework questions Do not cross-post (posting a question on multiple forums) Some forums discourage posting subjective questions You may find that all the preliminary steps described below look a bit long, but if you turn them into a habit, they are guaranteed to save you a lot of time.
The fundamentals of asking the right question
Here is a non exhaustive list of important items to keep in mind while formulating your question:
Choose a good title: It should be brief and precise. A good title will help you attract more people and get answers faster. It will also help other users decide if they are likely to be able to help you without having to read the whole message. An ideal title should be a single sentence and contain all the elements needed to understand what you are going to ask. Titles can be declarative (“Looking for a tool to convert fasta sequences to EMBL”), interrogative (“What is the best way to convert a sequence from fasta to EMBL”), or compound (“Converting fasta files to EMBL: which are the best tools?”). Look at existing questions that have received multiple good responses and use their style as an example.
Avoid asking multiple questions in the same post: In general, people tend to answer only one question at a time. Consequently, if you ask multiple questions in the same topic, you will probably receive answers to only one of them. If you have multiple questions that are important to you, create one post per question, but remember to go through the pre-posting procedure described above for each one. Similarly, once you receive a good answer, avoid asking additional questions in the same discussion. It is fine to ask for clarification on details of an answer, but if you think that a new question can stand alone in a separate discussion, you will get much more visibility by creating a new post.
Give some context: Describe why you are having that problem, not only the specific details of the problem. For example, instead of asking how to convert from file format A to file format B using program C, say something about your ultimate objective. For example, explain why you need file format B in the first place. That way, another user may be able to suggest a better way to reach your goal.
Describe your problem carefully: Now is the time to give enough details about the problem you are experiencing. What Operating System (OS) and version are you running? What program and version are you using? What kind of input file and options did you use? What errors did you receive? It is important to be precise but not overly verbose. If your question is too long, people will not read it. If it is too short, people are likely to misunderstand it and give you a bad answer. Also, you may find that the process of defining your question helps clarifying your problem and may even lead you to a solution.
Show what you have done: You must show the other forum users what steps you have tried to solve you own problem. This step is crucial and will have two important consequences. First, it will serve to motivate them to help you. If you do nothing to help yourself, you send a powerful message to people that they should not spend time and energy to help you either. Second, it will help them better understand your problem and thus yield more useful responses. For example, if you are asking about a programming issue, do not expect users to write a full program in their response. The correct approach is to first create the code that you are capable of and then ask for guidance when you encounter specific coding problems.
Use text formatting: Most forums give you the possibility of formatting your text to make it more readable. You can use bold and italic characters, lists, and formated internet links as well as bits of code to make your question more readable. For example, if you are asking a question about a script or a pipeline of commands, it is useful to add a short example of your code. The code should be long enough so that other users can run it on their computer and contain enough comments so that people can understand what it is doing. Formatting that code properly will ensure that it is more readable in the discussion.
Provide Input and Output files: For programming questions, it is helpful to include a truncated input file and an example of the output format that you desire. If you are using an application that is not working the way you expect, provide a full input file and the error message. This will help potential responders to experiment on their own with your problem and come up with an answer.
Use good and simple English: Using correct grammar is important. It will make your question easier to understand and, once again, people will be more willing to help you. As a consequence, you should avoid slang or SMS style sentences. It is also preferable to avoid specialized abbreviations; even if you are asking a question to specialized people, they may not all recognize the abbreviations in the context of a forum. If English is not your first language, you can mention it in your post, but try your best to write a clear sentences and a precise question. If you need help with your English, you can ask a friend or colleague to review your text. Once you have finished writing your post, re-read it, look for missing details, and seek to improve its clarity and grammar. It should be possible to give an answer by reading nothing but the question. This last step will go a long way to make people feel that it deserves an answer. Time spent making your original post clear will be saved many times later on clarifications.
Tone and curtesy: It is important to be courteous and to remain polite at all times, but also to be direct to the point. You can say "Hi", "can you please explain", and "thank you", but avoid to be overly friendly with "My dear friends" or "Dear fellow programmers". Also, anything that sounds like begging, for example "Help!", "Urgent!", and "Please Help!" is to be avoided. People are likely to avoid answering such posts. Forums are all different. Take some time to look at a few threads with good questions go get a feeling of what is the proper tone and level of politeness on the forum you chose.
Avoid cross-posting: Asking the same question in different forums or online communities at the same time is referred to as "cross-posting". Cross-posting is considered rude because you are making two or more communities work for you when only one may be needed. It therefore abuses the time of other users. If some time after posting a question you have not received an answer on a given forum and you feel that posting on another community may be needed, provide a link to the original question within your new post. Once you find or receive a satisfactory answer, be sure to make it available on both forums.
Now that you have asked your question, what should you expect? If you did things right, knowledgeable forum users are likely to try to help you. If you messed up, you can expect anything from people asking clarification and giving bad answers to having your question closed or deleted. In any case, users and moderators are likely to leave comments for you. Read them and try to use them to improve your present or future questions. If you are new to the forum, note what you did right and wrong. Use that knowledge to improve your future posts and make them more useful to the forum's community.
If your question is not in line with the forum's topics or policies, it may also be moderated. This means that moderators may modify your question, for example changing the title, fixing the grammar, and editing what you wrote. In general, this happens because the moderator is trying to help you improving the question and rising your chances of getting a useful answer. Sometimes, it is possible that the moderators will not explain to you why they have changed your post. They may even involuntarily change the meaning of your question. This usually happens when your original question was not very clear. In any case, the best thing to do when your question gets moderated is to be patient and confirm that the editing did not change the original meaning. You can even add a comment asking for clarifications about why your question got edited.
If you think that the people on the forum have helped you, you can give something in return. A lot of forums have a mechanism where you can chose an answer and mark it as the correct solution. If one of the answers helped you solve your problem, be sure to indicate it. It is a good idea to add a brief note at the bottom of your question that describes how you ended up solving your problem. You may also contribute to the community by helping other people. Even as a novice, your point of view is very valuable to help solve the problems of other beginners. As you gain more knowledge about a subject, helping other users can be an enjoyable way to contribute to your field. Have a look at the questions on the forum and identify those you can answer. As with asking good questions, posting useful answers requires some practice, but similar principles can be applied.
Closing notes Forums are all about community. If you respect their etiquette and code of conduct, you will find them extremely useful and even pleasant to be part of. Also, if you follow the guidelines of this tutorial, you should be on your way to getting more fun and usefulness out of technical forums. On a larger scale, following and contributing to a few forums in your area of research is also a good way to establish contacts and create opportunities for your career.
Acknowledgments This tutorial was greatly inspired by, and borrows heavily from, the following sources. We highly recommend them to anyone wanting to learn more about how to ask questions on online forums.
 Dall'Olio GM et al. 2012: Ten simple rules for getting help from online scientific communities http://www.ploscompbiol.org/article/info:doi%2F10.1371%2Fjournal.pcbi.1002202
 Eric Steven Raymond: How to ask questions the smart way http://www.catb.org/esr/faqs/smart-questions.html