Slack exploded onto the group chat scene almost three years ago, and if you’re a developer you've almost certainly come across it.
One reason for Slack’s popularity with developers — as well as the wider community — is that it's easy to sign in to Slack and use it anywhere, according to Adam Preset, Gartner's research director for digital workplace. "Using Slack is good in a rich client, using a web interface, and on a mobile device," he says. "It's not mobile first or desktop centric, and in a world where developers want to work anywhere that's very important."
The ability to communicate in persistent chat rooms or channels organized by topics or projects, or using private groups or messages, is the bread and butter of any group chat application. And Slack does all of that very well. But one thing that makes Slack particularly appealing to developers is the ability to integrate other applications into Slack.
The code hosting service GitHub and the build and testing tool CircleCI are two such examples. Out of the box it's possible to integrate GitHub into Slack and automatically post notifications about GitHub project commits, pull requests and issues into the appropriate Slack channels, along with links directly to these GitHub events. And with CircleCI integrated into specific project channels, whenever code is deployed, developers can be notified by a red or green traffic light in the chat room so they don't have to wait to check a build state at the CircleCI website, according to Radek Zaleski, head of growth at international software development house Netguru. "If something fails, the notification is pushed as a Slack chat message with a direct link to the build," he says.
One more reason Slack appeals to developers is that the platform is open enough to allow them to use their coding skills to mold it to their own requirements, says Matt Dolan, developer team lead at content management system provider Jadu. "The developer mindset is one of working to fix things, adding things, and being lazy by automating," he says. "Slack allows you to do that because it has made itself a platform for hackers, so we can always hack something together to make life easier."
Jadu uses Atlassian's JIRA issue and project tracking software, and Dolan has written a Slack chatbot called Jiri (a kind of Siri for JIRA) that takes a JIRA issue ticket number and brings information about that ticket into Slack. "The idea of Jiri is to fill in the context of a ticket, and at the same time it reduces the friction of using two tools like Slack and JIRA together," says Dolan.
Sharing snippets sells
One Slack feature that is clearly aimed at the developer community is built-in support for sharing and testing code snippets across a development team. Since all content in Slack can be permanently stored and made searchable, that means that any code shared in this way is then always accessible and usable by other developers in the future.
(One argument against the use of Slack is that the very fact that it stores so many organizations' communications and code snippets makes it an attractive target for hackers. About a year ago the service was breached, resulting in hackers making off with usernames, email addresses, encrypted passwords and other user information, but not, apparently, the contents of chat channels.)
Mike Street, a developer at web design agency Liquid Light, says that a key attraction of Slack for him is that it can reduce interruptions. That's particularly important to developers because once a coder is holding several variables in their head and is in full flow, it can take half an hour or more to get back 'in the zone' after even a very brief disturbance.
"What we've found is that we get hardly any internal emails anymore. Before we had loads, and half of them were links to videos of dogs doing silly things," says Street. " Now all communication is done through Slack, and you can use it to receive messages when you are ready, without interrupting your flow."
In fact, the use of Slack has become so widespread in the developer community that familiarity with the tool is becoming as important as proficiency in certain languages if you want to land a coding job, says Netguru's Zaleski. "In most of our recruitment efforts we have a question about which chat tools you are familiar with and we certainly look for people who know how to use Slack," he says.
Here are seven tips from the developers I spoke with for getting the most out of Slack.
- Exploit the power of bots. Matt Dolan at Jadu has written a bot that ties in with the company's HR system. Every morning at 8 a.m. it posts in Slack a list of people who are working from home or who are on vacation that day to help developers keep track of their teammates.
- Integrate imaginatively. Paul Stanton, a developer at Jadu, says a Slack integration with HeyUpdate means that at 4 p.m. each afternoon all developers are asked automatically what they have worked on that day. Information from each team member is then gathered and posted in Slack at 8 a.m. the following morning. "For me as a remote worker, this integration keeps me in sync with the rest of the businesses without having to ask," he says.
- Don't be afraid to use plenty of channels. "It's a good idea to separate conversations into their own channels, and don't worry about having too many," says Liquid Light's Mike Street. "The main reason is to avoid interrupting your flow, so have dedicated channels to discuss Game of Thrones or for funny dog videos," he says. The benefit of a multi-channel approach is that by being precise about the content that belongs in each channel, you know if it's of interest or not, Street says. "If you use lots of channels you can leave a channel and not have to see the content."
- Use Slack to find the right teammates. In a large and expanding development house with remote workers it can be almost impossible to know who knows what, says Netguru's Radek Zaleski. "There's a technical requirement to get a code review partner when writing code. That could be hard, but our Slack bot matches you with another developer with a similar skill level and technical stack in the company," he says.
- Turn off most notifications. "Slack can be a tool that helps productivity, but it can also be one that distracts if you're not careful," says Paul Stanton. "I want data to be ambient, not thrown at me, so it's important to decide which notifications to turn off to avoid information overload."
- Use keyboard shortcuts. Most developers like to use keyboard shortcuts instead of a mouse, and there are plenty in Slack to make you more productive. "My favorite is to use the up arrow when I am in chat and I want to edit a comment," says Thomas Peham, a developer at bug tracking software maker Usersnap. "I use it every day to change something or correct a typo," he says. Another time saver is the Quick Switcher, accessed by Ctrl+K (PC) or Cmd+K (Mac). You can use it to move between group chats, channels or private conversations by typing in the first few letters of their names and pressing Enter to jump straight in.
- Exploit Slack slash commands. Type a / into any text field to see multiple command options. As well as Slack-native commands (like Open or Remind) you can add more, but some enhance productivity more than others, warns Mike Street. "Our current favorite is Giphy integration," he says. Typing /giphy hello in Slack adds a /giphy command, and once added, typing /giphy [keyword] will display a random GIF related to the keyword in the channel.) "We use /giphy and some keyword in about 99% of our conversations," Street says.