8 Aug 2007

Unleashing The Potential of the Ruby Community

Author: ceefour | Filed under: Beginner, Friends, Indonesia, Opinions, Praises, Ruby, Tips

We’ve got a great language, Ruby. We’ve got great libraries. We’ve got great frameworks (including Rails.)

Last but definitely not at least, and simply the most important, is that we’ve got a great community.

So where do we go from here? For example, from the Ruby Indonesia mailing list, id-ruby

Let me summarize this post in one excellent illustration courtesy of Creating Passionate Users:

communityvsbudget Unleashing The Potential of the Ruby Community

What follows, is a verbatim concatenation of each of Kathy Sierra and friends’ related articles. Beginning with the one that includes the above picture.

User Community and ROI

Every time I give a talk, someone always asks, “That’s all good and nice that helping users learn is the key to creating passionate users… but who’s going to do all that extra work? Who’s going to make the extra tutorials and better docs?” Answer: your user community. Think about all the things a strong user community can do for you: tech support, user training, marketing (evangelism, word of mouth), third-party add-ons, even new product ideas. And that’s not including any extra sales you might make on community/tribe items like t-shirts, stickers, and other gear.

Yes, there’s still a budget… but we’ve all seen third-party fan/user groups that got no support at all from “the mother ship” and yet thrived and gave users a level of support and training the company didn’t provide. But there’s still that little of issue of getting users involved, and for that–the single biggest factor is getting users involved at a much earlier path on their learning journey than typically happens.

This picture is from an earlier post:

buildingausercommunity Unleashing The Potential of the Ruby Community

In Building a User Community Part 1 we talked about the importance of not only a strict “There Are No Dumb Questions” policy, but also an even more dedicated “There Are No Dumb Answers” message.

Today, this post will offer a few more tips on how to use your marketing budget (tiny as it may be) to build, support, and grow a user community from the beginning.

* Host some kind of discussion forum (can include chat, wikis, and blogs as well), and do whatever it takes to get people there as soon as possible, ideally while the thing is still in beta (but it’s never too late to start!)

* Look on other third-party forums where users are discussing (which usually means struggling) your product, and find the most active people. Reach out to your earliest adopters or strongest new users and offer them non-paid incentives for becoming active. Chances are, if you have any users at all and your product is even the least bit complicated, people are discussing it somewhere. This could be anywhere from Amazon product reviews to technical discussion boards and even comments on related blogs.

* Make these folks life-time “charter members” with special privileges and recognition as ‘founders’ that nobody else will ever get.

* Have levels and rewards for participating (but again, not money–that totally changes the motivation, or at least the perceived motivation). The rewards can simply be status, early access to betas, and especially restricted access to the developers where they can discuss their ideas or at least listen to the engineers and designers describe why they made the choices they did, etc. [Don't reward people for post quantity alone... if post-count is the only criteria, you end up with a zillion useless posts]. Study successful user group communities for examples (like, say,–3/4 million unique visitors a month).

* Teach users how to help other members by creating documents (or getting other users to write them) on how to ask and answer questions in the most productive way.

* Include some just-for-fun activities in your community, like one (usually ONLY one) totally off-topic forum.

* Make sure there are interesting, easy-access ways for users to get to know more about one another. Be SURE to have user profile pages that include gender, photos, and some other personal info in addition to the specifics related to this particular community. Which leads to…

* Encourage members to meet offline! Hold a dirt-cheap User’s Conference, ideally in more than one city, to get things started. Start a forum from the people who sign-up for the conference, and offer user group or forum leaders free entry to the event (and be sure to have a private user group or forum leader cocktail reception). Tips for that are in this recent post on face-to-face). Create a document on How To Start A User Group, and make sure users know how to get it. There is a great series of posts on how to start a user group written by the guys behind the Edmonton .NET User Group. (Thanks guys)

* Encourage forum moderators or other community leaders to have their own private discussion space.

* Don’t tolerate abuse of the beginners, but don’t force the experts to have to put up with newbie issues. As any community matures, you must provide separate areas for newbies and experts… if the community culture is one of generosity and motivation, there will still be enough experts who want to spend time helping newbies.

* Why not help your top community leaders get a book deal? You never know… if it’s a tech topic, direct them (or yourself) over to Wiley publisher Joe Wikert for some excellent and candid advice (search his archives, and you’ll find everything from how to write a proposal, whether you need an agent, etc.)

* Consider starting a monthly “official” user group membership subscription, with something that comes in the real mail each month. Think about it. Think about how you feel when Fedex or UPS pulls up with that little Amazon box with the smile on the side. Each month, send them a newsletter or DVD. Where’s the budget for that content? Get your users involved! Have them submit things, and use the small monthly membership fee to cover the cost of materials and mailing, etc. Maybe you can partner with a sponsor on this, to include other things in the monthly “kit.”

* Create limited-edition, not-for-sale t-shirts, stickers, and other gear JUST for the founding community members (if you’re just getting started in building a community). For ongoing communities, do the same thing and distribute them randomly, for free. Use the principle of “intermittent variable reward” that works so well to make slot machines and twitter so addicting ; )

