I've spent the last couple of weeks hanging out on StackOverflow, and thinking about how successful its design is.
Incase you haven't heard of it, StackOverflow is a question-and-answer site for programmers, put together by two popular programming bloggers, Joel Spolsky and Jeff Atwood. Participants get given 'reputation points' when their questions or answers are voted-up by other people. This makes the site very useful because when you ask a question there are loads of programmers online practically falling over each other to answer your question. I guess programmers all like to get positive feedback from their peers, and thats what the vote system provides.
The reputation system is just one design point out of several that Joel and Jeff obviously thought very carfully about when building the site. A few weeks ago Joel gave a googletech talk about StackOverflow, going into detail about how they designed it:
He makes the interesting point in this video that Human-Computer interaction is now quite well understood, and that Human-to-Human interaction on the web is a more challenging area now. As in the real world, the environment affects people's behaviour, and so the UI choices made on a website will greatly influence how people use the site.
He says that Microsoft estimate that there are about 9 million professional programmers in the world, and as of April 2009 StackOverflow is getting about 3 million distinct visitors a month. So just 6 months after launch they have 33% of their total possible audience in attendance.
Towards the end of the talk he also has some interesting observations on why the StackOvervlow approach might not translate well to non-technical domains. He says
"I dont think this site is going to work for gardening questions, ever". For example, because they could take a certain amount of technical know-how for granted in their userbase, they were able to make great use of features like tagging without having to explain it to anyone.
The video is about an hour long but worth watching if you want some insight into the design of a great site.
My username on StackOverflow is codeulike, and today I achieved the little milestone of 1,000 reputation points, which also inspired me to make this post ; )