To facilitate conversation, people must be able to respond to others thoughts.
In an online discussion system, how this is enabled can suggest a few key design questions. One of these questions is often whether conversation can branch into threads, or instead remain “flat”. Sometimes there is an in-between hybrid. We tested a range of options, and settled on a threaded discussion approach, similar to that used by Reddit, Hacker News and other sites.
We’re well aware that the choice between threaded and unthreaded discussion is a deeply divisive one, with many articulate spokespeople on both sides. Jeff Atwood’s famous post about threading [annotated here] (which also references Joel Spolsky’s article on Building Communities with Software) is perhaps the most well known argument against it (but be sure to read the comments at the end in counterpoint).
So, yes, we chose a threaded model. But instead of simply arguing that ‘threading is better’, I’d prefer to say that threading (or perhaps ‘structured discussion’?) may be ‘best for some applications’. I think an annotated web is one of them.
First, lets review Jeff’s arguments against threading:
- You have to click through to see the content. This refers to threading done primarily in the Usenet or email style, where titles are what’s shown, and the body is collapsed and must be clicked to be seen. We agree. Threading done this way is painful.
- Branched conversations are disjointed and distracting.
- Branching makes conversations go off track.
- Flat forums are so much simpler and straightforward to read through.
But perhaps the humdinger is this line of Joel’s:
“Branching is very logical to a programmer’s mind but it doesn’t correspond to the way conversations take place in the real world. Branched discussions are disjointed to follow and distracting. [..] Branching makes discussions get off track, and reading a thread that is branched is discombobulating and unnatural. Better to force people to start a new topic if they want to get off topic.”
Of course he misses that threaded forums are happening in the “real world”. They’re happening online where threading’s unique advantages can shine.
Stated more generously: “Branching allows multi-party ‘conversations’ to naturally explore the logical space around a topic.” Sure, it may require time to go read all of the 100s of branches and 1000s of replies in a well-trafficked Reddit post, but that’s only because you’re a human with limited time and attention. At least those sub-conversations were able to happen in the first place between their counterparties, who seemed perfectly happy to have them, and not “discombobulated” in the least.
Note that each branch becomes a referenceable object that can be linked to and which others can discover later as a useful exploration of its own topic space.
- Threading scales to handle large multi-party conversations, particularly on fast moving subjects, when multiple conversations may start happening in parallel, in contrast to slow moving ones where it naturally serial. When many people are trying to participate in a conversation at the same time, threading allows it to unfold naturally.
- Annotations (as opposed to comments below the fold) and the annotation data model are threaded by their very nature. They allow discussion to emerge exactly where it needs to. For technical discussions this is quite helpful. We’re well aware that there are times where ones thoughts apply to the whole rather than the part, that must be provided for as well.
- Threading allows precise discussion, and obvious comment/reply attribution. In a flat model, it’s difficult to know exactly when new comments are a reply to earlier comments, without clumsy hacks like ‘@username: I meant XXX , not YYY’. Put more simply: threading allows participants and others to easily engage in conversation.
We note that some of the web’s most popular forums are threaded: Reddit, Hacker News, etc.
We know that some people prefer a flat view, and perhaps we could enable this as an option for those who prefer it. I’ll just note here that it’s easy to create a flat view out of a threaded forum, but impossible to do the reverse.
It’s very worth reading the replies to Jeff on his own article… after the first twenty or so, the discussion turns very much in favor of the threaded model, and many excellent arguments are made.
“When you have a large amount of responses in a flat style, it basically becomes noise, and starts to lose context. Albeit, you have that on threads that don’t follow the thread.”
“Jeff argues that branching is a problem, but branching is what makes communication possible! If you can’t branch, you can’t easily converse.”
“Unless you have threading, you can’t:
- Easily and clearly respond to a specific post
- Easily know to which post any given post is responding to.
- Follow a conversation between two or more people.”
“I personally find it much easier to read threaded conversations in general. The problem is not the threaded model; it’s that the threaded model on websites sucks.”
“There are extremes, sure threading CAN go wring (/.) and become cumbersome but so can the flat style with 200+ messages with 6 or 7 conversations going on between them.”
“I like threading because different people participating in the discussion often have different ideas about what the main topic is and how to go about interacting around it. Saying that threading is bad because discussions don’t work that way is like saying that online discussions that go over a day and lack the immediacy of IM is bad because discussions don’t work that way. Also face-to-face discussions can’t involve the number of people that online discussions do and to the extent that they can involve a substantial number of people, they very often don’t.”