As product designers, we often strive to create interfaces that have good affordance. Meaning, we try to create interfaces that - through shape, color, and motion - implicitly describe to the user how that interface should be used. We try to create interfaces that are self-evident. The less a user has to "learn" your product, the better the user experience (UX) will be. But, in product design, affordance isn't just about a single interaction - it's about value and leadership. And, if you think about affordance in a vacuum, outside the context of the greater application, I think you can end up reducing value and providing what I call a "false affordance."
Have you ever watched a user struggle to "swipe" a tiny toggle-switch on a mobile device when simply tapping it would do? Or, watched a user waste time and effort swiping an eBook page when simply touching the edge of the screen would have turned it? To me, these are examples of interfaces that provide affordance through a metaphor that makes the user work harder than they have to. While the interfaces have learnability, they fail to lead the user to the best user experience (UX).
The construct that brings this to top-of-mind is the threaded conversation. In a threaded conversation, rather than having one continuous stream of comments, a conversation becomes an aggregate of lots of little disjointed conversations. I rather dislike threaded conversations. And, whenever I see them, I can't help but think of Walter Sobchak ranting in the The Big Lebowski.
| || || |
| || |
| || || |
In a threaded conversation, replying to a comment usually has "immediate" affordance. Meaning, in an acute sense, the user leaving the reply knows exactly who and what they're replying to. And, more often than not, the reply input-box maintains that context by opening up just below the comment in question. The user leaving the reply doesn't have to learn anything new.
But, I believe threaded conversations provide a false affordance because they fail to maximize overall value. Sure, a threaded conversation has great affordance for the user leaving a comment; but, what about for the user consuming that comment?
To answer that, let's first think about the affordance of a single-threaded conversation. In a single-threaded conversation, the oldest comments are always at the top, closest to the content, and the newest comments are always at the bottom. This is key when you remember the fact that conversations take place over time.
Now, the existence of time might seem like an obvious component, not worth mentioning; but, there is a strong relationship between the delta in authoring time from the content to the comment and the perceived value of said comment by a consumer. In other words, older comments, at the top, are more likely to be on-point, relevant, and meaningful (in the context of the content); and, newer comments, at the bottom, are more likely to be less relevant or derivative of existing comments.
A single-threaded conversation follows the natural flow of an in-person conversation where circling back to an earlier topic affects everyone involved in the conversation. Because, after all, it's still a single conversation - not some abstract aggregate of quasi-related thoughts. This is why a single-threaded conversation provides great affordance for both creators and consumers.
A thread conversation, on the other hand, more or less throws out the concept of time. The physical location of a comment, within the greater conversation, no longer implies any particular value. A comment at the top of the thread might be days, weeks, months, or even years older than the content it relates to. Or worse, the comments below it. When you allow comment creators to bypass the natural passage of time, you significantly reduce value for comment consumers.
In user experience (UX) design, affordance isn't just about making an interface usable - it's about leading the user in the right direction. Threaded conversations have a false affordance because they lead a user in a direction that reduces the overall value for other users. If you really feel like your application needs threaded conversations, there is probably a problem to be solved. But, I would suggest trying to explore other solutions; or, digging deeper until you find the true cause of user frustration.