Consult & Research

If you're really stuck then it's time to get some help.

Get your question into a form which is useful to other people. While it's amusing to get an error report explaining "I can't use the website..." because "I didn't go into work today", the point of debugging is to fix things as quickly as possible, not to spread more emails around the world.

Start by phrasing the question well. If you ask a garbled question, you’ll get complete rubbish back. Start by getting your terminology right, and use the most specific terms you have accurately. This doesn't mean liberally using the most technical terms you know, it means making sure you understand the terms and using them in context.

After the content-free call for help ("something is wrong"), the next worst is the inaccurate but overly confident use of technical terms. Anything claiming "there is a problem with the database sessions" because someone got logged out, while apparently helpful actually isn't. The stuff you want first is "someone got logged out while doing X and Y and in browser Z".

At more technical levels, the same rules apply. Gather the information and accurate technical terms into a pithy description of the problem. The quickest way to solve a problem can be to ask for help, but asking for help isn't the quickest way to solve a problem. [link]Adding more people to a project doesn't speed it up, and the same can go for problems.

Your question must contain:
  • Good description of the bug, including steps to replicate 
  • What you’ve tried so far 
  • The evidence that shows you've tested the usual things
Stackoverflow has guidelines on etiquette along the same lines. It's so important when asking help of someone busy to keep to the point and to know what you need out of them:

  • Writing down the question clearly 
  • Making them aware that you need an answer - this is particularly applicable if you have an in-house professional 

If you start needing help from other people, it’s a good idea to keep your bug report neat and readable so that other people can get up to speed easily. If you're using Bugzilla, Redmine or some other bug tool then keep the summary really clear, with steps to replicate and all the latest information. Remove irrelevant information from the summary so you don't waste other people's time.