Smart Questions
In the middle of a question.

Clearly articulate your problems and needs

Rambling questions are a near-endless black hole of time. The people who are most likely to give you useful answers are usually the very same people who are the busiest (they are busy because they have to do most of the work themselves). Such people are quite averse to unchecked black holes of time, so they also tend to be averse to rambling questions.

Be clear about what you want others to do

You're most likely to get a useful answer if you explicitly state what you need the respondent to do (e.g., provide pointers, send a piece of code, check your patch, or something else, etc.). Because this sets an upper limit on time and effort, it makes it easier for the respondent to focus on helping you. This is great.

You can explicitly request it:

  • Help you determine where to troubleshoot next.
  • Check a minimal replication example.
  • Let's see if the patch idea makes sense.
  • Point out relevant documents or key concepts.
  • Determine if the error message points to a certain type of common cause.

These requests have boundaries. They do not ask someone to take over your problem indefinitely.

Respecting the scarcest resources of experts

To understand the world experts live in, imagine expertise as an abundant resource and time to respond as a scarce resource. The less time you ask them to dedicate, the more likely you are to get answers from experts who are truly professional and busy.

Therefore, your question should allow the respondent to make a quick decision: do I understand the question, what information do I need to see, and can I give directions in a few minutes.

Simplifying a problem is not the same as hiding information

So, the technique of defining your question so as to minimize the time the expert has to spend identifying your question and answering it can be quite helpful in getting you a useful answer -- but this technique is usually distinguished from simplifying the question. Thus, asking I'd like to understand X better, can you point me in the direction of a better explanation? is usually better than asking Can you explain X? is usually better than asking "Can you explain X? If your code doesn't work, it's usually wiser to ask someone else to see what's wrong than to ask them to fix it for you.

Good questioning will narrow the problem down to a manageable size, but it won't delete the key facts needed to make a diagnosis. You want to reduce the noise, not the evidence.