* Make your community leaders or even just active participants HEROES. Create “superhero” Moo cards for them. Plaster their photos everywhere. (Cute story I heard from a reader here — she met her husband online while they were both moderators for an Autodesk CAD forum.)

* Host an offline retreat just for the key community leaders. Can’t afford to do what Microsoft does with its Search Champs? Can’t afford to put people up at the “W”? Have a campout. Supply the marshmallows.

* Above all, keep teaching members to teach other members. Give everyone a crash course in learning theory. The better they become at helping others–the more skills they develop in mentoring/tutoring others–the more meaningful and motivating it is for them to keep on doing it..

These are just a few tips for now. Stay tuned for more. And of course, please add your own… while I have quite a lot of user group/community experience having launched several groups from scratch, they were all technology-related, and many of you are from very different domains.

This one below, is a killer article about the “chasm” between newbies and “experts”:

How to Build a User Community, Part 1

buildingausercommunity Unleashing The Potential of the Ruby Community

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 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.

Your ideas?

And another great one about online communities:

Building a successful online community

slashdotthread Unleashing The Potential of the Ruby Community

javaranchthread Unleashing The Potential of the Ruby Community
It was March 26, 2003, in the Santa Clara Convention Center in the heart of Silicon Valley. It was the ceremony for the closest thing geeks have to an Oscar–the Jolt Cola/Software Development Magazine awards.

The last awards category was “Websites and Developer Networks”.

First the finalists are announced, with all the usual suspects including Microsoft, IBM, BEA… and javaranch. WTF? Javaranch? It had no corporate sponsors. It was not a business. It was a quirky, no-budget all-volunteer community, run entirely by people who just wanted to be a part of it. It was simply a Java “fan” site–but a hugely successful one with numbers most sites would kill for–over a half-million unique visitors a month.

So how did Javaranch do it? (Oh yeah, they did win a 2003 award that night, and the next year as well, beating out Sun’s and Microsoft for a 2004 Jolt award.)

They did it by being passionately, single-mindedly, ferociously committed to enforcing one rule: “Be Friendly.”

Not that you can’t have a huge community without that rule… slashdot is the perfect example. But if you’re trying to inspire passionate users, I believe that enforcing a “Be Friendly” rule can be one of the best moves for long-term growth and retention of the community.

[Disclaimer: although I am the original founder of javaranch (in 1997), I'm not responsible for its real success. Most of the growth happened after I turned it over to Paul Wheaton. I gave javaranch its original heart and soul, but it is Paul and all the moderators (Sheriffs and Bartenders) who gave it a body and brain that could actually do something...]

Enforcing a “be nice” rule is a big commitment and a risk. People complain about the policy all the time, tossing out “censorship” and “no free speech” for starters. We see this as a metaphor mismatch. We view javaranch as a great big dinner party at the ranch, where everyone there is a guest. The ones who complain about censorship believe it is a public space, and that all opinions should be allowed. In fact, nearly all opinions are allowed on javaranch. It’s usually not about what you say there, it’s how you say it.

And this isn’t about being politically correct, either. It’s a judgement call by the moderators, of course. It’s fuzzy trying to decide exactly what constitutes “not nice”, and it’s determined subjectively by the culture of the ranch. Sexy jokes are usually OK, racial jokes are not. Some perceive the sexy jokes as sexist, and therefore “not nice”, but if we would laugh about it with our friends in a somewhat racy dinner party conversation, it stands. Javaranch censors for meanness, not to protect delicate sensibilities. To a lot of folks, that makes us “not nice”, but we reckon these are the folks we wouldn’t invite to our party, either. ; )

There is obviously no way to have a one-size-fits-all “be nice” rule; every culture will have its own. A church forum, for example, might draw the line much earlier.

I believe an online community can work with virtually any metaphor (I’ll keep to myself what I think the slashdot metaphor is…), but that metaphor determines the kinds of people you attract and keep. The “frat party” metaphor supports one type of behavior, while the “public space” is another. The “professional business office” metaphor is different from the “passionate user group” model.

But the really good news is that if you have a strong and consistent culture, whatever that culture is, the community starts moderating itself. Kind of a hundredth-monkey effect… when enough people are behaving in a certain way, and that hits critical mass, it becomes not only accepted but obvious to everyone when it’s being violated. (I talked about this earlier with respect to customer service in Can you teach someone to care?)

And for a wonderful article by someone who knows far more about online communities and social networks than I ever will, read Clay Shirky’s speech from 2003 ETech, A Group Is Its Own Worst Enemy. Among other things, he talks about the challenges of balancing the idealistic goal of open and free speech with the atmosphere of the online community:

“And then, as time sets in, difficulties emerge. In this case, one of the difficulties was occasioned by the fact that one of the institutions that got hold of some modems was a high school. And who, in 1978, was hanging out in the room with the computer and the modems in it, but the boys of that high school. And the boys weren’t terribly interested in sophisticated adult conversation. They were interested in fart jokes. They were interested in salacious talk. They were interested in running amok and posting four-letter words and nyah-nyah-nyah, all over the bulletin board.
And the adults who had set up Communitree were horrified, and overrun by these students. The place that was founded on open access had too much open access, too much openness. They couldn’t defend themselves against their own users. The place that was founded on free speech had too much freedom. They had no way of saying “No, that’s not the kind of free speech we meant.”

