Asking good questions

Learning objectives
  • How to ask a good question
  • Where to ask questions

Eventually you will get stuck when trying to do something. This lesson is about how to get help with getting unstuck.

People love helping others. Below some tips on how to improve your chances of getting a good answer. The answers you get will depend very much on the way you ask your question.

Mailing lists
For LHCb specific questions your best bet are the LHCb mailing lists like: <>, <>, and <>. For more general questions Stack overflow and google are good starting places.

The title/subject is the first thing people will see of your question. If it is not interesting, they will not read the rest. If you are struggling with a good title, write it last! Having written the rest of your email will give you a better idea of what the one sentence summary is.

Grammar and spelling
This is a no brainer. You want to make a good impression: someone who made an effort and values other people's time. If you aren't comfortable with writing in English, ask a friend to proof-read your email for you.

Most people like hard problems and thought-provoking questions. So give them an interesting question to chew on, and they will love it.

Despite this, mailing lists have a reputation for a hostile tone and an air of arrogance. People are hostile towards people who seem unwilling to think for themselves or did not do their homework before asking their question.

Remember people are volunteering their time to help you. They have busy lives and there are a lot of questions. So they filter ruthlessly. Make sure your question is the most interesting one out there, and people will choose to help you.

It is OK that you are not technically competent, what you need to show is that you have the skills to become competent: alert, thoughtful, observant, willing to be an active partner in developing a solution.

Before posting your question try:

  1. searching the archives of the forum/mailing list
  2. searching the web
  3. finding the answer in a FAQ
  4. finding the answer by experimenting
  5. asking a skilled friend
  6. or reading the code

When asking your question, mention which of these steps you have tried. It will help demonstrate that you are not lazy and put in some effort. If you learnt something from trying this, mention it!

The beginning of your email should explain what you are trying to do and why, as well as where the problem occurs. Often it is useful to describe the big goal, and not the particular step you are stuck with.

Help others reproduce your problem by including the necessary details. If the problem is with code you wrote, include it. However do not post all of your program. Try and make a minimal example that demosntrates the problem. Stack overflow has a good guide on creating a minimal, complete, and verifiable example.

You have to be precise. Do not simply dump all possible information that might be relevant. Vague questions receive vague answers. Being precise is useful for at least three reasons. One: being seen to invest effort in simplifying the question makes it more likely you'll get an answer, Two: simplifying the question makes it more likely you'll get a useful answer. Three: In the process of refining your bug report, you may develop a fix or workaround yourself.

When people post replies or questions about your problem, follow them up. If you manage to solve your problem, tell the mailing list.

Love letters also known as private replies
Please do not reply to questions privately. We are trying to solve a technical issue, not writing lover letters. If you take the discussion off the mailing list future generations will just see the question and no solution. You will also miss out on help from others that did not chime in to your first question but might be able to help later on.

Once the problem is solved post a final message saying that the problem is solved and what the solution is.

A lot of the material in this topic was taken from the following, excellent guides to asking good questions: