Good Questions: The art of asking the right question.
It is said that if you want a good answer, you must first ask a good question.
Asking good questions is a skill in itself and can be improved with practice. For the purpose of this post, I will focus on asking good questions in a forum such as Stack Overflow. These techniques could certainly be applied anywhere you need to ask a question whether it be in a forum, via e-mail, or even in person.
When asking a question in a forum, the first thing to remember is write a good title for the question. This should be a summary of the question that communicates the main problem in as few words as possible. If you are struggling to come up with a good title, it may be advisable to write the question first and then go back to write the title.
It is also a best practice to write the title in the form of a question if possible. However, you should not force it into the form of a question if it doesn't make sense. Writing in the form of a sentence is more enjoyable for the reader and can help to commmunicate more clearly what the intent of your question is.
It is also extremely important to provide as much detail and contextual information as possible, both in the title and the body of the question. Make sure that any and all pertinent information such as the language being used, the platform, the operating system, and any other specification which would possibly change the solution. Keep in mind that it is important to provide any constraints and an explanation of why those constraints are important. Otherwise, you may end up frustrating others by wasting their time to write a solution that was somewhat obvious.
In the body of your question, make sure to include the main intent of the question as well as the steps you have taken to try to solve it. By giving these steps, you will help others to gain a better understanding of what you are actually trying to solve, and what won't work as well as why it won't work.
Include code snippets whenever possible. Make sure to provide just enough code so that others can duplicate your problem, but no more than that.
If you are new to posting questions on a forum, this might seem like a great deal of work just to ask a question. It's worth it for many reasons. First of all, you don't want to waste other peoples time by writing a bad question. This can hurt your reputation and it's just not a good practice. Second, sometimes when you go through this process, you will actually uncover the answer to your own question which may save you and others a considerable amount of time.
It is also worth noting that spelling, grammar and formatting is important. Most likely, this will be your first encounter with those who are trying to answer your question. By proofreading your post, you can ensure that their first impression of you will be positive and this could make the difference between whether or not someone takes the time to answer your question. The formatting of the post can be crucial when it comes to others being able to read it efficiently and ultimately have a full understanding of the problem.
Let's do something EPIC!