Monday, January 12, 2009

Stackoverflow and the Future of Collaborative Media


Stackoverflow is the collaborative media site founded by the illustrious duo, Joel Spolsky and Jeff Atwood. It makes a fresh and original attempt to improve the state of the online software development community, and does so mostly successfully. The site combines the best features and concepts from wikis, blogs, forums, and sites like Digg and Reddit (and perhaps a even a touch of Twitter). The result is an impressive collaborative space where developers can post questions, obtain quick answers and spark discussions.

To highlight just a few Stackoverflow features:

  • Use of Open ID. Account creation -- often the biggest barrier for adoption for collaborative sites -- is near frictionless by leveraging this up-and-coming authentication mechanism.

  • Voting. Higher quality answers and topics tend to filter upwards via a voting and point scheme.

  • An outstanding user interface, with plenty of rich interactivity that adds to the user experience instead of detracting from it.

  • High web traffic yields quick responses and usually decent quality answers and discussions.

  • Questions, answers, and comments (assuming you have the credentials) are editable which means mistakes are corrected over time.

  • Unobtrusive ads.

The engineering behind Stackoverflow must be outstanding. I have noticed very few odd quirks (apart from the occasional dirty cache) and it seems to be scaling fine. This is certainly more proof that the ASP.net stack is at least as good as anything offered in the Java arena, not to mention the fact that Jeff Atwood and friends are extraordinary developers. They designed, implemented, and had the site up and running in just a few months. I have been fantasizing about starting a knockoff site with the Java Spring stack which would theoretically be very doable as long as you had the right talent and time. (I know, easier said than done.)

Stackoverflow is not perfect, however. Question and answers can receive up and down votes, and users accumulate reputation points based on the vote count of their questions and answers. Moreover, users obtain badges as they use the system. It can become annoyingly addictive. This merit system is both an asset and a detriment. The right answers theoretically filter to the top, but Stackoverflow also biases quick answers over the best answers because the quick answer simply receives more views and points. This fact in turn incites users to provides rapid-fire answers over more thoughtful, measured responses resulting in a positive feedback loop. They may be able to partially fix these issues through some algorithmic / social engineering tweak. The reputation point system also means that users can become competitive, which leads to pettiness, incivility, and even borderline vigilantism at times. For exhibit A, note the comments on the legendary (fellow University of Colorado alum) Alan Kay's question. Possibly a better solution is to provide a relatively low ceiling on reputation points.

Searching has problems, as well, and I have even posted questions that already had answers despite a preliminary search for my question. Again, they will fix this issue eventually.

The quality of the discussion is not universally great, but generally adequate and certainly better than the alternatives. For example, this discussion on JavaFX technology partially misses the point that JavaFX is very much related and built on top of applet technology -- a fact I try to point out.

At any rate, the development community is responding favorably to Stackoverflow, and the number of users is growing sharply.

Stackoverflow is the brainchild of Joel Spolsky and Jeff Atwood (actually mostly Jeff, I suspect) of software blogging fame. This effort is another example of how successful bloggers have bootstrapped other facets of their careers by using their blogs as self-promotional springboards.

Stackoverflow's meteoric rise proves there is a real hunger for collaborative spaces that don't suck. I predict that they are going to start spinning off other "spaces," some perhaps having nothing to do with software. Why not have cinema.stackoverflow.com, gaming.stackoverflow.com, IT.stackoverflow.com? Better yet, make those spaces integrated. For instance, if someone asks a question on the IT forum that belongs in the gaming forum, there would be a mechanism to re-assign the question to a better space. The evolution of Stackoverflow into other domains will provide an invaluable service to many online communities whose forums currently stink. How many times have you looked for something on the Internet only to arrive at a forum where your question has been asked but with no answer? Or that you do not have the credentials to provide the answer and that obtaining a login is too onerous. And, of course, you are assaulted with ads along the way. I have encountered this scenario countless times, as have my colleagues. Stackoverflow's expansion into other domains will be a quantum leap in the evolution of collaborative media. An evolution that I will wholeheartedly welcome.

No comments: