What Makes a Good Question


The explosion of interlocking frameworks and technologies that are being used to build even the most trivial application has made it nearly impossible for a particular individual to be an expert all relevant technologies. For example, a Jekyll blog utilizes HTML, CSS, Javascript, Bootstrap (optional), Markdown, YAML, and Liquid. All of that for a simple static site!

Luckily, in today's programming world, developers work within a large, diffused network of individuals ready to share their expertise and knowledge. Knowing how to tap into that network is a crucial skill for today's developer, but in order to do so, a question must be clear, concise, and complete.

Clear

Developers must ask questions where the problem is obvious to the reader. One successful strategy to accomplish this is to clearly state the expected output / results as well as the actual output / results. Phrasing a question in this way makes it clear what the actual problem is, where you think the problem lies (since you expected a certain output), and, most importantly, keeps others from expending their energy on trying to figure it out.

Concise

Concise questions are important for several reasons. First, concise questions are more likely to illicit a response from others. Concise questions are also likely to state the problem clearly - there is little space for the problem to 'hide' in. Finally, there is likely a high correlation between a concise question and someone that knows what their problem is as opposed to someone who simply is looking for a solution w/o understanding the problem.

Complete

Request for help from the broader community, of course, must be complete. This completeness ensures that as little time as possible is wasted trying re-hashing solutions that have already been explored and found lacking. Of course, the need for complete questions must be balanced with the need for concise questions. Judgment is necessary to make sure that the right balance is found.

Asking clear, concise, and complete questions will ensure that those of us who participate in this community do so with respect for each other's time.