Date: 2023-04-25
Last Updated: 2023-04-25
While I named this post “How to win Slack” I guess I really mean how I got Slack to work for me. I suffer from being easily distracted, when I see white bold text indicating an unread message in a channel, I _have_ to read it – I just can’t help myself. To add to the pain of being easily distracted, I hate context switching. As you can imagine Slack can be a source of unproductivity for me. In my experience if I am distracted, I am unable to get into a flow (some would call it "in the zone") and thus I write worse code.
When I started working at Randori (now Randori, an IBM company) I was told during my onboarding by an exec that this company uses Slack like no other (or words to that effect) and boy was she right. I’ve begun to think of it as SDD, Slack Driven Development. It’s pretty great but like all tools it can be misused, and in particular if you don’t keep a tight rein on how _you_ interact with Slack then it’ll end up taking more of your time than it ought to[^1].
Here are some of the actions that I have picked up over time to make better use of my time.
I put this as number one because in my opinion it can have the biggest impact on you, it is something that you can control and Slack affords you reasonably good granularity when it comes to notification preferences.
I keep all channels fully muted except 3 or 4 – these are the channels that you want to be in to keep up to date with another team or seeing the pictures that people post of their pets / kids / vegetable garden etc.
Then there are a handful of channels that I enable @mentions on (whether or not I enable @here depends solely on the channel) take for instance like a internal product support channel if someone @mentions me then I want to know, but I don’t want to get the @here. Then there could be an engineering specific channel, maybe a team channel more tightly focused within the engineering org, then I might want to get the @here as well as the @mention, this is because with a smaller audience there is a higher chance that my insight / experience etc. will be requested.
Finally there are DMs, I generally keep these fully unmuted. This is because if someone is trying to get a hold of me I want them to be able to.
Remember if you’re busy you can always set a status and pause your notifications while you’re in the Code Cave. I find that people generally respect that since on another day the roles could be reversed. Though if you can't keep your self away see 5.
This is another thing that you can do yourself independently of others. The white bold text that I mentioned in the introduction comes into play here. By hiding the sidebar you can shut out those little indications that there has been new messages. On a Mac you can use <kbd>cmd</kbd>+<kbd>k</kbd> to open a drop-down menu that will allow you to jump to different channels or conversations – I think Slack calls this the Jump to menu.
This one will take some organisational buy-in. But when you get people on board with it the results speak for themselves. Topics can be corralled and multiple conversations can occur at once inside the one channel. It also has the neat effect to keeping notifications to a minimum.
This is a little bit different in that the previous three points were all focused on keeping notifications minimised or hidden. But this is different, this takes complete organisational buy-in to work properly. I will say that after living in this mode for over a year I never want to go back – I’ve been ruined by this. In my case, at Randori, we use two criteria 1) who is the channel aimed at and 2) what the channel is for. We then doll the title up with a little bit of formatting – here are some examples in the spirit:
1. `#eng--ci`
2. `#eng--infra-alerts`
3. `#all--general`
4. `#product--announcements`
5. `#team--YXZ`
Going through the list we can see 1 & 2 are focused on engineering (though all are free to join), 3 is a town square channel, usually just called general in most Slack workspaces, 4 a channel for announcing new features etc. 5 a team channel for team member to communicate amongst each other – perhaps someone reminding the team that they are OOO on Tuesday afternoon, or looking for a quick PR review.
When all else fails and you need focus time, set a meeting on your calendar, set a Slack status, and quit Slack. If something serious happens you can always be paged via your company's on-call system.
While I have used Slack throughout this blog post, naturally the same rules or at least the principle applies to all methods of ~~distraction~~ communication.
[^1]: Unless of course you’re a Slack workspace admin or something.