I have a question I want to ask in the Orchard Forums today. I still haven't asked it as of this blog post, because I got sidetracked on two things. First, anytime I plan to ask a question on the Orchard Forums I like to answer at least 1 question if possible. This is just being a good neighbor and I encourage others to do it. If you are planning on asking a question in any forum, pay it forward and answer a question first. Second, as I was reviewing the forum questions, I thought of some forum best practices that I thought would be valuable to the community. This led me to this blog post.
Forum Moderator Experience
As a bit of background, I have a bit of forum moderator experience. As a Microsoft MVP, I have the opportunity to be a forum moderator in the Microsoft Forums. I did this daily for a number of years in a variety of forums. I have a fairly broad background in numerous technologies, so I was able to moderate numerous forums. I was even a top answerer in one of them for a time. This isn't saying I was the best at the technology, but that I cared enough to find the right answer and make it available for others. This is part of being a Microsoft MVP.
I also moderated the Enterprise Library Forums for awhile. This was also another incredible joy and challenge in my life. Enterprise Library is an incredible library that has changed in many ways over the years. I considered myself an expert, and to some degree I was, but you don't know Enterprise Library or any technology until you have to answer a wide variety of questions, in different contexts, and with such a sophisticated library that touches many, many technologies.
Needless to say, I have a lot of experience as a forum moderator over the years and have picked up a few best practices. I only want to mention a couple today and I will continually fill this with more information as I find time.
Best Practice #1: First Give, Then Receive
As I mentioned earlier, I don't feel I have earned the right to ask a question in the Orchard Forums until I have first answered a question. Even if I can't answer a question off the top of my head, I still feel a need to pick a question and search for the answer. It is an opporunity to learn and help a fellow Orchard Developer!
Once I have answered at least 1 question I then feel I have earned the right to ask a question. This is the bare minimum, but certainly IMHO shows respect and appreciation for those who answer and participate in the forums.
I feel this is common sense and just being a good neighbor, but given deadlines and busy schedules it is very easy to overlook the obvious. Certainly if you are new to Orchard there is leniency as you tend to ask more then you answer in the beginning. I just ask that you don't forget the generosity that you received early in your studies.
Best Practice #2: Search Before Asking
Numerous questions in the Orchard Forums have already been asked and it is just a matter of searching the forums ( or a search engine ) to find the answer. You may have to vary your keywords, but 9 times out of 10 your question has been asked and answered, but may be phrased in a different manner. Search the forums. Search using a search engine. Browse the documentation. Check the issue tracker. Use different keywords. Only until you are convinced the question has not been asked and answered do you want to ask the question. If you find the same question in the Orchard forums but it has not been answered, bump the question!
Best Practice #3: Provide Detail and Context
As I browse the questions in the Orchard Forums, the person asking the questions is often leaving out a lot of detail and context since they are so close to the problem. Just because you know the details of your problem, don't assume forum participants are as knowledgeable about your particular problem. Give detail as to the version of Orchard, what you are attempting, the actual errors, and anything else that would be important. If you provide a vague question, expect a vague answer. It isn't until we know the exact problem and error, can we provide an exact solution. The sooner you provide enough information to adequately answer the question, the sooner you get a good answer.
Best Practice #4: Choose Topics Wisely
In the CodePlex Forums you have the option to assign your question to multiple topics. It is good practice and just good manners to tag your question to appropriate topics as opposed to choosing all topics or inappropriate topics. This makes it easier for members to answer questions they enjoy answering or for which they have expertise. It also makes it easier to browse questions on particular topics to learn or find answers. I encourage you to choose appropriate topics for your questions to create an ideal forum experience. For example, the "Jobs" Topic, is to help end users find help and developers get jobs, not for you to ask a question on how to create a theme or understand the Taxonomy Module. Spamming the forum doesn't help you get an answer quicker, and because this is a personal pet peeve, I am less inclined to answer your question as it shows a level of disrespect. Please choose the topics appropriately even though I realize there is some overlap.
Best Practice #5: Convey You Have Attempted to Find the Answer
Participants who answer questions on the forums appreciate when a person has attempted to solve the problem themselves. Did you try different methods to solve the problem? Did you look through the source code? Did you search the forums for an answer? Did you check the issue tracker to see if it it a known problem? Is the answer documented? Or, did you just fire off a question in hopes that someone will help you without trying to solve the problem yourself? Again, it comes down to a level of respect for someone's time. The more you convey that you have attempted to solve the problem not only shows that you respect someone's help and time, but it also provides more context to the actual problem making it easier to answer.
Best Practice #6: Teach a Person How To Fish
Let's switch gears and give a best practice for those who answer questions on the Orchard Forums. Your goal is to educate users on how to solve problems and answer their own questions first, and then answer the question second. Ideally you want to reference documentation, source code, issue trackers, blog posts, and other information to educate them on how to answer this question and future questions. This takes a bit more effort in the near term, but provides a more educated and less dependent community in the long run. Sure you may get more visibility and participation credit by feeding people the same answers over and over, but it just reinforces an unhealthy environment. Be a teacher!
That's enough best practices for now. I just want the Orchard forums to be a very useful knowledgebase and pleasurable experience for those who both ask questions and answer questions. If the question is important enough to ask and utilize someone's valuable time, it makes sense that the question is asked in a very meaningful and respectful manner. I have other thoughts on this, but this is a good start. Let's make all forums, and especially the Orchard Forums, a valuable experience.
Have a great day!