It's time to come clean. I can be a little bit short with people who post questions that aren't of the highest standard. This article is an attempt to set guidelines on how to ask questions on the forum that stand a chance of being answered. I apologise in advance for stating the blinding obviousness in some of these.
Picking the right forum
This is absolutely vital. There's no point asking somebody how to use AfxMainWnd in the VB.NET forum. When you come to choose the forum for your question, stop and ask yourself where the experts in this particular area might be. Don't post the same question across all boards hoping that you will attract attention. Remember that your question might not get answered on a forum straightaway. The experts don't hang around the forums like lions around a watering hole. You have to remember that they have lives away from the boards and that they will get to your question as and when they can.
Remember, a well-chosen forum helps you get your question answered.
The subject of your post is the chance for you to indicate the potential area that you are having the problem with. Take some time over your subject. Remember that this is the first thing that people will see about your problem. Don't use Urgent, Question or Plz Help. These don't offer me any clues as to what your problem is (apart from unclear thinking) and generally only serve to irritate people. A meaningful subject will serve to draw people in. Which of these subjects looks better to you?
Urgent. Help Needed
Problem with XmlSerialization on byte field.
I suspect that you would agree that the second question is more likely to draw people in. It gives an indication as to what the problem is and, at a glance, people with knowledge of this area can see that it is a subject that interests them.
The actual content of the query will determine how much help you will get. There are some general rules that should be followed at all times. These rules aren't presented in any particular order. Well, not except for Number 1, which should be your first port of call.
- Search Google. If you have an error number, for instance, search Google for the error before you even consider the forums. If you can't find what you want on Google or you don't understand what you have seen, then post the question. However, make it clear that you have researched the topic in Google and show us what you've already rejected from the list.
- Tell us what you have already tried. There's no point in me giving you help if you've already tried what I'm telling you.
- Tell us what the steps to recreate your problem are. Don't put in bland statements about "I ran the program and it crashed."
- Provide information about what errors you get. Don't just say that you had an error in your SQL. Tell us what the error actually said.
- Make sure that we can understand the problem you are facing. A clear statement of the problem is your greatest aid when it comes to getting somebody to answer your question.
- Don't overwhelm us with a 1200 line listing of your code. Show us the portion of the code that is failing. Ideally, present us with a short 20-line piece of code that demonstrates your problem.
- If people post that they still don't understand the problem, don't get mad. Clarify it instead. Add extra detail and keep the content pertinent.
- Don't be creepy. Nobody likes a crawler, so you shouldn't post you question in such a way that people think you are trying to ingratiate yourself.
- Don't write a novel. Frankly, I don't care that you are the next Stephen King. You may be building up suspense nicely and your character development may be wonderful, but if I haven't got to the meat of your post within 10 lines then I'm going to stop reading.
- Questions that are obviously homework probably aren't going to get helpful replies.
- We aren't here to do your work for you. If you are working as a developer, it is a reasonable assumption on our part that you should have a certain level of skill. If you don't reach this level, then we're not going to help you pull the wool over your bosses' eyes.
The whole point of your post has been to get somebody to answer your plaintive cry for help. Be aware that you may not always like the answer. If you haven't followed the etiquette for posting then you may fall afoul of the predators who roam the forums looking for the weak to prey on. You may run away from here, clothes torn to shreds, shouting that you will search Google first next time.
If you've been good, then you may have an answer to your problem. It may not be the whole answer, and it may lead to further questions, but you have an answer. Remember that people don't have time to write your 3000-line program for you. They will often give you areas that you need to research yourself.
It is always acceptable to post replies to answers. If you aren't sure what somebody means, then the best way to get clarification is to ask them. If somebody has been good enough to give you an answer, then it is common courtesy to reply to them. Let them, and everybody else who reads the thread, know if their advice leads you to a solution or not. Don't forget to vote for them as well.
Reposting a question
Don't repost a question just to get it to the top of the boards. The important thing to remember is that the people who are helping out on the forums will answer questions in their own time. They all offer help freely, in their own time and don't get paid for helping you.
If somebody has offered a reply to your question and you don't understand the reply, or it doesn't work for you then reply to them on the original post. Remember that the forums are here for everybody, so it is helpful for people to see the complete sequence of events that lead to your solution. If you post a new question stating that nobody helped you before and somebody happens to see the post who answered your original post, well you had better have fireproof underwear because you will get flamed.
If you have had no replies, then you may need to take steps to try to attract people to your question. This could be something as simple as rewording the subject to make it more meaningful.
Is it ever acceptable to repost? Well, this is subjective, but I would say that if you haven't had any answers in over a week on a busy forum then it would be acceptable to repost. But, you need to learn from your first post: if it didn't get answers then either people didn't understand what you were trying to do or it is so obscure that people just didn't know the answer. If the problem was down to your first post being unclear then make sure that the repost is clearer and follows the steps laid down here.
I must make a plea here: please don't delete posts when you have the answer. We all have embarrassing posts, so don't think that you need to remove the post because you think it's a naïve question.
This is not a tech support forum
Now the bad news for you. You aren't paying for help, so the support that you get may sometimes be patchy; it may sometimes be rude and it will be dealt with when somebody has time. If you really do need somebody to diagnose a problem with your code before your big presentation this weekend, then you are probably going to have to pay for a support call at a company like Microsoft.
If you have a problem with XYZ component from XYZSoft, then they are the place you need to go to first. A lot of companies have support forums, so it is in your interest to post your questions there. Remember that they will generally have staff monitoring their forums and that they are the ones best placed to help you.
It is important to remember that not everybody on the boards speaks English. What can seem insulting or peremptory could simply be the fact that the person who types it isn't aware of subtle connotations in the English language. Or to put it another way, some people may seem to be giving you commands when they are asking for your help.
Now for the one thing that really unites people: text speak. Avoid it at all costs. Don't type in "Plz hlp me 2 solve ths prblm. Itz urgnt." You have the full width of the computer screen and you aren't charged by the character, so use sentences to explain yourself.
Occasionally, you will get flamed. Don't dwell on it and don't let it fester. Sometimes people will have a go at you because you didn't follow the rules. It's not personal so don't make it so; it's just the nature of people on the internet. Whatever you do, don't get dragged into a slanging match. If you do get flamed, don't respond.
Following a few simple rules will help you to get an answer to your problem. More importantly, it will help you gain the respect of your peers on the boards. If you have any other rules to add here, please feel free to get in touch and if I agree with them I will add them to the article.
- 1 June, 2007 -- Article edited and moved to the main CodeProject.com article base
- 4 May, 2007 -- Original version posted
A developer for over 30 years, I've been lucky enough to write articles and applications for Code Project as well as the Intel Ultimate Coder - Going Perceptual challenge. I live in the North East of England with 2 wonderful daughters and a wonderful wife.
I am not the Stig, but I do wish I had Lotus Tuned Suspension.