Pick your metaphor carefully. Dinner Party isn’t for everyone, but it’s usually my personal favorite for passionate user groups.

And everybody is unique, in its truest sense:

Every user is new and different…

firsttime 1 Unleashing The Potential of the Ruby Community

Have you ever been told to RTFM? In online forums, especially, I see that response to questions that have obviously been asked a thousand times. “Read the FAQ” or “Do a search–this has been done to death already.” And you get the same feeling when you call a tech support line… that subtle implication that you didn’t do your homework. That you’re wasting their time.

Every so often, this issue would come up on when a moderator would tell someone to do a search, rather than answering (or encouraging anyone else to answer) the poster’s question. It’s natural for a moderator to become exasperated or just bored hearing the same question over and over and over again–especially in the beginner forums. Another moderator would usually give a gentle reminder that, “for this person, that question is new. This whole topic is new. And if you shut down the question with ‘search the archives for that’, you’ve killed any chance of someone bringing in a fresh perspective.” Our policy is to usually encourage the user to search the archives in addition to having a fresh discussion in the forum. The give-them-a-fish-and-teach-them-to-fish-at-the-same-time approach.

It’s so easy to feel like we’ve been doing the same thing forever, but as long as there’s a new person at the other end of the exchange, it is not the same thing.

I talked about this earlier in Creating Passionate Fans, about musicians playing the same music for decades, yet leaving you–the listener–feeling like it’s their first time. Last Saturday, the NPR Weekend Edition interview with Carole King talked about her new “Welcome to my Living Room” tour. What got me was her response to Scott Simon’s question about whether she gets tired of being asked to play one of her hits from 30 years ago… a song she’s been playing now for three decades. She said that sometimes it is hard, at first, but then something happens…

“Every audience is new and different, and they breathe new life into the song.”

I need to remember this. Every user is new and different. Every reader is new and different. And as long as the user is new, then the experience of their interaction with the product, service, book… is new and different. Every new user breathes new life into what we create and deliver.

Maybe there’s something in that thought that you can grab onto when you’re feeling frustrated or bored. Maybe helping your software developers have more interaction with users can help pull someone back out of the “phoning it in” stage. Maybe helping them see the result of their work in a real, human, context would help.

I’ll leave you with this comment from my earlier post, from Dan Steinberg (editor of, and former radio guy):

“Many year’s ago I worked for a radio station where, at the top of every hour, we would say “WMJI – Cleveland’s Magic 105 point 7″. The reasons were that every station had to identify itself with its call letters and city of license and many stations hid it in a slogan like this. Hour after hour, day after day. In an average year each of us said this roughly 5 * 6 * 50 = 1500 times. Somewhere, someone was hearing it for the first time.

The program director took us to see Barry Manilow – it wasn’t that any of us wanted to see him (or actively didn’t) but he wanted us to see how Manilow performed songs that he’d sung hundreds of times over the years. The lesson wasn’t lost on me.

As much as this helped me as a jock, it reinvigorated me as a teacher. Someone somewhere was getting the point of the mean value theorem for the first time on the hundredth time I’d taught it. Each time the discovery felt fresh to me and I hope to them. Thanks for this trip back.

Rumor has it that Dan’s going to put some of his radio expertise back to work in the podcast world, and by remembering that somewhere, someone’s hearing his podcast for the first time… I have a feeling he’ll have something very special.

What do you do to help yourself–or those who work for you–keep things fresh?

And for a finale, but great as hell, is a Trizle business journal article:

Marketing to the Masses Begins Slowly; Gradually Create the Buzz

When you’re trying to reach a broad base of customers–that is the “mainstream”–it’s an impossible task to do so initially. Customers generally do not buy products because of the great features you have. They buy products because of who else is buying.

Well, if you’re just starting and no one has bought from you–how can you sell your products? Start with the “venturesome innovators.” These are people who like to try new things, and will move on to the next new thing once the current product becomes adopted by the mainstream public.

For example, Beanie Babies didn’t become a success overnight. The brilliant marketers targeted kids from high-class communities first. They did so by selling their products at affluent toy stores.

Once these “venturesome innovators” started bringing their toys to schools, it generated a buzz effect. Affluent kids began to affect those around their schools who wanted to be the “in” crowd.

So how did the mainstream begin to adopt the product? McDonald’s, seeing a great opportunity, decided to offer Beanie Babies as Happy Meal treats. And, as they say, the rest is history.

If you want to get to the masses, start with the few.

Conclusion: So you’ve got jets. You’ve got Ferrari’s. You’ve got Nitro’s and you even have god.

There’s only one thing left… the people who’ll ride those

Notes: I really hope Kathy Sierra and friends won’t mind me copy&paste-ing their articles wholly, verbatim-ly, here. Their articles may be old (chronologically), but they stand the test of time and the ideas and concepts they presented have been proven in the real-world.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.