Introduction
User forums are ubiquitous these days. There are chat boards where mums discuss how to best bring up their kids, forums for people who like to garden and premium support forums where technicians provide customer service to frustrated software users. Millions and millions and millions of people use forums everyday to get connected with other users and get information on an endless amount of long tail topics. So user forums must be a brilliant bit of clever software design right? Wrong! In fact dead wrong!! The main trouble is that the basic design of user forums haven’t changed to any real degree over the last decade when forums were designed as textual based navigation systems for server to server connections using telephone lines. At this time forums were of course called BBS’s or Bulletin Board Systems.
Since BBS’s first came on the scene other web software that has evolved has gotten a whole lot better. We have seen the rise of social software like Blogs, Twitter and FourSquare and the whole culture of crowd-sourcing and user generated content has risen from Web 2.0 movement. I think it’s high time that user forums were dragged into the modern way of designing web software. In doing so we can accelerate the connection of people at an even greater rate than we have today and provide an all around better user experience.
In this post I will dissect the problems with most forum experiences today and describe what I think is a better way. To be clear and upfront a few sites have ‘got it’ and created the modern versions of forums I am describing here. Those sites like FaceBook, Twitter and StackOverflow have grown huge user bases and serve as perfect examples!
The Very Very Quick History Lesson
Back in the old days when you connected to other computers with a 14.4 kb / s modem that screamed as it transmitted data (and real geeks knew the exact tone made when a connection was made) if you wanted to ‘connect’ to a group of people you probably used a BBS or Bulletin Board System. A BBS was hosted on a server (that you typically dialed via the phone network before mainstream Internet) and organized around a topic of interest like “hacking phone systems”. In the early Internet days companies like AOL and CompuServe would host collections of forums on their systems usually sorted by broad topics like “travel” or “technology”. BBS’s have always been hierarchical in the way they organized topics meaning that you need to go look for information in a particular place. BBS’s were originally pure text based navigation systems and have slowly progressed through crude tree navigation to today’s software that replicates the same design pattern using HTML. When the Internet as we know it today started to evolve a parallel system called NNTP (Network News Transport Protocol) took off that allowed a global collection of forums that were distributed and synchronized typically by ISP’s to be accessed via an NNTP news client. These forums were again arranged in a hierarchical manner. You always had to go looking for what you were interested in and then subscribe to the category to get new threads. Since the early part of the decade web based forums have largely taken over and with popular software like PHPBB and Phorum.
The Problems With User Forums
As we have learnt how social software works (as in is successful) we can look at the original BBS design with a critical eye (and of course the beauty of hindsight) and identify key areas that are “sub optimal”.
- Discoverability
- Relevance
- Distribution
- Aggregation
Discoverability – Search doesn’t work well on discussions that tend to flow between states. For example at what point in an online discussion did the question you were interested in asking turn into an answer? This is a tough problem for which the best search engines today are far away from being good at solving. When it comes to finding relevant information a user has to know that a a forum contains a gem of information about a particular topic. That means a taxonomy of topics must be setup and the user has to navigate through the taxonomy to the place where the information would most likely have been posted. That is not a huge problem and search can certainly help but it’s ineffective all the same but when combined with the challenges in where to post information the problem gets significantly worse. For instance if a gardener wants to post a question about a tree should it be in a perennial forum or a landscaping forum? The effect is that most forums administrators (who are not information architects) tend to adopt one of two strategies. They create forums for every discrete topic and rely on navigation or create a few topics and rely on search. As discussed above neither are great ways of finding the useful information buried in forums.
Relevance - Some forum software allows you to rate content and even rate users in an attempt to help relevance but none I have seen connect with social media systems like Twitter or FaceBook to provide ratings systems based on users social graphs. If I follow @caracurphey (my wife) I am likely to be much more interested in what she posts in a forum than “Random Joe”.
Distribution – While modern web based forums allow RSS aggregation of posts threads and a few allow email as a way to post ad receive, BBS’s are for the most part a pull model. You need to go and get the data. Mint.com sends me an update when I have been charged an ATM fee but forum software doesn’t alert me when an interesting topic is getting discussion heat.
Aggregation - Forums today in general only contain information created in the forum itself. They may contain outbound links but rarely dynamically created external content. This makes the forum an island of data, isolated from other discussions that are happening in other media forms like Twitter or Blogs. While its true that we could manually reference external sources of information in practice its to hard and rarely done. In the physical world we get information from books, online, TV, radio, face–to-face and all form part of the body of knowledge we use to communicate and connect. Forums don’t do a good job of aggregating information from anywhere other than the forum itself.
There is a better way!
I think there are several techniques that can be used to design better forum software. These techniques can be used in isolation or used together (with some careful thought).
Discoverability – Instead of setting up an fixed data-model in which users will come and post (the forum) users should be encouraged to tag data describing the information in a way that it can be exposed into various views using the ‘tags’. One bit of information should have many tags and a tags will relate to many pieces of information. A forum today typically tags each thread with just one description, the forum it belongs to! Lets say for instance we want to ask a question about Configuring Ruby on Rails on Cygwin we would tag the post with Cygwin, Ruby and Rails. This would allow the discussion to surface to users watching any of the three topics as opposed to the place where the user happened to think it fitted best. Users on the other hand would be able to set up “streams” using tags that would allow the system to surface relevant posts. I may for instance create a “stream” where posts on Ruby surface and a “stream” where Rails posts occur. The Ruby on Rails post may well appear in both streams but given its a reference to one bit of information the lifecycle (replies etc) will also be reflected in both. Experience has shown that managing “tag clouds” provides a balance between the semantic web and a humanly navigable web site.
Using this technique users don’t need to know where to post their information (they just need to know how to describe it) and users can more effectively find information by subscribing to “tags”. This technique is used heavily on StackOverflow and has proven to be very scalable.
Relevance – Content is often better when it has come from recommended users you trust. Modern forums should leverage the social graph created from Twitter, FaceBook or Linked-in. If a post was made by a Twitter user you follow or a by a FaceBook friend it should have a different level of relevance than from a complete stranger. Let’s face it if a friends asks you for help or has something to say you are generally more inclined to help than Godfried from the Bank in Nigeria trying to give you $25 million dollars! Ironically connected to the social graph also helps reduce spam.
Distribution – Some forums like www.communityserver.org allow you to post and receive mails via the web and via email. Sometimes users are better suited to email that the web and other times they may prefer to browse via RSS and comment via Twitter. Users should be able to choose how they interact with the discussion stream.
Aggregation – There are many ways discussions start on the grid. Email, Twitter, RSS posts + comments, FaceBook etc. Forums software force a user to interact with one conversation type rather than do the hard work of aggregation and provide a seamless way to traverse the mediums using software. I think content should be able to be aggregated into “information streams”. As an example I may want to set up a stream on “Ruby on Rails Development” and provide meta-data that the stream should be created based on “Google News”, my OPML RSS feed list, people I follow on Twitter and my FaceBook friends as well as a traditional threaded forum for users to post new information outside of those systems. A discussion may start as a pithy comment in 140 chars and move on to a healthy threaded debated on a forum and then be summarized in a blog post. That’s information lifecycle is important to follow and it’s important that the discussion remains fluid and seamless as it transpires. There is simply too much friction in moving from one medium to another and today too much gets lost.
In many ways this is what FaceBook does. It builds a wall (an information stream) from user activity with FB and applications interacting with its FB platform. Bob just sent Alice a starfish or Kate just commented on Simons photo. Unlike FB I think the user should be able to interact with the stream via any of the mediums the software supports (with the constraints of the medium selected (140 chars etc)).
Summary
I think that Discoverability, Relevance and Distribution are relatively easy to improve on and would have significant improvements on how most forums work today. FaceBooks walls and StackOverFlow are great examples of how these techniques can be used with dramatic results. Aggregation is probably the “holy grail” and clearly needs some significant thought but what this could give you would be a way for very specific and focused discussions that form naturally from online interactions in an “information swell”. Those discussion streams would interact seamlessly with the various ways users consume and produce information in a way that provides a better way to link to and add value to related dynamic data.
So is this Google Buzz? No I dint think it is. I tried Buzz and didn’t get it. It felt like it was trying to be everything to everyone. It was IM meets Twitter meets …..a “stream” is simply a more effective and efficient way to hold a group discussion online. Believe you me the world doesn’t need another incarnation of BBS and forums. What the world needs is a digital water-cooler. I think information streams built out may provide that “better way to discuss things online” and if done in an open source open standards way could have a dramatic effect on the efficiency and effectiveness of human-to-human digital conversations.
Now all that is left is for me to whip up a prototype I guess….
Thanks to Mike DeLibero for reviewing the article prior to posting.