Pretty interesting stuff from a blog written by the authors of the Head First series of books on Java.
Most user communities take a typical path–the newbies ask questions, and a select group of more advanced users answer them. But that's a slow path to building the community, and it leaves a huge gaping hole in the middle where most users drop out. If we want to keep beginning and intermediate users more engaged (and increase the pool of question answerers), we need them to shift from asker to answerer much earlier in their learning curve. But that leaves two big questions… 1) How do we motivate them? 2) How do we keep them from giving lame answers?
Actually, this isn't the biggest problem with most user communities. The real deal-killer is when a new or beginning user asks a "dumb" question. Most supportive, thriving user communities have a culture that encourages users to ask questions, usually through brute-force moderation with a low-to-no-tolerance policy on ridiculing a question. In other words, by forcing participants to "be reasonably nice to newbies", beginners feel safe posing questions without having to start each one with, "I know this is probably a dumb question, but…"
It was precisely that idea that led to the original javaranch… in 1997, the comp.lang.java newsgroup was just too nasty a place to ask questions. Even if you were brave enough to ask an obviously stupid one, the slamming you got was enough to make it your last. And without users asking questions, the community evaporates.
But most user communities–especially the new ones–aren't hurting for people asking for help, they're in desperate need of people willing to help the newbies. And one of the quickest ways to keep a user community from emerging is when questions go unanswered. So the real problem is getting people to answer questions.
Encouraging a "There Are No Dumb Questions" culture is only part of the solution. What we really need is a "There are No Dumb Answers" policy.
The best way to grow a user community is to get even the beginners to start answering questions. The more they become involved, the more likely they are to stick with it through the rough spots in their own learning curve, and we all know that having to teach or explain something to another person accelerates our own understanding and memory of the topic. The problem, of course, is that the beginners are… beginners. So, here are a few tips used by javaranch, one of the most successful user communities on the planet (3/4 million unique visitors each MONTH):
1) Encourage newer users–especially those who've been active askers–to start trying to answer questions
One way to help is by making sure that the moderators are not always the Ones Who Know All. Sometimes you have to hold back the experts to give others a chance to step in and give it a try.
2) Give tips on how to answer questions
Post articles and tips on how to answer questions, which also helps people learn to communicate better. You can include tips on how to write articles, teach a tough topic, etc.
3) Tell them it's OK to guess a little, as long as they ADMIT they're guessing
4) Adopt a near-zero-tolerance "Be Nice" policy when people answer questions
Don't allow other participants (especially the more advanced users) to slam anyone's answer. A lot of technical forums especially are extremely harsh, and have a culture where the regulars say things like, "If you think that, you have no business answering a question. In fact, you have no business even DREAMING about being a programmer. Better keep your paper hat day job, loser."
5) Teach and encourage the more advanced users (including moderators) how to correct a wrong answer while maintaining the original answerer's dignity.
And again, zero-tolerance for a**holes. All it takes is one jerk to stop someone from ever trying it again.
6) Re-examine your reward/levels strategy for your community
Is there a clear way for new users to move up the ranks? Are there achievable, meaningful "levels"?
I'd love to hear some examples of other user communities you think are doing a good job at this. Javaranch isn't perfect, but it's one of the best I've seen (again, all the best stuff there happened after I turned it over to Paul Wheaton, so I can't really take credit).
Also, before you point out counter-examples of successful communities like slashdot… remember, I'm talking about user communities–people using a particular product or service–and not just any community. I'm sure there are tons of, say, political forums where a "be nice" policy is not only unneccessary, but most likely impossible.