Here's a short list of questions to check after you've written a question (and to think about before you write the question). Please consider addressing as much of this material as reasonably possible, although some material may not be relevant to your particular type of question:
Checklist - Basics and Problem background (Ordered by importance)
- Have you clearly explained what the exact problem is?Hint: "It doesn't work" is not a clear explanation
- Have you done some research before asking the question? 1
- Have you explained what you've already tried to solve your problem?
- Have you documented whether this is a new installation or an existing install? If troubleshooting a problem with an existing installation, have you explained when it stopped working correctly? Have you explained any known change-points that may have contributed to the problem?
- Have you provided some relevant context about the needs of the business environment and/or software applications that you're supporting?
- Have you explained why this question is important for you to resolve?2
Checklist - Device Configuration (Ordered by importance)
- If your question doesn't include a configuration, are you sure the configurations are not required? Hint: most people will want to see configurations even if you think they aren't necessary
- If your question includes a configuration, have you checked that it's correctly formatted? 3
- If your configuration produces different results to what you expected, have you stated what you expected, why you expected it, and the actual results?
Checklist - Other Technical Details (Ordered by importance)
- Have you specified which hardware you're using, including firmware version numbers?
- Have you included a diagram of the problem (especially if it involves more than two devices)?
- Are you sure you've provided enough details such as operating systems, addresses, protocols, link types, link speeds, or interface names?
- Have you included relevant details about timing, syslog, or application log entries?
- If your configuration results in an error, have you included the exact error, as well as any tracebacks?
- Have you included information about normal vs excessive CPU utilization / memory usage, and what conditions seem to cause those to change?
- If your problem is related to traffic, have you included details about the protocols? (IPv4 / IPv6 / ICMP / TCP / UDP / port-numbers)? Is it worth mentioning packet sizes or including a wireshark/cloudshark capture?
- If your problem is related to traffic volume, have you quantified the conditions for when the system works and what changes when it does not work?
- Have you included information about what manuals or reference material you consulted when trying to resolve your question?
Checklist - Presentation (Ordered by importance)
- 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?
- 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? 4
Any Relevant "no" Answers?
If the answer to any relevant questions is "no", please consider adding the relevant information to your question. This may seem like a lot of effort, but it will help you to get a useful answer as quickly as possible; and you might even solve your own problem in the process! 5
If you're interested in including this as a comment somewhere, you can use
http://tinyurl.com/ne-checklist, instead of the long stackexchange.com hyperlink.
Don't forget that you're basically asking other people to help you out of the goodness of their heart - make that as simple as possible for them.
1 If you went from "something is wrong" to "asking a question" in less than 10 minutes, you probably haven't done enough research. This should include things like normal web searches (e.g. for an error message you're receiving), checking the documentation, debugging / troubleshooting, and searching on Google itself for similar questions. When you explain the problem, try to avoid making assumptions about the solution.
2 While it might be obvious to you that this is important to resolve, other people might wonder why you're even asking (particularly for hypothetical or protocol-theory questions). Explaining why the question is important increases your chances of getting an answer.
3 Try to avoid configurations which make users scroll horizontally. You may well need to manually line-wrap a few lines. Take the time to make it as clear as possible for those trying to help you.
4 English isn't the first language for many Stack Exchange users; we're not looking for perfection - just some effort. If you know your English isn't good, see if a colleague or friend can help you with your question before you post it.
5 This is a bit like rubber duck debugging