Work at speed with group chat for developers

"Move fast and break things. Unless you are breaking stuff, you are not moving fast enough." –Some guy at Facebook

Technology moves fast. For development teams to be successful, they need speed. Because the name of the game is to build the highest-quality product in the shortest amount of time, and the key to making a quality product–at speed–is to be communicative and coordinated. Group chat is the fastest way for dev teams to do just that.

Okay, so, chat's not new. Instant messaging isn't new. IRC's really not new. What's so special about group chat?

Group chat combines all of these abilities–group chat, 1-on-1 chat, file sharing, screen sharing, video chat, audio calls–into one application. Plus, it's better than the IM solutions of yesteryear because:

  • It's easy for everybody.
  • It's on every platform, including mobile.
  • You don't have to host it yourself–unless you want to.
  • It's fast. Have we mentioned that?

Seamless integrations help ship code faster

"Ship and iterate" –Google motto

If you work in a development environment where there's more going on than you can stay on top of (um, all of us?), group chat keeps you informed across a broad range of tools. It eliminates the need to visit 20+ applications a day–plus your email inbox–to get updates. That's great news for dev teams in particular because dev teams use a ton of tools.

Traditionally, notifications go to email by default. With group chat, notifications are streamlined into the chat room. Plus, you can see who's online in the room. This influences real-time decision-making and action. You'll no longer get sucked into (and drown in) email every time something happens, or have trouble seeing who's available. You can find and digest the notifications you need in a chat stream, and get right to work with those present.

Also, group chat is aggregative and customizable–it signals you about the things you want to know about, with granularity, all in one place. In other words, you decide–individually, and as a team–which notifications you need to work faster and more efficiently.

How to use group chat to get notifications from dev tools

My intent here is to point you toward the juiciest uses of group chat for a development team, regardless of which chat tool you're using. (Though, if you're in the market...we do make HipChat, which is pretty awesome.) So, you won't find specific set-up instructions here. For that, consult the documentation of your group chat tool of choice when you're ready to put these ideas into action.

Issue tracker

Notify the group chat room when...

Certain new issues are raised. Yes, it's possible to alert the room when any new issue is raised, but in practice the team would probably limit notifications to:

  • New defects
  • New ultra-high priority issues
  • Blockers

The most important issues are surfaced quickly to the entire team. Teams are able to discuss and self-organize around who should take action–all without switching applications.

Repository

Notify the group chat room when...  

1. New code has been pushed to the most important branches. (For most teams, that'll include master and any stable version branches.) This includes changes made directly on those branches, as well as merges–from a feature branch to master, for instance.

Changes on these branches become transparent, and the team can gently self-police them. This way, instead of locking the branches down so that only select people (so-called "gatekeepers") can push changes, everyone on the team has that ability. This also eliminates the burden on certain people becoming the "critical path," and removes a common bottleneck in the development process.

2. A code review is created. For teams using Git and Mercurial, this takes the form of a pull request, which is handled inside the repository manager (like Stash, Bitbucket, or GitHub). So, receive notifications when a code review is:

  • Created
  • Assigned to a team member
  • Commented on approved, rejected, etc.

Code reviews are another potential bottleneck in the journey from concept to delivery. These notifications help forward the process by surfacing the status.

Continuous Integration

Notify the group chat room when...

1. Builds fail on the team’s shared branches (master + stable version branches). Yes, it's possible to receive notifications about failures to all branches, but that could get really noisy–especially if using a feature branching or branch-per-issue workflow. Notifications won't be buried in an inbox, and you can figure out who needs to address issues right away.

2. A build hangs. Think about checking a build’s status only to find it’s been spinning it’s wheels for hours. You won't have the results you wanted, plus that hung build has been occupying CPU resources that other builds could’ve been using. So instead of getting hamstrung, get notified and get on it right away.

3. A deployment is successful. Developers, testers, and product owners will know right away when new code arrives on their test or staging environments. So problems are uncovered sooner, which means they can be fixed before more new code is piled on. It also means nobody has to spend their time relaying updates to the rest of the team. 

A conversation command center

Group chat can be command central for all communications for a development team. Information is no longer siloed in individual email accounts, and it isn't an IM between two engineers that no one else can read and learn from.

Working with group chat turns simple conversation into communal knowledge. Think of the momentum lost when suffering through a reply-to-all deluge, or digging for buried email notifications. The persistent history of group chat lets you search and find the answers you need.

The team moves faster. In a way, group chat is less interruptive than an actual tap on the shoulder.

How to use group chat as your conversation command center

Ping the group chat room when...

1. You've got questions about a piece of code you’re working on or need quick feedback about the way you intend to implement a feature or bug fix. The whole team can chime in, including team members who are elsewhere: working from home, another office, another continent.

2. More people are needed in the conversation, particularly people outside your immediate team. (As mentioned above, some group chat tools allow this via @mention functionality.) This is especially helpful if you’re working in an unfamiliar area of the code base, for instance, and need input from someone with more expertise. And the whole team benefits from the conversation.

3. It's time for stand-up–especially if your team is spread across multiple time zones. For this to really be effective, you need a group chat tool with persistent history so team members in San Francisco, say, can scroll back through the chat history and see the standup updates from teammates in Manila, sent overnight. (Some group chat tools integrate with handy bots that can assist, like the standup bot.) 

Pro Tip: If you’re on a distributed team, make sure to mute or turn off the group chat app on your mobile phone at night. You and anyone you share a bed with will be happier for it!

Because building software is a highly collaborative effort, dev teams depend on their teammates. But collaborating can slow a team down. To keep up the pace, they need the least amount of friction possible when communicating. Group chat clears obstacles and opens lines of communication for quick answers, easily shareable files, and integrations. It helps teams communicate and collaborate in real time in ways that email, meetings, and a hodgepodge of cobbled together solutions never could.

Group chat changes the way teams work together.

Posted by Jamey Austin

12 min read