Fundamentally, what you want is to be able to read and participate in multiple conversations with a given group of people (a channel) at the same time, with as little overhead as possible, and when catching up later, you want to be able to read one conversation at a time, not all of them mixed together. And you don't want to have to go into some special mode to do so; you want it to feel like the default thing to do. I don't expect this to get a lot of use. The data Slack mentioned to the press shows that even Slack employees hardly use the feature; from http://www.theverge.com/2017/1/18/14305528/slack-threads-thr...:
> "But employees at Slack, who have been testing threads for months, say they are meant to complement public channels — not replace them. Joshua Goldenberg, the company's head of design, told me that only 7 or 8 percent of his time in Slack has moved to threads."
If the people at Slack's who designed this feature hardly use it, I doubt it's going to solve the big problems with Slack/Hipchat/Campfire/IRC, namely that their chat room model doesn't work once a channel gets beyond a few dozen actually active participants.
If you're interested in a good solution to this problem, check out how Zulip does threading (https://zulip.org has some screenshots (of an old visual design, sadly), or visit the developer community at https://chat.zulip.org to see it in action). Zulip's threading is the main reason why it's become the open source group chat application project with the most active development community (see e.g. https://github.com/zulip/zulip/graphs/contributors).
(Edited for clarity)
I work at Stack Overflow, where our company chat is split between Slack and an internal chat product we made ourselves years ago.
I think the "comments as threads" concept helps solve some specific use cases (like room clutter) but not the use cases I personally care about the most.
The "in-line method" mentioned in this other article about the change is my preferred method: https://www.fastcompany.com/3067246/innovation-agents/the-un...
My gripe doesn't stem from rooms being too cluttered, it stems from if there are 4 people talking at once and I'm in two different conversations chains with them, I'd like to explicitly reply to a specific message and carry on the convo. not hide it in a comment thread.
On our homebuilt chat product this is the difference between starting a message with `@Name` or hitting "reply" on a specific message and having `@:{Message Id}` as the beginning of your message.
It shows the same to the users, they seen `@Name`, but if it's a specific message reply when they hover over the message the one it's in response to gets highlighted (and there's a button to scroll to it if it's off-screen).
I think this Slack feature, like most features, is targeted at helping people using chat sitting in the same room or office together.
I work at a very remote company where with some people I share less than 2 hours of a work day. I want better chat tools centered around making our async communication flow better. Not out-of-room comment threads.
Try Zulip, actually. We use it and it does that exact thing very well.
It's fascinating that the preferences for "flat view vs thread view" get revisited in newer software. Fyi, Jeff Atwood blogged about this 10 years ago in 2006.[1]
Thank you for linking that FastCompany article because it emphasizes that Slack's distinguishing rationale was to visually place threads in a different area of the screen. Whether that proves to be the best tradeoff between flat-vs-thread remains to be seen in the marketplace of ideas.
[1] https://blog.codinghorror.com/discussions-flat-or-threaded/
The biggest downside I've found is some people always forget to use the threading feature and comments fall out of the thread.
[EDIT]: I just had a look at Slack's implementation and I think it has some pretty cool ideas. I think being able to follow an individual thread at a high level is useful. Being able to have a conversation without bothering the whole channel is useful. I think the idea that threads are private by default is not; I think a good alternative would be to disable notifications for messages in threads you don't care about, but have them remain public.
Zulip's threading model is much more like a lightweight version of email threading -- when you start a new thread, you pick a short topic for it, and then after that people just reply to the thread.
Contrast that with a tool like Zulip where every message requires a topic, and you have a much more structured paradigm. Percentages mean nothing because it's simply mandatory. That forces more organization, but perhaps part of the appeal of Slack is that it doesn't have to be so organized. You just engage with your team, and the only structure you have to think about ahead of time is which channel to use.
So I can see the case for "spot-threading" like Slack is rolling out, while keeping the core organizational structure very simple.
The ultimate key is unread message support. By using a single key/approach to jump from one unread message to the next (or mark all messages in a thread as read) in order of oldest unread message, then the rest of messages in that thread, then next oldest unread message, etc, you can make conversation switching easy. It just needs to be clear when you have switched conversations. I hate manually navigating from one channel/room/whatever to the next myself.
Also, I think chat and threading essentially conflict. Threading encourages more thought about who you are replying to and how and is less of a stream of consciousness like chat. In threaded conversational modes, I think the chat-like mode should be reduced (e.g. "X is typing", update exactly when completed, auto scroll the screen) and semi-live-update forum-like mode should be enhanced (e.g. a post is fixed in space, no auto scroll, live updates are batched/debounced over at least 2 seconds, etc).
Of course, the real answer might be extreme configurability. Any communication system can be like any other with enough configuration options. While default sets may be preferred for chat, forum, microblogging, etc, many people configure "rooms" more than they configure lots of other types of software so there is little "option overload".
The development community has been rewriting the iOS app in React Native over the last couple months, and the new version is working really well! It'll be in the app store in a few weeks. See https://github.com/zulip/zulip-mobile.
It's hard to talk about Slack's threading solution without also talking about what I think is the best way to solve that problem.
Considering how long Slack has been promising threading, this seems really half baked and poorly thought out.
Hmm.
I still think it beats Slack in many ways, but it doesn't appear to have much of a future.
- No way to ignore/mute users. Yes, I sometimes need to do that even on my team.
- Group DMs inherit notification preferences of channels instead of DMs.
- No visual distinction between "/me says hi" and "_says hi_". (OK, may be minor, but as a long-time IRC user it's quite annoying.)
I can't wait for this threading to introduce the headaches inherent to some users using them and others not.
* Spell-checking is semi-broken on macOS when you have more than one system language specified.
* A few months ago they broke the holding-Shift thing when uploading files.
* The fake Markdown is awful. Aside from the fact that the syntax is just close enough to actual Markdown to be confusing — and i realise that's probably not something they'll ever fix, due to inertia if nothing else — the parser is extremely naïve (maybe based on regular expressions?). Notably, it doesn't support escaping, and it has weird issues with certain special characters (for example, it can't render the string `a|b` as in-line code because it contains a pipe).
* The cost for the paid version is really steep if your project/organisation is on a limited budget. I wish they would introduce a lower-priced tier.
* Maybe they aren't interested in this demographic, but a lot of people really want to use Slack for non-business-related purposes, and they've done nothing really to make that easy in terms of administration/management. Many people with this use case are moving to Discord, which is a shame in my opinion because the Slack client, despite its problems, is still (for now, at least) vastly superior for text-based communication.
* I know it's kind of petty, but they haven't updated the client to support the emoji added since Unicode 8.0 in summer of 2015.
+1 on this. I'd be much happier with Slack if they supported Github style markdown, including syntax-highlighting.
I don't understand objections to this based on inertia. The markdown style could be specified on a per-channel basis: traditional or Github-like.
If my team ever moves away from Slack, it would most likely be because of this issue.
We all have different requirements. I can understand that threading may be important to some, but feel that ignoring users and consistent notification defaults are on the same level.
In fact, seeing as how notifications are already implemented, I see the inconsistency (which has caused me to miss important messages on multiple occasions) as a bug, which should take precedence over a new feature.
But still, clearly many feel differently, and that's OK. :)
You don't want EVERYTHING to be a thread, but sometimes - rarely, you do want something to be a thread for the sake of the flow of the particular channel.
A mess.
If my memory serves me correctly, isn't this part of what Google Wave was offering?
My company uses slack. I despised it at first, I tolerate it now. I suspect that we are not using it to it's full potential either.
Flowdock introduced three killer features that I still haven't seen properly matched by anyone else:
- It introduced threading. (Why we're here)
- It introduced a seamless, intuitive way to switch between the unfiltered channel and a single thread (or to start a thread), by clicking on the colored bubbles next to each message.
- It separated bots from humans (inbox vs chat), making it very easy to have or follow a high value conversation without being interrupted or distracted by a stream of bot announcements.
I think Slack has a lot to learn from Flowdock. I miss Flowdock dearly now that Slack is the de facto standard that everyone uses.
Much better real time chat culture, imo.
> "There's also no expectation that you need to read everything to catch up when you come back after a while - take that to email if you need to."
Slack doesn't require that expectation, either. You can easily change settings of Slack to just ignore messages that you were not there for, just like you are describing.
While I actually do like IRC also, your two points are pretty weak considering Slack does both of those well, too.
IRC in it's heyday was alright but I think Discord has replaced it's function. The last few encounters I have had with IRC have been negative because of the "in-group" being unwelcoming.
Each channel has a purpose, but threads allow more efficient cross-talk. For example I work with another team in a different channel because our projects use the same language. Sometimes our work collides as we work with the same libraries. We lose track of details between repos and channels frequently because we operate parallel but separate.
Threads will allow us to cross-talk about issues that affect both projects without having to create a new channel for each issue. This also helps one off discussions where two or three people use a public channel when the topic should be private. Ultimately, features like these matter mostly in use and I think this implementation is great for my teams.
It would be really handy for informational channels where generally you're just interested in reading updates, not replying. Something like that could reasonably live in the right-hand sidebar. Taken a step further, it would be really cool to be able to specify an official informational/status sidebar channel to be paired with your channel. For example: a team channel with a build status channel linked to it by default.
I worry that they're gonna start messing with what made them special in the first place.
I get that a billion dollars doesn't buy what it used to, but it really ought to buy native apps on at least all the major platforms.
VS Code is second best and somehow manages to best Atom in every way, but is still painfully sluggish at times (on a i7 6500u, no less) and isn't exactly RAM friendly.
Slack desktop is basically a dumpster fire, and from what I can tell Slack's attempt at mitigating that are to piss on it.
Mattermost had threaded messaging since 2015, it used to be called "Replies" and we renamed it "Threaded messages" in April 2016: https://about.mattermost.com/mattermost-3-4-7/
If anyone wants to try it out, you can join https://demo.mattermost.com/
Mattermost is an open source, private cloud Slack-alternative.
We're "Slack-compatible, not Slack limited" and you'll find all the core features of Slack plus many benefits added by the open source community--like markdown support, translation into 11 languages, multi-team accounts, searchable hashtags and much more: https://www.mattermost.org/what-slack-might-learn-from-its-o...
However the problem is if you use Slack for anything other than transient information then you increase the problem with information sitting in silos, already we've got transient information in slack, information in the project management software, information in the kanban type software, information in issues on github, etc. You add Slack into the mix and it really gets hard to remember what is where.
A service to pull together all the information is probably the next killer product.
This way you discourage branching but allow an unlimited amount of it. And each thread has the same properties and rules as a channel.
All you have to do then is solve the problem of listing the channels in the sidebar, which the user is participating in, in a hierarchical way. A user should be able to leave a thread and it would disappear from their sidebar. Simple.
What's wrong with this model?