How we use Slack at Sourcegraph

Overview

We use Slack for team chat and real-time announcements. While Slack isn’t a source of truth, it is an important internal communication tool that helps us stay connected in real-time. All teammates are encouraged to join the following company-wide channels to stay informed on news happening across the company. Read on for best practices, channels to join, and processes we follow as a company.

Visit the Tools we use handbook page for resources on how to use Slack.

Company-Wide Channels

All teammates should join these channels and check them regularly

  • #announcements - To share critical information with all Sourcegraph teammates. Messages here are shared with ALL teammates at Sourcegraph.
    • Note: Posting permissions are limited to keep the signal-to-noise ratio high. Teammates should use emojis and threads to engage with content.
    • If you need access to post in #announcements, please send a message to #internal-comms.
  • #exec-ama - This channel makes it easy to ask Sourcegraph leadership any question and get an answer. Responses will be shared within 48 hours. Follow these instructions when submitting a question.
  • #progress - Share exciting progress on things you’re working on (ex. Recently closed deals, product launches, etc.)
  • #thanks - Appreciate someone’s work? You can thank them here! :) Consider tying your feedback to a Sourcegraph value
  • #handbook-announce - Announcements of important changes to the Handbook.
  • #feedback-dogfood - Internal product feedback

If you’d like to add a channel to the company-wide list, please reach out to the Tech Ops team in #it-tech-ops.

Slack Retention

Slack is not a source of truth which means important updates that may be shared in Slack should be reflected in a source of truth. To enforce this, only 90 days of Slack activity in public channels is retained. Consider using the “bookmark” feature in Slack to make relevant documents and sources of truth easily accessible in channels.

