Asking Good Questions
A good question lets the reader answer without first asking you five clarifying questions. It states the goal, shows the evidence and says what you have already tried.
Before you ask
- Define the problem. What did you expect, and what happened instead?
- Search first. Read the error message, the documentation and the project’s own tickets and chat history.
- Narrow it down. Reproduce the issue in the smallest setup you can. See Reproducing Bugs and Troubleshooting Methodology.
- Explain it aloud. Describing the problem step by step, even to a rubber duck, solves many of them.
- Set a time limit. Decide how long you will struggle alone, for example 30 to 60 minutes, then ask. Asking too soon wastes others’ time, and too late wastes yours.
What a good question contains
- The goal: what you are trying to achieve, including the step that fails. This avoids the XY problem, where you ask about your attempted solution (Y) instead of the real problem (X).
- Context: language and tool versions, operating system, environment, what changed recently.
- Evidence: the exact error text, a log excerpt, a failing test, a minimal code sample. Paste text instead of screenshots when you can.
- Attempts: what you tried and what happened. This stops people suggesting the same thing.
- A clear request: the kind of help you want, such as a pointer, a review of an approach or a yes/no.
Never paste secrets, personal data or confidential code into a public place. See Secrets Management and Confidentiality and AI.
An example
Weak: "The build is broken, can someone help?"
Better: "I am trying to build the api module locally (Linux, Node 22, main at
commit abc123). The build fails at the lint step with
'Cannot find module config/local'. I checked that the file exists,
re-ran the install and cleared the cache. The same commit passes in CI.
Could my local setup be missing an environment variable?"
Etiquette
- Ask in the right channel, and in public when others may benefit.
- Do not post “hello” or “can I ask a question?” on its own. Send the question itself.
- Follow up: report what worked, thank the helper and, when the fix was non-obvious, write it down for the next person.
Try it
Take a problem you got stuck on recently and write the question you should have asked, with goal, context, evidence and attempts, in under 150 words. Give it to a colleague and ask what they would still need to know.
Common mistakes
- Asking about your attempted fix (Y) instead of the real problem (X).
- Posting "hello" or "can I ask a question?" instead of the question.
- Pasting secrets, personal data or confidential code into a public place.
- Sending a screenshot when the error text would do.
Check yourself
- What is the XY problem?
- What should a good question contain?
- How do you decide when to stop struggling alone and ask?