Slacking Well

Slack has gained widespread adoption for open and closed communities alike, and DeveloperTown is no exception. Even with Slack’s relentless focus on user experience, effective use still requires a little training. Usually this training happens by ad-hoc answering situation-specific questions, or privately providing some friendly feedback on a social faux pas. A Google search for “how we slack” yields a large number of results about how various companies use Slack, often focusing on organization of channels, specific integrations, or other things that layer on top of Slack’s fundamentals. What I find is a need for a more introductory guide to Slack in general (or in #general).

Here are some common pitfalls to avoid, tips and tricks, and productivity hacks that hopefully serve as a helpful overview for those just getting started.

tl;dr Understand that in many cases when you press <enter>, someone somewhere will likely get a notification. Keep notifications to a minimum and people will be happier.

Using a communication tool like Slack breaks down into three kinds of interactions.

  1. From you to others, which requires etiquette.
  2. From others to you, which requires control.
  3. From you to you, which requires knowledge.

Etiquette: from you to others

When you send a message to others, knowing how it will likely impact them can go a long way toward being a good citizen. Slack alerts people to activity in a variety of ways depending on their choices (see “Control” below), including application icon badges (a dot or number on the desktop apps, and a number on the mobile apps), desktop notifications, or mobile push notifications.

There are a few basic ways to reach someone which generate various kinds of alerts or notifications to them. You can send a direct message, you can post a message in a channel and tag it using the “@-” syntax, or you can set a reminder for others.

It’s worth noting here that by default, between the person-specific local hours of 10pm to 8am, people will not receive notifications for messages — they are in Do Not Disturb (DND) mode. You can see when a person is in this state because their status bubble (green when online) has a little “z” on it.

Direct Message

Direct messages (DMs) result in a notification to the other person, depending on their Control settings. Unless they are in a DND state or are actively chatting with you, you have to assume that your message will notify them.

If you send someone a direct message during a DND time frame, slackbot will ask you if the message is important enough to override it and send a notification anyway. Which brings me to my first guideline.

Only override the Do Not Disturb status of a user if it’s really, really important.
On second thought, never mind, just don’t do it.

This is the one case where you can choose to specifically override someone’s Control settings and take charge. Use it carefully. Taking control away from someone else and mis-using it is the fastest way to destroy trust and get ignored in the future when it really is important.

There’s another important but seldom considered etiquette point about direct messages. Let me explain it with an example.

Let’s say I am in a direct message conversation with Frank. Frank says, “hey, my pull request appears to contain a logic error, are you seeing it?” to which I reply, “let me check” and I switch over to the code to start looking at it. In the meantime Frank is also investigating, finds some new info, and then proceeds to stream his thoughts directly to the keyboard.

oh
hey
i think i found it
yeah, sorry, it’s right here
wait
oops, nope
still need help

Within a few seconds the right side of my screen is filled with notification bubbles. “still need help” indeed. Don’t be like Frank.

Avoid stream-of-consciousness messages. Prefer thought out, cohesive messages, or at a minimum allow a moment to pass before hitting <enter> in case more information comes to light.

You can always press SHIFT+ENTER to insert a new line without sending the message if you want to format your message and have it result in one notification instead of many.

@-mention

@-mentioning means using a username prefixed with an “@” in a public message, and it’s one way to let someone know they might care about a public message. It’s generally the least intrusive of the bunch because aside from a DM, it’s the most relevant of the notifications people receive. They will get notified, or not, but can follow up at their leisure.

@-mention someone to inform them of a relevant message, but don’t expect an immediate response.

Slack’s default settings will also alert someone if their username is mentioned without an @-mention, so just saying that was a hilarious and witty statement you just made, aaronlerch — how do you do that, every time?, for example, will issue a notification to “aaronlerch”. Update: this behavior has changed, around the time usernames got an… interesting update, and your username no longer notifies without an @-mention.

@here

@here is a special alert that notifies everybody who belongs to the current channel and is also currently online. If you must notify people en masse, and the context or time frame is short term, this is the preferred way to do it. There’s few things more annoying than getting a push notification on my phone saying “does anybody have an extra lightning cable I could borrow for a minute?” … when I’m at the dentist.

@here for messages like @here heading for lunch in 5 minutes, meet at the front door. Do not @here for messages like @here next week's team meeting is going to be postponed a little (Do not even send those last kinds of messages.)

@channel

@channel notifies everybody in the channel regardless of their connected state. There are only a few good reasons to use this, and it all depends on the channel purpose, the number of people in the channel, etc.

Use @channel in small or well-understood channels only, and for things that clearly apply to everybody in an important way. For example, in a team-specific channel: @channel some of you are on your way in, but standup is moved because of an emergency fire alarm

Reminders

This is a much lesser known feature. Slackbot supports reminders — see “Knowledge”, below, for more details. Suffice it to say it’s possible to add reminders for other people. Just type /remind @thatperson to get distracted because of this silly reminder at 2pm today and @thatperson will get a notification at 2pm. (You can also set reminders for channels, too.)

Only use slackbot reminders for others when all parties have agreed to it ahead of time.

Control: from others to you

When you’re on the receiving end of all those notifications it’s critical to take control to ensure you can maintain focu-SQUIRREL!

Sorry.

It is up to you to manage your notifications effectively to ensure you can maintain focus. Here are your options. Use them well.

Global notification settings

At the most basic level, under Preferences (which are specific to each Slack account you have set up) you can configure Notification settings. This is where you can specify the Do Not Disturb time period, which mutes all notifications. You can also control what you want to be notified about:

  • All activity (… no, just no.)
  • DMs and highlight words (recommended by Slack and by me)
  • Nothing (“polling” mode)

Channel notification settings

Under each channel there is a settings option (a gear icon, at the time of this writing) with two relevant options in the resulting menu: “Notification preferences” and “Mute #channelname”. You can also type /mute in a channel to mute it. (Or /mute #channelname to mute a different channel.)

Muting a channel turns off all notifications for that channel regardless of any other settings. It’s very convenient to leave on for a channel you want to browse periodically, or to enable for shorter periods of time for a very busy period of time in a channel.

Snooze Notifications

You can snooze notifications for any length of time using the /dnd [some length of time] command. You can also click on the bell icon on the desktop app, or choose “Snooze Notifications” on mobile, but in both cases you get a quick list of snooze options — effectively setting Do Not Disturb for a defined period of time from 20 minutes to 24 hours in sensible increments. As with most things, the chat interface is more flexible than the GUI — it’s so great to be able to type /dnd for 15 minutes or /dnd until 4pm.

I strongly recommend leverage snoozing notifications during heads down work time. The best part is not having to remember to turn it back off again.

The Ultimate Mute

When you really need to double down and focus for an extended period of time, there’s an incredibly effective option available most people don’t think about.

Turn it off.

Quit Slack. Turn off your mobile device. Focus.

Be the ball.

Knowledge: from you to you

There’s a lot of features available in Slack from integrations and bots, but Slack and slackbot have a few features to make your life better. Knowledge is power.

Quick Switcher

Not strictly related to chatting or notifications, but I’d be remiss not to mention the Quick Switcher, as it’s my favorite and most-used feature. Press ⌘+K or ⌘+T (on Windows, CTRL+K or CTRL+T) anywhere to open a Search Box To Everything™. If you have unread notifications they’ll be listed first in the autocomplete, but you can quickly jump anywhere from here.

Chatting with yourself

You can switch to a direct message with… yourself. As awkward as that might sound, it’s a fantastic place to try something out before you try it out on another person. You can do anything you can in a direct message with someone else. Write up that longer message without worrying about pressing <enter> and sending prematurely instead of <shift>+<enter> for a newline. Check out what the formatting looks like to make sure you got it right. Have a conversation with /giphy just for fun.

Use yourself for a safe test before taking a risk on someone else.

Pinned Messages

There will come a time when someone sends you something important in a message that you want to save and refer back to. (*cough* like a username and password *cough* … c’mon you know you do it.)

In the desktop app you can hover over any message to see a star icon. On mobile, tap and hold a message for the actions (iOS) and choose “Star Message”.

You can then view “Starred Items” to see all the messages you’ve starred. (Upper right on desktop; kabob menu on iOS; probably something awesome on Android.) Easy quick reference.

If you star a lot of messages, you can add has:star to a search to search your starred items. Search is a whole ‘nother thing which I won’t really touch on here.

Reminders

I saved the best for last. Reminders are a little-known feature in Slack that I’ve come to find one of the most useful features. I alluded to them above when talking about setting a reminder for others, but primarily you should use reminders for yourself.

It’s as easy as typing this anywhere in Slack: /remind me to get the drycleaning at 5pm

Slackbot will respond and say, “I will remind you to “get the drycleaning” at 5pm.” along with some clickable options for cancelling the reminder or viewing all your current reminders.

Then at 5pm, you’ll get a notification from slackbot saying “You asked me to remind you to “get the drycleaning”.” along with some more clickable options: “Mark as complete” or remind me later: “15 mins” · “1 hr” · “Tomorrow”, etc.

Not only can you create and manage your own reminders (type /remind help for all your options) you can also add reminders about specific messages. If you ever get a message with a request from someone that you don’t have time for right that moment, the reminders feature really shines. The context menu for each message has a “Remind me about this” option with some default logical time periods.

When your reminder goes off it will also include a link to the message for context.


This was a lot to cover, so if you read this far you get a gold star. All of this is in Slack’s help system. Most of it is easy to discover and use and just makes sense. But for people new to Slack, I’m hopeful this will serve as a helpful on-boarding overview to get you started in the right direction. Happy Slacking!