Friday, September 27, 2013

A checklist for asking good questions

I love answering questions about MvvmCross (and more besides) and I spend lots of time doing it.

Often the questions are a joy to answer - and they help add lots to MvvmCross itself.

Here's a checklist of tips to help make sure your question is a joy to answer. It's stolen and adapted from Jon Skeet at:

  • Have you done some research before asking the question? 
  • If you found anything relevant did you include that in your question?
  • Have you explained what you've already tried to solve your problem? 
  • If your program throws an exception or performs 'incorrectly', have you tried to reproduce the behaviour in a small test app?
  • Have you specified which language and platform you're using, including version numbers where relevant? 
  • If your question includes code, have you written it in a way that will allow others to run it? Are there missing parts? Have you cut out as much excess code as you can?
  • If your question includes code, have you checked that it's correctly formatted? 
  • If your code doesn't compile, have you included the exact compiler error? 
  • If your question doesn't include code, are you sure it shouldn't? 
  • If your program throws an exception, have you included the exception, with both the message and the stack trace?
  • If your program throws an exception or performs 'incorrectly', have you included any trace or log messages that might be useful?
  • If your program produces different results to what you expected, have you stated what you expected, why you expected it, and the actual results?
  • If your question is related to anything locale-specific (languages, time zones) have you stated the relevant information about your system (e.g. your current time zone)?
  • Have you checked that your question looks reasonable in terms of formatting? 
  • Have you checked the spelling and grammar to the best of your ability?
  • Have you read the whole question to yourself carefully, to make sure it makes sense and contains enough information for someone coming to it without any of the context that you already know?  
  • If you've included a technical term is it going to be clear to a reader what you meant by that term - e.g. if you asked "I want to display a notification" then does that mean just some/any visual indication or does it mean an Android notification?
  • Does your title describe the question you've asked?
  • Have you asked about just one thing? Answering one specific question is much easier than answering several different things at the same time.
And one more....
  • Have you tried squeezing a technical question into 140 characters on Twitter? If you have, please delete your tweet and try asking with more detail on StackOverflow or on a forum. 

Thanks to Jon Skeet for the base list at: - and for posts like too

1 comment:

  1. See also which is now the site that StackOverflow users will be pointed to if their questions aren't quite up to scratch.