For most of the ’90s, I was a part of TeamB—a group of volunteers who helped answer questions on Borland’s Compuserve forums. I met a bunch of really great people doing that, got some free Compuserve time, a few trips to the Bay Area, and lots of Borland products. But mostly, I learned a heck of a lot by helping to answer users’ questions.
When Borland, Microsoft, and other development tool companies moved their online technical support to the Internet, their support was mostly done through newsgroups, and I found the signal-to-noise ratio there almost unbearable. Except for the moderated newsgroups, which were few and far between, asking a question was like talking to a wall. Worse, even, because a wall won’t give you wrong answers or call you stupid for doing something different. Even with the advent of forums rather than newsgroups, online technical help was virtually non-existent for a number of years and I just stopped trying.
Enter Stack Overflow, a free programming Q&A site where you can ask questions, share your expertise, or just browse for nuggets of programming wisdom. Stack Overflow works. In many ways it works better than the old Borland Compuserve forums that I enjoyed so much.
Why it works is simple: they’ve found a way to reward people for supplying good answers and, to a lesser extent, asking good questions. It all has to do with reputation: ego. You gain reputation points for supplying good answers, and asking good questions. “Good” is determined by a simple up- or down-votes by site users. As you gain reputation points, you gain the ability to help moderate the site: re-tag questions, vote to close, edit questions, etc. And your current reputation is prominently displayed beside your name. There are also awards (“Badges”) given for a number of different things.
If you don’t care about reputation, that’s fine. You can use the site anonymously and still ask, answer, and comment on questions. But Stack Overflow works because a whole lot of people there do care about their reputations. Giving more experienced users the ability to help moderate keeps the flaming and other invective to a minimum, and the constant peer review ensures that (in general) the higher-rated answers really are the best.
My only real complaint with Stack Overflow (and it’s not huge) is that the format doesn’t encourage an ongoing threaded discussion as was available on the Compuserve forums. That’s not a problem in most cases, but there are times when arriving at a satisfactory answer requires much back-and-forth, and it’d be nice to see questions and answers displayed in threaded newsgroup fashion. The ability to see answers ordered by date helps a lot, as does the comments feature, and I suspect that adding a threaded view would be of only limited additional help.
Despite a few nitpicks, I’m seriously impressed with Stack Overflow. If you have a programming question on any topic, you should search for the answer there. And if you don’t find it, ask. You’ll probably be surprised at the speed and the quality of the answers you get.