In order to master our craft we need to master our tools. When I say tools - I don't mean just our editor, programming language and framework. I include our email client, calendar and etc. Basically everything we use todo our jobs. Slack is one of those tools. A lot of time is spent in Slack. So it is important to use it effectively.
Today Iβm going to cover tips about Slack. They will be split into "Personal" and "Company" sections. For bonus will list interesting channels I have seen used.
π€ Personal tips
So, here are my Slack tips π
π€ Personal tips
π’ Post in public channels instead of DMs
I prefer to post stuff in channels (which might be private channels). This way, many people can participate in the interactions. This is especially important when discussions are for specific projects. You will need to have a lot of channels and good channel hygiene.Β
π¬ Use threads for group discussion
I often hear, "I don't post in channels" because multiple simultaneous makes everything messy". The solution for this is to discuss "threads". In this way, it is easy to keep track of multiple conversations.
Slack also includes a section in its UI for tracking updates on threads that interest you. "Activity" > "π¬ Threads"
Another useful tip is to summarize a thread once it concludes. Write a summary of the thread with obvious action points and conclusions. I use emojis like - β and π to mark the items and post them on the main channel. So people who do not follow the discussion know about important decisions.
π Responding with emojis
Talking about emojis.Β By reading my posts, you know I used A LOTΒ π
I often use emoji reactions to communicate status. I use π to indicate I'm looking at something; stand by. Or β When I'm done.
Here is an example of doing a Pull Request review:
Sometimes I use π / π as a voting system.Β
Adding an emoji to a message indicates that you have seen it. Posting something is very irritating and getting zero reactions; you don't know if people saw, forgot, or just agreed.
β° Use save for later and reminders
You want to be responsive in Slack. However, this can be overwhelming if we get too many messages. I found the Slack "Later" and "Reminder" features useful.Β
I used to try to reply to everything and move stuff into Todoist as action items. However, a "fast" response was often too "fast". So I started forcing myself to reply, "I will check this later" (I have a snippet for this) and save it for later with a reminder or not. Reminder depends on how time-sensitive something is.Β
I have the time of day when I deal to save for later and use the "Slack" todo feature
π Reduce the noise from channels
Slack becomes noisy very fast, and you can be overwhelmed very quickly.Β Β
I'm surprised at how many people need to learn about theΒ sidebar custom section feature in Slack,Β Which was essential for me in helping with the organization. When I was atΒ Product Hunt, I had the following sections
Shortcuts - most used channels for me, those changed frequently depending on the project; I was jumping around
Engineering - this grouped every developer in my team
Leadership - this grouped everyone on the leadership team and a couple of private channels; we collaborated
Channels - all channels I was part of
Muted - this was for muted channels, which I was part of but didn't care about.
It looked something like this
There will be many channels, and you often don't care about them, but you still have to be part of them. For this, I use the Slack notification setting.
A good way to figure out what channels you should mark with this is to see how often you see a channel in white color in the sidebar and how often you just click to mark it as seen and never read.
π Profile and status
In the onboarding tasks, I give new team members I always give them the following tasks:
1/ Set up working hours.Β Here is how. Because we are a global team, someone will always message you. We don't expect you to answer in the middle of the night.Β
2/ Setup your Slack profile with the following data
Profile pictureΒ - A photo of you that you feel comfortable sharing, one that will help your coworkers recognize you in a Zoom call.
Full name -Β Use your real name here.
What I doΒ - This is shown under your picture in Slack. You can enter your official role or anything else to help coworkers understand what you do.
Phone number -Β Please enter your phone number using the country code. It will not be used unless itβs an emergency.
Time Zone -Β It will help Slack and anyone who wants to contact you know the time for you.
RoleΒ - Enter your official role as per your role description.
TeamΒ - Which team are you a partΒ of
LocationΒ - Where in the world do you work from? It's useful since weβre all around the globe.
3/ Set upΒ Slack status and availability feature. Here are some of the most useful statuses.Β They will help you communicate why you are not instantly responsible with your team.Β
π΄ Vacationing
π€ Out sick
π― Focus
ποΈ In a meeting (here is how to set up)
Of course, you can use fun ones such as π€― Solving a hard problem.
π’ Company tips
For the last five years, my leadership role has been to "organize" Slack and use it as a company's central hub.Β
π₯ Groups
GroupsΒ allow you to message multiple people at once. Initially, you can start with groups for departments like "@developers" and "@sales". Then you can have subgroups for certain teams like "@platform-team".Β
If you have people on call for emergencies, you can create an "@emergancy" group that is notified when emergencies occur. You can rotate people there weekly.
π·οΈ Naming channels
We know naming is hard. This is very visible when you open a Slack list of channels, which are often softer by alphabetical order. It looks like a mess π§Ά
Because of this, I am trying to enforce prefixing Slack channels. Here are some of the prefixes I use:
project-[channel] - project-specific channels, created for just a project or feature
[team]-[channel] - channels grouped by a team like engineering, product, or support
Of course, this is hard to enforce and doesn't seem to come naturally π€·ββοΈ
I tried to use "auto-" at one point and separate bot channels from people channels for a long time. But this was a lost battle. You still want to separate channels where humans and bots interact.
π Channels as hubs
One of the most efficient and underutilized features in Slack isΒ channel bookmarks. It's a simple yet effective way to keep all the important links to the header of a Slack channel, turning it into a centralized hub for understanding a feature.
Here is an example of a project channel for a website.Β
From here, we can see the project status, link to design, and metrics about the site redesign.Β
The reality is that work on the project is always split between multiple tools, as many companies want everything in one place. They deal with this with links and a clear path to finding the project data.
It is also useful for other type of channels. This is an example for the "engineering-emergency" channel:
ThisΒ links to the Emergency Kit document, which can guide developers in dealing with emergencies.Β
Channels also support to have descriptions. Use this as well.
π§Ή Regular channel cleanup
Channels are very easy to create and are rarely deleted. Because of this, I had a recurring to-do in the first month of every quarter to go through all channels and archive the unnecessary ones.Β
I usually sort channels from newest to oldest because the newest channels are usually reserved for projects or special cases. Following theΒ Lindy effect.
A couple of times, I discovered projects that were stuck. Needing a resolution. Like this one A/B test which was "forgotten" π
πͺ Webhooks
Sending automated messages to Slack messages is very easy withΒ webhooks.
AtΒ Angry Building, , we send a message to a Slack channel named 'auto-notifications' every time a new user registers or changes plans.
π Interesting channels
The heart of Slack organization is channels. Here are some ideas for cool channels I have used. I prefixed with "engineering" because this was my team π
"engineering-til" - "today, I learn", a place to share interesting learnings from inside and outside the company.Β This is one of my favorite channels. π€©
"engineering-prs" - a channel to request a pull request reviews. Sometimes, pull request discussions happen in threads there.
"engineering-emergency" -Β when an emergency happens, this is where the team coordinates.
"engineering-deploy" - the CI pushes a message to this channel when deployment succeeds or fails.
"engineering-sentry" or "engineering-exceptions" - a channel in which every new exception is listed. You want this channel to be silent. It is interesting to coordinate this with "deployment" channels so you can notice when a deployment has a new influx or errors.
βengineering-alertβ - a channel to receive alerts from monitoring systems
"engineering-daily" or "engineering-standup" - channel to aΒ virtual standup. It might be automated with something likeΒ Geekbot.
"product-changelog" - a channel where new features are shown to the team.Β I often record videos for PR. I then share those videos on this channel for a video of the features.
"product-feedback" or/and "product-ideas" - channel(s) for sharing ideas, feedback, or bugs about the product.
"engineering" / "product" / [team] - a catch-all channel for the team. I treat this channel as a big class in code; over time, it accumulates more responsibility, and then it is time to extract a new channel. π¨βπ
"kudos" - a channel to celebrate our team members' good work and activity.Β
"fun" or "bs" or "β¦" - a channel to fun clips, images and etc.
If you have any tips, you strongly agree or disagree with them or have ideas for something I missed, Ρou can ping me onΒ Threads,Β LinkedIn,Β Mastodon,Β Twitter, or just leave a comment below π