Moving a 40+ people dev team to Slack
We at Insum have been through rapid growth in the past few years. Lately, one thing that struck me is how many emails I could receive in a single day of absence.
I'm a huge fan of living off-grid.
The good thing is that I finally get to get off the Internet. The bad thing is that when I finally get Internet back, it can be a little discouraging.
Luckily for me, by bosses are very open minded when it comes to bringing a new tool across the dev team and I know I can be a little pushy on that front...
This time, after a great experience with the OraOpenSource team (thanks to Adrian Png who invited me), I suggested to replace our day-to-day communication with Slack.
What is Slack and how is this going to help you?
At it's roots, Slack is just a group chat platform. You can connect many other services to your channels. It's got a super clean UI. It's less intrusive than emails. And that's pretty much all you need to know.
You get to a point where everything's mixed up: customers send you emails, publicity, social media notifications, internal dev team questions are on-going... I wanted to separate client and internal communication and Slack undertakes the internal part wonderfully.
How we use it at Insum
In Slack you either create public channels where anyone's allowed to join or private channels where it's on per-invite basis. We use Public Channels for general discussions. The more the merrier because you don't want to have 2 topics running at the same time. As of July 31 2015, this is our list of public channels:
We mainly use Private Channels for project specific talks. It's important not to flood your team with messages not intended for them. Do have as many private channels as possible, it'll be worth it.
Posts are one of the most important features we use on Public Channels.
What do you usually do within a Dev Team? You ask questions! You consume the expertise of other people to solve your own problems! Posts are the best way to engage a threaded conversation on Slack (until they release a proper threading system).
Instead of sending a simple message, click on the + sign and create a post:
In the example below, I created a post called Currency Conversion in which people responded directly to it rather than channel-wide:
Similar to Posts but for code sharing with syntax highlighting. You can also comment directly on Code Snippets, making it another threaded conversation method.
Slack has a pinning system, which allows a message to stick on the right sidebar, viewable to everyone on the channel. We use pins to track current or unanswered questions.
The original poster has the responsibility to pin and unpin his post/code snippet/message. This way, your question doesn't get lost in the channel's feed.
This is a big part of Slack's usefulness. Slack has over 80 apps it can integrate with. Talk about centralizing your stuff! Here's a few integrations that we find useful:
This is what it looks like when someone logs an issue in Github:
Here's how to add a Dropbox file:
This is what it looks like when a Tweet has been sent to a specific account:
Here's Trello in action along our discussion:
Tips & Tricks
Know these shortcuts:
@channel: Notify everyone in this channel.
@here: Notify every online desktop-using member in this channel.
@everyone: Notify everyone on your team.
Web, Desktop, Mobile
Slack is available on multiple platforms. You can access Slack through the web directly. I personally like the Desktop application more because you get a consistent notification system.
Don't be shy and download the mobile app too. You're not always at your desk. It's okay to use your phone at work.
Markdown & Text Formatting
Slack uses Markdown to style messages. Know the shortcuts, it's the kind of details that'll make you a better Slack user.
Try typing Ctrl+K or Cmd+K and get familiar with the quick switcher. It allows you to navigate in Slack using only your keyboard. You'll become a Power User in no time.
Hide All The Channels
If you hate having too many channels visible at once, use this feature to hide them all unless they have unread messages.
Notice the extra member on your team's directory? Your discussions with Slackbot are private to you only. It's a great place to leave personal notes, links, phone numbers. It'll appear on your search results.
Take control of notifications
You can change your notification settings at the global level or at the channel level. Set these accordingly to your channel preferences. It'll make your experience a lot more enjoyable.
Keep the channel info tab opened
This is where the pinned messages are, it will have you stay up to date.
Changing the theme
Make it fit your tastes!
You've been away a long time and just want to see when people have addressed to you? Open up the "Mentions" tab.
Star a message
Pinned messages apply for the whole channel. Use the star system to keep your personal favorites or pinned message somewhere.
Edit your message
You can edit any message by clicking on the COG sign on the right corner. I usually just hit the UP key as it directly edits the last message.
Hex color code
Just type a HEX color value and Slack will automatically show the color. Simple but nice.
Someone brought to my attention that Slack was too clustered and polluted with information. While I don't agree and I like having all the details expanded, there actually is an option to change the UI for a compact mode.
Try Slack if you haven't already. It works for us and I can't wait to see the product evolving in the years to come.
My email client is Inbox by Gmail. Whenever I swipe everything in the Done list, it shows this:
I'm seeing it more often these days :)