
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:
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.
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.
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:
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.
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!”)
You should create channels and even sub channels, for example at Journey we have:
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.
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.
It’s just plain confusing when you have some people using threads in one way and other people using them differently.

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.
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?
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.
Go mad having bots write updates! Here are a few ideas:

Having Slack channels that are only used by bots is bad because the channels get flooded and inevitably muted.
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.

Have the bots post in your sub channels that are used by humans too!