---
title: What Makes a Good Question
date: 2015-09-06
tags: questions
excerpt: Asking clear, concise, and complete questions is a crucial skill for a developer.
---

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 in all of those 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 individual ready to share their expertise and knowledge. Knowing how
to tap into that network is a crucial skill for today's developer. In order to
do so, a question must be **clear**, **concise**, and **complete**.

## Clear

Developers must ask question where the problem is obvious to the reader. The
problem itself cannot be buried within the question. It must be front and
center. 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, and
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 - if that is not the case, 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 to figure
out what the problem actually is. Make sure to state all the relevant facts of a
question - what are the configuration settings, for example, what is the error
code, what is the expected output, what is the actual output, etc. 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.

Add post on asking good questions
Add post on asking good questions
