In the past several years, Slack has made significant investments into making their platform a cornerstone developer tool. With the significant shift and emphasis now being placed on remote working teams, choosing the appropriate tools is paramount. One of the largest, if not the largest problems to solve, is how to facilitate asynchronous and synchronous communication. Slack is a well known communication tool, here are some reasons why Slack is the correct choice for your development team.



#apps

I’ll state my bias, I am already a huge fan of Slack. My favourite aspect of the platform is the flourishing marketplace. Since the creation of the marketplace, Slack has made it simple for users to adopt integrations created by app builders. You can now find a wealth of 3rd party apps to serve a wide variety of needs within an organization. For a development team, there are a variety of marketplace apps.

  1. Virtual StandUp tools (ex. Geekbot). These give teams the ability to raise blockers and also visibility into the rest of the team without eating away at precious development hours.
  2. Infrastructure Notifications (ex. PagerDuty, Github, etc.). These apps allow teams to be notified about the import status updates of applications in a shared environment.

💡Tips: Check out Geekbot, PagerDuty, Github, and Gitlab. Honourable mention to social interaction tools like Giphy, which provide much needed levity between Pull Requests.


#communication

Of course, when we talk about Slack, we can’t not talk about its success as a communication platform. The ability for teams to thread topics at the atomic level and group conversations allows for discussions to happen over an extended period of time—without being derailed or buried by other aspects of the business. This is true for all users of Slack, but is particularly useful for development teams to filter out noise. It also allows developers to keep a holistic view of the business. Vertical & horizontal collaboration makes Slack a powerful tool for the transfer of institutional knowledge.

💡Tips: Monitor your Slack channel activity. If a channel doesn’t have any activity over the course of several weeks, consider merging with another channel. If multiple topics are breaking out at the same time, this is a good indicator the channel is too broad. Also, set a clear topic for each channel.


#notifications

This may seem trivial, but the ability to pause notifications has been a feature developers love. It allows individuals to hone into a state of deep work without the thread of “pings” to distract. One of the lesser used features on Slack is the ability to customize notifications, allowing an individual to get notified on specific keywords.

Additionally, being able to set a status provides crucial context to the rest of your team when you might not be able to respond to messages immediately. Slack also just recently released a new set of “remote work specific” statuses.

💡Tips: try using /dnd [some amount of time] to go into DO NOT DISTURB mode or /mute to a specific channel. Other useful slash commands are /status to set or clear your Slack Status and  /remind which can help you set a reminder to get back to a message at a more appropriate time.


#snippets

Slack allows users to format text to help distinguish between conversation and code. Both code snippets and code blocks have proven quite useful for development teams. It makes it much easier to convey information in a text medium, by making it clear what part of the message is logs, which parts are code snippets, and what is clarifying text.  

💡Tips: press ⌘ + Shift + Enter (Ctrl + Shift + Enter on Windows/Linux) to open a code snippet pop-up window. Both code text and code block formats have icons below the Slack Chat box.


#workflows

Slack empowers users to create simple workflows and build simple alerts and automations. A lot of 3rd party Slack Apps provide notifications on the status of various tools. Workflows allow you to take this one step further by taking action on those notifications. I will add a shameless plug for The CTO.ai Ops Platform, which is by far the easiest way I’ve seen to build a Slack App that interfaces with your infrastructure and dev tools.

💡Tips: Check out an example of the CTO.ai EKS Ops workflow here. Slack has put out a lot of documentation on how to build simple workflows that only require interaction with a user (not 3rd party tools) such as Automated Reminders, Approval Processes, and a way to gather feedback.


Slack, of course, has some drawbacks. Slack offers a fairly comprehensive free tier, but, if you’re looking to have more than 10 apps and a full history of conversations, it can start to get pricey for larger teams.

It also can come across as complex for newbies and if channels are not set up to follow a singular topic a lot of those threaded conversation benefits can disappear. Furthermore, Slack has done such a great job that I actually think it can be a bit of an addictive tool to use.

However, for my money, it is the best communication tool for development teams currently on the market. When I start a new development team, the first tool I will implement is Slack.