If you make a habit of reading programming blogs, chances are you have heard of Joel Spolsky and Jeff Attwood. It will also not be news to you that these two have set up stackoverflow.com. Just in case this is news to you, stack overflow aims to be THE programmers’ reference. At the moment it is in danger of becoming “facebook for nerds”. The web-site itself is nothing like Facebook – it’s just that I’ve heard Facebook be described as “It is all about me world”.
I recall that the two Js have stated that “Stack Overflow” will become what the community make of it. They had an idea, but how it manifests itself will be up to the community to form. One thing about the site is that it tries to be as un-obnoxious as possible. Signing on is not necessary to view questions and answers. There is no fee for using the service. Site revenue is derived from advertising and this advertising is not overt or leery.
It appears to be a well put together site and is certainly proving to be popular amongst programmers. As long as site revenue is coming in, I guess it can be judged as successful. Members of the site are awarded a series of “badges” and reputation points. These things matter to nerds. “Badges” are awarded for all sorts of site-interactivity. Things like the first time you “vote up” a question or answer will earn you a badge. When other people vote-up your questions or answers, your reputation points increase.
The more reputation points you have, the more “editing powers” you are granted. You can correct questions and answers, re-assign questions to different categories etc.
The problem with any points system is it is open to “gaming”. With the correct scoring system in place, you can effectively set rules for your site. It is a very passive way of controlling a community based site. Get the rules wrong and people take the site in directions you didn’t intend them to. I believe this is what is currently happening to Stack Overflow. Where the community takes any web site is no more than a product of the rules you put in place. Where there are rewards (in this case badges and points) people will seek the path of least resistance to gain them.
Questions and answers both earn you points when they are voted up. If you ask a question such as: “How can I find the size of a file on disk using C?” you will probably get around six answers before people run out of permutations on how to perform the task. If however, you ask “What is the best music to listen to while programming?”, well everyone has an opinion! “Let me tell you about how I do things”… See how this starts to mirror “It is all about me world”?
Any well written piece in answer to a subjective question tends to attract a lot of up-votes. The problem is it is easy to ask subjective questions, and all questions start life evenly. Even if your question attracts one or two down votes, these can be far out-weighed by the hundred up-votes you get by providing a humorous anecdote explaining why you have the best taste in music. At the end of the day, despite the up-votes, no-one really cares about anyone else’s answer! Put another way, have you ever felt the need to search the internet to know what music your peers listen to?
As mentioned earlier, increased reputation allows increased “editing powers”. One of the powers bestowed upon users with a high enough score, is the ability to close a question. Unfortunately, this is akin to “having your cake and eating it too”. Get in early enough and you can game the system by answering your favourite subjective “I’m interested in you” style question, rack up the points and then close other people’s questions when they try and do similar.
The biggest fear is that the web-site could devolve into a surrogate social networking site of little worth. Unless there is relevant searchable material, site visits will drop. Whilst dynamic content keeps people’s interest, dynamic content of worth is even better. Part of the problem Stack-overflow faces is in how to put the genie back in the bottle. Trying to change the rules of a game in progress is essentially “cheating”. You will offend people if you do it. You risk your credibility. They are only a young venture and yet the writing is already on the wall that they are going to be facing a difficult future.
The fact that Stack Overflow is a “good idea” is a saving grace for them. I just hope they tweak their algorithm in time to prevent a blowout in their “signal to noise” ratio. In the meantime, I want to know whether cats or dogs make the ultimate programmer’s pet… 😉