Important: You must notify Tech Ops (in #Tech-Ops) when you create a new channel requiring an exception to the default 90-day rule (even if it falls into an existing exception). We have no way to know when new channels requiring an exception are created. Exception requests will be reviewed and approved on a case-by-case basis.

Exceptions to the 90-day rule include the following channels:

  • #security-monitoring retains messages for 5 years for auditing purposes in our security monitoring tooling.
  • #customer-updates similarly retains messages for two years because a lot of customer context ends up in Slack threads and it is not currently practical to move that to another system of record.
  • #feedback retains messages for 5 years because it provides a good source of user testimonials.
  • #engaging-external-engineers retains for 5 years because team chat is the easiest way to solicit advice from our broader team, and the questions are usually one-off, so it wouldn’t make sense to try to make this more organized.
  • #it-tech-ops retains messages for 5 years to provide a source of education for new teammates as well as provide a record of changes made to our internal systems
  • #sales-prospecting retains for 5 years to support the education of new teammates about how to communicate with customers and prospects.
  • #west_sales_news_and_prospecting and #east_sales_news_and_prospecting retain messages for 5 years to serve as libraries of start-up accounts that the sales team can target as AE and SDR headcount scales.
  • #sales-resources retains messages for 5 years to serve as a library of quickly evolving sales collateral and tools.
  • Channels that we share with customers or prospects (typically containing the prefixes #trial- or #support-) retain messages for 5 years to preserve context for support or audit-related purposes.
  • #marketintel retains messages for 5 years to keep a long-term overview of market information around the field of developer tools.
  • #seo retains messages for 5 years to keep a record of historical SEO efforts, numbers & screenshots, etc.

Use of private channels

By default all Slack channels are public. This is in line with our company’s value to be open and transparent and facilitates collaboration and async learning. Any member of the Sourcegraph workspace (but not guests) can view and join a public channel, giving everyone access to the same shared information. However, we understand that not everything discussed between team members should be public and there is a need for private channels. Private channels are for conversations that should not be open to all members. People must be added to a private channel by someone who’s already a member of the channel. Messages or files posted in a private channel can only be searched by members of that channel.

Private channels will automatically be created for the following categories of conversations:

  • Recruiting: Channels used for discussing specific positions where private candidate feedback and details will be discussed.
  • Management: Channels where managers can communicate about specific private or sensitive team situations.
  • Legal: Channels with legally sensitive information, such as acquisition discussions or communication with outside parties where we have a legal requirement to keep information sharing limited.
  • Affinity groups: Channels for affinity groups that prefer a private space.
  • Internal: While we strongly encourage that every team keep these public by default and to use our “TEAMNAME-internal” naming convention to help other teams understand that it is an internal chat, if a team is feeling pressured or uncomfortable they can ask to make the channel private.

If you would like a channel to be made private, and it does not fit in the categories above, please acquire pre-approval from your manager before contacting #it-tech-ops to make a channel private. The intention of this additional step is to have one more conversation about why a channel should be made private—ensuring we are doing everything we can to adhere to our company values while respecting individuals’ privacy.

Send (and read) messages any time

Because Sourcegraph is a global, all-remote company with flexible work hours, teammates should feel free to send messages to others at any time, rather than trying to guess what a convenient time would be for the other party (or parties) involved.

In turn, you are free to read your message whenever it is convenient for you. There is no expectation that people will be responsive over the weekend/vacation/evening/etc..

Make sure to set up Slack to only send you notifications when you want to see them!

Slack Best Practices

1. Engage with messages by following emoji norms

Use these emoji reactions to quickly engage with messages in Slack and help with asynchronous alignment:

  • :acknowledge: = I acknowledge I’ve seen this. Action not needed.
  • 👀 = I’ve seen it, I’m reviewing it
  • ✅ Green Check = I’ve seen it, my action is complete
  • 👍 👎 = Agreement / Disagreement but non-blocking
  • ❌ = Blocking disagreement
  • 📣 Megaphone = Discuss in team meeting

2. Default to public channels

  • When using Slack for work-related purposes, avoid private messages. Use a public channel and if you know who will likely have the answer, mention that person directly. This ensures it is easy for other people to chime in if they have the answer, and helps other people observe and learn.
  • Move work-related private messages to public channels. . The process might look something like this:
    • In the private message: “Thanks for reaching out. That’s a great question/idea that I think the rest of the team could benefit from. I’m going to move this to #public-channel. Is that okay with you?”
    • In the appropriate public channel: “@person asked “question” via a DM and I’m sharing it here in case others have input to add.”

3. Use threads to keep conversations focused

  • While working in a Slack channel, use the “thread” feature to reply to messages instead of replying directly in the channel. This keeps the signal-to-noise ratio in the channel high. ​​When a thread reached a point where a decision is made and that information would be useful to the entire channel you can check the “also send to #channel” button to make that message visible to the main channel.
  • If you need to start a new topic of conversation, post directly in the channel to start a new thread.

4. Share complete thoughts

  • Rather than sending a stream of consciousness through multiple messages in a row, collect your thoughts and share one clear message. Doing this protects your teammates’ workflow.

5. Follow Naming Conventions

Profile Name:

To avoid confusion, set your Slack display name as First Name (or preferred name) Last Name.

Channel naming conventions:

As an asynchronous-first company, there are many public Slack channels at Sourcegraph, all with different intentions and audiences. It can be easy to feel overwhelmed with the volume of information shared and challenging to keep up with where to look. To improve the discoverability of Slack channels, follow these naming conventions:

  1. ${TEAMNAME} is the default channel for discussing work that the team is doing and fielding questions from outside of the team. If you have a question to ask another team, ask it in their default channel.
  2. {$TEAMNAME}-internal is a secondary channel that the team can use to communicate about topics that are not related to the work of the team and clearly only relevant to members of the team itself. The team should treat this as their own channel, even if non-teammates have joined. We encourage teams to keep this channel public for transparency.
  3. {$TEAMNAME}-topic if teams require additional channels specific to a segment of the team, they should follow the convention of prefixing the channel name with their team name. For example: marketing-content

6. Archive old and unused channels

To keep the Sourcegrpah workspace on Slack organized, easy to navigate, and up to date, archive channels when they are no longer needed. First, send a final message in the channel notifying its members that you are going to archive the channel, allow 24 hours for any objections, then archive the channel.

Join channels to stay connected and informed

In addition to the company-wide channels that are outlined at the top of this page, here is a list of popular channels at Sourcegraph. Don’t see a channel you’re looking for? Search for it on Slack and create it yourself it doesn’t exist.

Social

  • #3dprinting - Discussion and photos about your three-dimensional creations
  • #anime - All things related to anime
  • #art-and-crafting - For teammates to share and discuss their artistics and crafting endeavors!
  • #basketball - All things hoops (NBA, NCAA, FIBA, etc.)
  • #best-timezone - Hangout channel for the European time zone. GIFs allowed!
  • #bikes - For all your cycling-related conversations and ride photos.
  • #books - Read books recommended by teammates and discuss them.
  • #cars - For all things cars!
  • #chess - For all chess lovers
  • #clothing - Chit-chatting about clothes
  • #coffee - For the love of coffee
  • #cooking - All things cooking and food
  • #desksetup - Discussion about your WFH setup, show off your desk!
  • #fantasyfootball
  • #football-soccer - General banter about the beautiful game ⚽️ (not this one 🏈)
  • #gaming - For all gamers
  • #golf - To all those golf fans here
  • #great-bandname - “That’s a great band name” — all the things we find that would make a great band name
  • #keyboards-of-sourcegraph - clack clack CLACK clack clack CLACK cl
  • #kids-of-sourcegraph - A place to share photos of our Mini-Sourcegraphers and share advice on parenting.
  • #memes-and-motivations - Sometimes a funny meme or a powerful motivational video is good for the soul!
  • #mixology - To talk about the art of making drinks/drinks we enjoy
  • #motorsport - For those that like the smell of fuel or burning rubber, or blissful silence of the electric motor.
  • #music - Share your tunes.
  • #nomad-life - For folks who use our async remote culture to travel around, whether just for a few weeks or as a lifestyle
  • #peloton - For conversation around bikes that don’t move
  • #pets-of-sourcegraph - Sometimes you need pictures of floof(s) to get through the day.
  • #photography-chat - For photo-takey types
  • #plants-of-sourcegraph - 🌲🌻
  • #seattle-gang - For any Sourcegraphers in, around, and visiting the Seattle area
  • #sourcegraph-cascadia - Hangout channel for everyone in the beautiful region of Cascadia (from northern California to British Columbia)
  • #sourcegraph-latam - Hangout channel for anyone in or from Latin America
  • #side-project - Working on a cool/challenging/fun side project? Tell us all about it here!
  • #ted-talks - Share impactful ted talks here, with a brief description and time of the talk
  • #today-i-learned - Anything you learn or think is fascinating, please share.
  • #trash-tv - For discussing TV and movies, but especially the stuff that’s not good.
  • #us-personal-finance - Discussions related to personal finance topics in the US
  • #virtual-coworking - 60 minute sessions to work quietly in tandem
  • #yelling - FOR WHEN YOU NEED A PLACE TO VENT

Employee Resource/Identity

Product

All Product teammates should join the following channels (feel free to adjust your notification preferences for each as you see fit, though):

  • #design - How Sourcegraph looks visually
  • #feedback - Feedback directly from our users & customers
  • #product - Product questions, ideas, and thoughts
  • #prod-eng-announce belong here.You should read every message in here, and messages you post to it should have a high signal-noise ratio.

Operations

All teammates in Operations should join the following channels (feel free to adjust your notification preferences for each as you see fit, though):

Go-to-market

All teammates in Sales and Marketing should join the following channels (feel free to adjust your notification preferences for each as you see fit, though):

Engineering

All engineers should join the following channels (feel free to adjust your notification preferences for each as you see fit, though):

  • #eng-announce - Announcements that are relevant to all of the Engineering department belong here.You should read every message in here, and messages you post to it should have a high signal-noise ratio.
  • #dev-chat - Anything generally related to Sourcegraph development.
  • #dev-frontend - Anything related to frontend development.
  • #dev-backend - Anything related to backend development.
  • #dev-ops - Discussing incidents and any other ops-related work.
  • #dev-learn - Share and discuss learning resources such as articles, books, and courses.
  • #buildkite - Notifications about Buildkite / CI failures.
  • #opsgenie - Pager notifications get sent to Slack.
  • #alerts-cloud - Alertmanager alerts and warnings for our Cloud deployment.
  • #alerts-dogfood-k8s - Alertmanager alerts and warnings for our Dogfood deployment.
  • #bots-production - Kubernetes bot notifications.
  • #alerts-external - External system notifications which might impact our deployments.

You should also join channels mentioned in your team’s documentation

More on #exec-ama

Overview:

Transparency is a core company value at Sourcegraph, that’s why Sourcegraph teammates are encouraged to ask questions of leadership to gain clarity on topics they’re interested in hearing more about. Teammates should submit questions via Slack in the #exec-ama channel. The default should be to submit questions using the workflow outlined below. If a teammate doesn’t feel comfortable submitting a question with their name attached, that’s okay, just ask your manager to submit the question on your behalf, or use the anonymous AMA form and a member of the comms team will ask the question on your behalf. Questions will be answered within 48 hours and all answers will also be documented here to allow for long-term documentation.

Instructions

  1. Check the AMA Log to see if your question has already been asked/answered.
  2. If you have a new question, navigate to #exec-ama and select the “attachments and shortcuts” button and choose “submit a question”.
  3. Type your question, and (if applicable) identify who you’d like to have answer the question. Once ready, hit “submit”.
  4. A member of the leadership team will review your question and approve it so it appears in the channel.
  5. Expect to see a reply via thread within 48 hours, and feel free to continue the conversation in the thread.