A site such as Stack Overflow is only as good as its contributions. There have been a number of discussions regarding the quality of contributions, which caused me to spend some time reflecting on my own personal experiences with the site and community. This brought back memories of my own experiences at being on the low side of the quality fence while conversing face to face in places where I did not speak the local language.
I’m sharing this not just to provide advice and insight, but also to show why having users that are willing to help people become better communicators is essential to maintain the quality of a growing community.
About two and a half years ago, I finally got up the nerve to become a registered user on Stack Overflow and start participating by asking and answering questions. I had been lurking for a while – I found Stack Overflow through some obscure searches and learned about the buzz Jeff and Joel were building around it later. The first thing that struck me was how intimidating the site really was.
It wasn’t all of the numbers, arrows, tags and buttons. Most of that stuff instantly made sense to me. What intimidated me the most out of everything was the sheer quality of the questions and answers there. If I was going to make any use out of this resource, I would need to dust off my writing skills and work on my problem a little harder so I could really show people where I was stuck.
My first few attempts went over like a lead balloon, but I quickly caught on. I could now pick the brains of people who had been working with C much longer than me, and build up my own reputation by answering questions that I could. It was helpful, it was fun and I was hooked. I remember thinking to myself “How do they keep the quality bar so high here?”, coming from a mess of forums the difference was absolutely amazing.
Of all the problems I postulated regarding issues that Stack Overflow might have once it became a huge success, quality of content was never one of them. I was certain that things like SPAM, edit wars, playground fights and rage quits would summarize the day to day problems of the site. I wasn’t the only one that was curious, most of the other regular users also wondered how this new system would handle the influx that we all knew was coming.
I could not have been more wrong, quality has turned out to be the chief problem. This isn’t to say that nothing is being done about it. There are now measures in place that help keep out stuff like this:
i am gr8 @ php but i cant get this form 2 work [link]
ne1 kno why?
plz help me dis is URGENT ………………
The above, of course is simply a satirical meta example. Even as I wrote this over the past week, the system has been improved to help keep the quality bar as high as it was when the site first started. Still, filters can’t be expected to be a single magical cure.
Going back to my original experience with Stack Overflow, if I had seen questions like that upon arrival I probably would have cursed Google for leading me into yet another pile of smoldering goat vomit and been on my way. Or, even worse, if the bar was really low I might not have tried as hard to get better at interacting with my peers. Essentially, a large volume of low quality questions and answers equates to a big fat Mr. Yuck sticker on the front page of the site, deterring the very experts that can give fantastic answers:
Fortunately, the river of questions that drive the community bat
shit crap crazy has dried to a relatively slow flowing creek. The development team takes quality very seriously, as do site moderators and the majority of the Stack Overflow community. Coming back to my opening thoughts, there are things that people who don’t have magical moderation tools can do as well.
What you can do
The first thing to do is identify the type of person you are dealing with. This is the most important step, as it will prevent you from wasting your time on mentoring someone who isn’t going to benefit from it. Generally, there are four categories:
- Help vampire.
- Struggling with English.
- Lazy l33t speaking idiot.
- The person who thinks that because they know what they’re working on, you will too.
I’m not negating the fact that despite best efforts, many new users can’t seem to format code samples, avoid salutations or tag correctly. Those problems are common when using any kind of new system like Stack Overflow. The way Stack Overflow works isn’t new to us, but it is new to a lot of people.
I’m discussing, in detail, how to identify users that can be helped beyond pointers on how formatting works, vs the people who are never going to improve.
Tough love is the key to dealing with every kind above.
Dealing with a help vampire
As many of us know, the best way to deal with a help vampire is to completely ignore them. While that might sound harsh, that is the only way to keep them from sucking the blood out of your community while forcing them to take more initiative and become a better communicator. Letting a help vampire sink its teeth into your veins is like loaning a heroin addict money to get their next fix. Do everyone including the vampire a favor, don’t enable them.
English as a second language
One of the interesting aspects of programming Q&A is that almost every programmer speaks at least a bit of English. They must, most of the material we study in order to learn is written in English. I have a bit of first hand experience with how it feels to not be able to communicate, and I’m a native English speaker. When I arrived in The Philippines, I quickly realized that Tagalog was the tool I needed in order to get even the basic things done, like buying groceries or telling a Taxi where I wanted to go. There I was, a reasonably articulate human being effectively cut off from the people who could help me because I could not communicate.
All of a sudden, I was ‘that guy’, the weird one who can’t even speak the language.
I knew that I’d be perceived as lazy and perhaps even unintelligent if I didn’t do something. What did I do? I learned. I’m by no means fluent, but I’m able to converse sufficiently enough for most situations. I learned over time, because learning a new language takes time.
When you encounter people that are putting in obvious research and effort into their contributions but struggle with English, help them by editing as much as you can. Total immersion is indeed the best way to learn a new language, being able to view a side by side diff of what you said vs. what you probably meant to say is a great help.
If you find that a person isn’t putting much effort into improving their English skills over time, that they are content to be ‘that guy’, that they’re quite happy to just let other people clean up their posts – you’re dealing with a help vampire. Follow that procedure.
Lazy l33t speaking idiots
Typically, these people aren’t idiots, they are just immature and haven’t learned how to successfully engage their peers. Immaturity also makes people do odd things like treating every single message that they write as if it were a text message. Tough love in this case is as simple as a comment:
If you want my help, please show some effort by paying attention to common punctuation and grammar. You’re asking help from professionals, please address us like professionals.
Some people will instantly ‘get it’, some people never will. You’ll see a change quickly, if there is going to be one. The undesired reaction is a protest from the person asking if the grammar police work here, or 10 other reasons why they shouldn’t have to spend the few seconds it would take to tap a few more keys. If you see that, you’re in the midst of a help vampire – walk away.
The person who thinks the world has ESP
When you really need help, there’s a good chance that you also feel an extremely heightened sense of urgency. You need to get something done, you can’t seem to fix it and pressure is building up. During this unfortunate period of adrenalyn intoxication, you mistakenly believe that the world can read your mind and understands the full context of your situation. Given that, why would you need to explain it? A good example of this is:
I’m getting a strange error from my foolib implementation, which is 1234. I’ve gone through everything and don’t understand why that is. Here’s my code that’s calling foolib:
Foolib? Huh? Did you forget that you wrote it and we have absolutely no idea what it is or what it does? Don’t be too hard on these people. Often, if you gently point out that most of the world lacks ESP, they’ll quickly realize that their question makes sense only to them. You’ll see this type of question a lot when the topic is writing a mobile application or game. In their frenzy, people sometimes forget that you have no idea what the right side score column looks like, much less the code that displays it.
You can, of course, mix and match the categories to arrive at a perfect fit for any given user that is having a hard time asking questions. However, those are the basic four.
Moderators are always willing to help and we do appreciate the flags. However, Stack Overflow is designed to be primarily community moderated. Of course you should flag posts that have serious issues, I wrote this just to provide some advice for those who have the time and inclination to work with people and help them become better communicators.