November 7, 2022
I still remember the day that Slack launched, and how quickly we switched from HipChat to Slack. Slack is a great product but even after a decade, I still believe people use it incorrectly. Here are some of my unconventional recommendations for Slack:
Never Direct Message
Direct Messages should be reserved exclusively for chats that are private. A direct message is not the equivalent of walking over to someones desk and chatting with them, but the equivalent of asking that person to meet you in a conference room to discuss.
Why does this matter?
The value of Slack is that it is a canonical and referenceable store of interactions. If you direct message a colleague a simple question (”Hey, what cross browser testing tool do we use again?”) you may get the answer, but other people are unable to retrieve that answer themselves.
→ Do this instead
Create channels and/or use existing channels! There’s nothing wrong with simply saying something like “@plc what cross browser testing tool do we use again? in a public relevant channel. This has a few benefits:
Someone else may jump in and answer before @plc sees the message
Other people right now may find this information useful
In the future, other people can also now instantly find this information.
More Channels the Merrier
Creating channels is the equivalent of organising conversations. You should have a ton of channels and not be afraid of spinning up new ones as required.
Why does this matter?
Having a simple “#engineering” channel is fine, but it means that that channel will be used for all sorts of engineering things! It becomes overwhelming and random.
Again, the value of Slack is that it is canonical and referenceable (”see this channel for the most up to date information about such and such feature!”)
→ Do this instead
You should create channels and even sub channels, for example at Journey we have:
#building - for all things building our product
#building-content - for all things content related when building our product
Naturally, it doesn’t really matter which channel you use — but its wonderful to have a channel about a given topic have a lot of historical context.
Thread are Required
Slack built threads in a very interesting way. They’ve been built in such a way that you can use threads as a mini Slack channel or never use them at all.
The challenge comes when different people use threads differently.
Why does this matter?
It’s just plain confusing when you have some people using threads in one way and other people using them differently.
→ Do this instead
Threads should be used very explicitly - “starting a thread to discuss this Firefox issue”
This way, the conversation is organised within a singular thread, but you do not need or expect everyone in the future to also adhere to how you use threads.
Bots are good, actually
Having information appear in Slack automagically is awesome. This actually ties into previous recommendations about Slack — sure, having deployments appear in your main #engineering channel is probably annoying, but why not have #engineering-deploys where not only does the bot post but also others can discuss deployments?
Why does this matter?
Having information in Slack automagically means that people will actually see it. It won’t get lost in a dashboard or an email thread. When people see things, they talk about it.
→ Do this instead
Go mad having bots write updates! Here are a few ideas:
Product usage alerts via a tool like Variance
Daily and Weekly product usage reports via a tool like Mode
Deployments and commits via a tool like Vercel
BUT - Bot channels are bad, actually
Having Slack channels that are only used by bots is bad because the channels get flooded and inevitably muted.
Why does this matter?
If a tree falls in a forest and no one hears it, did it fall down? The whole point of having bots in Slack is to ensure that people see the messages! Having noisy bot channels that are muted defeats the purpose of these channels.
→ Do this instead
Have the bots post in your sub channels that are used by humans too!