Skip to content

Slack vs. GitHub

Kevin Hoffman edited this page Oct 1, 2018 · 1 revision

When to Use Slack vs. GitHub

Nearly all team communication happens in either Slack or GitHub. Each issue, commit, and pull request made on GitHub is echoed in the Slack #development channel. With similar content communicated in both Slack and GitHub, it's important to differentiate the roles of each tool in development:

  • Slack - Best used for temporary discussion of details that require back-and-forth conversation before arriving at a conclusion.
  • GitHub - Best used for proposing or documenting concrete changes with long-term value.

Rule of Thumb: If a discussion will be valuable tomorrow, document it in GitHub.

Channel Discussion

Use the main Slack #development channel to:

  • Discuss general topics unrelated to specific issues, commits, or pull requests.
  • Notify the development team of major changes that warrant the entire team's attention.
  • Start new message threads that don't already have an issue or pull request in recent channel history.

Message Threads

Use Slack Message Threads to:

  • Keep related conversation together in a single thread.
  • Answer a direct question posed by another developer in the main channel.
  • Clarify issues, commit messages, or pull requests that have been echoed from GitHub.

Thread Etiquette

  • Avoid polluting the main channel with conversation that only affects a specific change.
  • Use the "Send to Channel" option sparingly to keep the main channel clear of distractions.
  • When a decision is made, document it in GitHub using the Chat Summary Template below.

Chat Summary Template

Use this template when summarizing a Slack chat in GitHub.

## Slack Chat Summary

Participants: @devinwalker, @ravinderk  
Topic: {the purpose for the chat}  
Result: {decisions, next steps, etc.}

Calls

Use Slack Calls to:

  • Expedite the resolution of an issue via face-to-face or voice call.
  • Screenshare visual concepts that would be difficult to communicate in text.

Call Etiquette

  • When requesting a call with another developer, message them via Slack in the main #development channel.
  • Describe the goal of the call in your request so the other developer knows what to expect.
  • Include relevant links to issues, commits, or pull requests that will be referenced in the call.
  • On a call with three or more participants, be sure to mute oneself when not speaking.
  • After the call, document it in GitHub using the Call Summary Template below.

Call Summary Template

Use this template when summarizing a Slack call in GitHub.

## Slack Call Summary

Participants: @devinwalker, @ravinderk  
Topic: {the purpose for the call}  
Result: {decisions, next steps, etc.}

Preserving Slack Activity in GitHub

Once a conclusion is reached in a Slack conversation, thread, or call, that conclusion should be documented in the relevant issue or pull request on GitHub. Documenting these conclusions serves to:

  • Inform the entire team of decisions and rationale.
  • Bring other developers up to speed who may be assigned to the issue in the future.