Slack’s Threading Failure #threadfail

Brad Robertson
6 min readJan 21, 2017

--

Slack, as I’m sure everyone now knows, introduced their new threading feature after many years of planning and customer requests. From the interviews performed it’s suggested that they took their time to “get it right”, and take their time they did. Below I’ll outline my thoughts on how they missed the mark and how this supposedly hard problem has already been solved by other tools.

The first thing to note about slack threads is that this concept actually already existed in the product, albeit under a relatively hidden subsection. A Slack “thread” is nothing more than a “Post” in pre “threading” days.

The original slack “thread”

What Posts severely lack is the ease of creation (with the awkward pop-up window shown below).

Creating a new Post (or “thread”)

To further this, you can’t create a Post after the fact, meaning you needed to know in advance that your message was going to start a conversation (which surprisingly isn’t always obvious).

The Post “thread”, where people can now comment

Aside from the covert nature of Posts, the main issue is that you lose a lot of the core functionality that comes along with regular slack messages. You can’t add images (we post screenshots within conversations ALL THE TIME), run any slash commands, or add code snippets.

This stripped down functionality, combined with the convoluted process to create a Post made this feature all but unusable to us.

Needless to say, I was pretty pumped when I heard that Slack had “fixed threading”. In hindsight, my enthusiasm should have been reserved until the official release.

What they got right

Thread Creation
As mentioned above, a real limitation of a Post was that if you didn’t start creating a Post from the beginning (which you probably didn’t because it was complicated to do so), you were destined to have your message lost in the sea Slackdom. The new threads in slack allow you to convert an existing message into a thread quite simply. Threads only go 1 level deep, which I think is the right design choice for simplicity’s sake. This is by far the most important part of the release and I think they did a pretty good job. Starting a thread is shown below, nice and simple.

Thread Rollup
Once you have your thread going, new messages get represented in a rollup so at a glance you can discover other participants and easily navigate to the thread itself to see what’s going on. This is easy enough to grasp, assuming the original message that started the thread is still fresh on the chat window.

Unfortunately however new messages in a thread don’t get reflected in that main window (other than to increment the count of replies) so the actual link to the thread itself still gets pushed back in history and lost in the haystack. Their solution to this is the “New Threads” window. More on this later.

What they got wrong

So what’s my main gripe with new Slack threading? Well, all they did was make it easier to create a Post (something that already existed in Slack) and half heartedly fixed the display issues that went along with that awkward feature. All of the issues mentioned above still exist (since threads are just lipstick on a Post).

It’s worth calling those out in detail:

Limited Functionality
Once you’re in a threaded conversation, you have a stripped down version of what you can do when sending a regular message:

  • You can’t add images to a thread. With a distributed team, communicating through screenshots saves a LOT of time, which must otherwise be solved through calls and screen sharing.
  • Slash commands don’t work at all.

(except, mysteriously, the /shrug command. Slack obviously understands irony quite well)

  • You can’t add code/text snippets or any other feature that comes from the + option on the message input. Similar to not being able to post images, our team speaks a lot with code samples (vs describing code in words) so it’s odd you wouldn’t have these options within a thread

Bizarre Inconsistency
A weird design choice was made with the new “All Threads” panel. The ordering of messages is latest at the top and requiring you scroll down for older threads.

Completely opposite scrolling pattern for “new” messages.

This is exactly the opposite of the main channel chat screen which leads to a confusing user experience when trying to navigate threads.

The other strange thing with this new All/New Threads section is that it doesn’t live update. You have to click the link to get the reply. Now… call me particular, but it doesn’t feel like a chat app in 2016 would force clicking for updates.

Click to see new messages

It’s obvious “All Threads” just re-used the “All Unreads” panel, which is why these antiquated/inconsistent design patterns were chosen.

The Wrong Default
The final thing I find REALLY awkward about threading (mentioned above) is that new messages in threads don’t cause any obvious activity in the channel they originated from by default. My assumption would be that a public thread within a channel would automatically also keep that channel up to date.

New replies (right) simply increment a count on the left. They don’t bring the original message down to the “latest” (note my scrolling position)

There is a checkbox to do this if you _want_ to, but it’s off by default. Every single user has to purposefully update the main channel to keep that conversation relevant, which generally means _most_ people won’t actually do that.

My guess for this default is that when you choose to do it, the main channel gets more confusing. But this is really just a lack of proper roll ups and thread delineation in the main window. Notice below how if I “Also send to” the channel, my messages are considered 2 completely different entries on the main chat.

This is a drastic waste of chat space and just adds cognitive load as I can’t, at a glance, understand that these 2 responses are actually related (if I weren’t participating in the thread on the right).

Closing Thoughts

Pardon my skepticism, but from the outside, it doesn’t sound like years of research were done getting it “just right”. Slack repurposed existing features adding slight conveniences that sorely miss the mark on what people actually need (re: what I actually need, but I can hardly think I’m alone)

A colleague of mine proposed that perhaps this release of Threading is an MVP and I really hope she’s right. The realist in me however knows that MVPs don’t take years to produce, they take months. Then you iterate on them. If Slack’s MVP cycle is years, I shudder to guess what their iteration/improvement cycles will take.

With the emergence of new competitors (Microsoft Teams, Mattermost plus many more) that offer up everything Slack does and more (for free in the case of Mattermost), I just don’t see how Slack can continue to remain competitive if this is their release cycle. Slack’s momentum and market share will obviously keep it a float for a long time, but more agile and creative products are bound to start taking bites out of the gorilla.

--

--