I love and hate Slack.
I love how I can do work asynchronously and collaborate. I hate how it continually grabs my attention and breaks my focus. When I use Slack, I often feel like I’m building a card tower in a wind tunnel. Every interruption from Slack blows my card tower over and I get frustrated. Somehow I have never stopped to think about how to improve my quality of life in a wind tunnel. Until now.
I’ve used Slack constantly for the past 8 years across 5 different companies. Below you’ll find 4 tips for how I’ve managed to reduce interruptions and find happiness in my love/hate relationship with Slack. But first, some background information.
What is Slack?
I think of Slack as the ultimate replacement for internal email chains. Businesses use it as an instant messaging platform for workplace communication combining chat, emails, file sharing, and customer support. It has grown insanely fast and was recently acquired for $27 billion.
Slack allows you to organize your work and people into channels. Another way to think of it is that it’s similar to a group text, where everyone can see each other’s replies and contribute to the conversation. To make a new channel you give it a name such as “support” and invite others to collaborate. A channel is referred to by adding a ‘#’, so I can let others know about it by typing “#support”.
Users in your workspace or company can freely join/leave channels as they see fit. However, one main difference from a group text is that you can selectively notify people. If you prefix their name with an ‘@’ sign it’ll notify them directly (similar to how Twitter works). You can also notify everyone by using @channel.
Humble beginnings of hate
Back when Slack was released in 2013, my company quickly signed up for early access. Real-time chat in the workplace transformed how we handled our development process and customer support issues. I was still in school and was just starting my career so I happily got used to using Slack in the workplace.
Fast forward 8 years and 5 jobs later, I’ve continued using Slack through that entire time span. The one thing all those companies had in common was a Slack channel called #support. The #support channel’s purpose was to be a catch-all place to dump customer issues.
This dumping ground has always been a time-sink and a constant source of interruptions for me and my team. It always seems like a never-ending flow of jobs to be done. For example, a support person receives a phone call, email, or text and has a customer having issues with feature X. The support person, having the best of intentions and wanting to get answers for the customer, decides to notify everyone in #support.
I often know how to help so I give out an answer. I’m usually not the only one who knows what to do, but I like to be helpful. Eventually, if I’m not careful, other co-workers in the #support channel start to assume I’ll be the one to answer. They may be unsure of themselves or working on other tasks. What happens next is I feel stuck. If I don’t answer, who will? How can we make this work? I want to balance between doing my own work, but also ensuring #support gets the attention it needs.
Customer Service is often measured by how many tickets they close and how happy a customer is with their answers, which is often rated via surveys. Customer service reps are naturally inclined to want to contact knowledgeable people who resolve issues in a satisfactory manner. Since Slack makes contacting people so easy, the reps may opt to contact people that way. It’s definitely easier for the rep to ping everyone with an @channel and get an immediate answer than it is to work through the normal process, which might include writing up a bug report, asking the customer for logs, or reproducing the bug themselves.
On the flip side, as a developer, my main job is completing coding tasks. Usually I choose a task to work on, such as adding a new feature or fixing a bug. My co-workers and boss can then monitor my progress by looking at the comments I make on said task as I work on it.
If I spend an entire day helping in #support, I often have nothing to show for it. From my boss’s perspective, nothing happened on my task. I’m left feeling like I’ve wasted my time. The next day I may promise myself to not log in to Slack or mute notifications for a while so that I can feel accomplished.
What usually happens is a never-ending battle between support scraping for helpful immediate answers and developers defending against unwanted interruptions and distractions.
Here are my tips to reduce interruptions for your team in Slack.
1. Slack etiquette
Don’t use @channel. I think this is everyone’s unwritten rule for Slack.
Slack has helped the situation by letting you know how many people you’ll interrupt with @channel before using it, but even still, it’s annoying when it’s not actually urgent. If your website is down and you’re losing money, sure feel free to use @channel. I’d argue though, that you’re setting yourself up for @channel fatigue and soon you’ll become the boy who cried wolf. You should have an on-call rotation for fires to help avoid burnout among your team and spread the load out. At the end of the article, I’ll show you what I’ve done to easily setup a rotation schedule.
In the meantime, use @here instead. It doesn’t notify them directly if they’re away from their desk, but it lets them be aware a message needs attention. Proceed with caution though, as it is more or less just the lesser evil. @here can quickly grow to be as annoying as @channel, so it’s not perfect solution. See below for a better way.
2. Setup a help desk action
Slack has a way to make a help desk flow in Slack. I recommend using the helpdesk action.
The helpdesk action brings up a form or prompt to get initial information to help them flush out their question better. The response is then sent to a channel of your choice and you can respond to them. If you have a lot of help desk questions, I’ve found it’s useful to have a rotation and assign someone to handle each question as they come in. It’s not built-in to Slack yet, but keep reading and I’ll show you how I’ve setup a rotation for my team.
3. Support meetings
Train support teams to recognize what is urgent and what is not. They can then prioritize issues and determine which ones will need to be escalated and which ones won’t. It may take some training at first, but eventually tasks needing developer assistance can balance out. At my company we hold an hour long support meeting about once a week and we knock out several issues in one go. There will always be a need for some escalation and immediate answers, which segues into my last tip.
4. Support rotation schedule
Plan for interruptions and urgent needs by setting up a rotation. Have your team rotate who is responsible to help support. It can either be a daily or weekly rotation. It’s essentially a go-to person to help support. Support can freely ping this person for problems and that person can then decide what team members to bring in to help on certain issues.
There are a few ways to accomplish a rotation. You can use a Google Sheet or even use a pager duty emoji in Slack. I personally wouldn’t want to use pager duty for support issues as I see it more as a use-in-case-of-emergency type service. And using Google Sheets can also get tiresome to check everyday to see who is on-call.
Setting up a rotation
So here’s my recommendation to setup a rotation–use a Slack app I’ve built called Tellspin (shameless plug). It’s an on-call support team rotation management solution. You can create a schedule in just a few clicks, and it uses Slack’s built-in @mentions and user groups to contact users.
Adoption is easy with Tellspin. When someone uses @channel or @here, I typically say:
“We have a rotation now to help assist on these sorts of issues. Can you use @devs instead from now on?”
The next time they have an issue, they only notify one person and avoid interrupting everyone with @channel. Since it’s a rotation, no one feels burnt out, as they only need to do their shift for the day.
Whoever’s on-call is automatically notified when his shift begins so he can monitor the channel more closely. He can also schedule overrides in-case he has something come up and needs someone else to take his shift.
I charge a small fee for the service because my dream is to have Tellspin be my full-time job. In return, you not only increase your developer happiness, you also get more responsive answers in your support team.
On to the future
I may not be able to move out of the wind tunnel for now, but I can use these tips as an extra protection. As my team has implemented Slack etiquette, support meetings, and a rotation schedule, I’ve found it to be a lot less bothersome to help out support and I feel happy. It’s my hope that you will too.