How we use Slack at Sourcegraph

We use Slack for team chat and real-time announcements.

Slack retention policy

Slack is not a source of truth. Important updates shared in Slack must be reflected in a source of truth. To enforce this, we have the following default data retention set:

  • DMs: 18 months retention
  • Private channels: 18 months retention
  • Public channels: 18 months retention
  • Support & Trial channels: 5 years retention

Retention exceptions

Channel retention exceptions can be requested in #ask-it-tech-ops and will be reviewed/approved on a case-by-case basis by VP of Talent & People and VP of Operations. Exception requests must satisfy at least one of the below requirements:

  • Strategic Importance: When a Slack channel serves a strategic purpose, such as for key customers or strategic accounts.
  • Business Necessity: When extended retention is required to meet critical business needs.
  • Low Data Sensitivity: If the data in a channel is not highly sensitive and doesn’t require strict retention periods but is static data (long lived) and valuable to operational efficiency and success.
  • Completed Channels: For channels that have completed their primary function but hold valuable historical information.
  • Legal or Compliance Requirements: When there are specific legal or compliance requirements that necessitate an exception.

Important: You must notify Tech Ops (in #Tech-Ops) when you create a new channel requiring an exception to the default 18 months rule (even if it falls into an existing exception). We have no way to know when new channels requiring an exception are created.

Channel naming conventions

Follow these naming conventions to help with discoverability. Channels can be re-named by submitting a request in #ask-it-tech-ops.

Prefix Purpose Examples
#announce- For important announcements your team needs to know. Note these channels have limited posting permissions, reach out to the channel manager to request access to post. #announce-company, #announce-sales, #announce-eng
#team- For teams to coordinate work and activities among themselves. Strict channel membership for only people on that team. #team-design, #team-support-engineering, #team-sales
#discuss- To discuss topics related to that department or team. Open to any teammate interested in that topic. #discuss-sales, #discuss-marketing
#wg- Stands for “working group” For cross-functional teams working together. #wg-swag, #wg-impact-reviews
#location- For teammates in the same location to connect. #location-bayarea, #location-london, #location-nyc
#customer- For sourcegraph teammates to discuss important issues related to that customer. #customer-ibm, #customer-databricks, #customer-salesforce
#prospect- For conversations about prospective customers. #prospect-bofa, #prospect-cruise
#ext- To connect with EXTERNAL customers, consultants, etc. #ext-splunk-sourcegraph, #ext-indeed-management, #ext-video-prod
#trial- EXTERNAL communication with companies considering Sourcegraph #trial-pandora, #trial-tmobile, #trial-nvidia
#event- To plan and execute events, large and small. #event-aws, #event-slush, #event-rubyconf
#chat- Chatter about a specific topic (typically not related to Sourcegraph work) #chat-book, #chat-chess, #chat-cars, #chat-clothes

Mandatory channels for all teammates

All teammates are automatically added to these channels when they join Sourcegraph, and they should check them regularly.

#announce-company Critical information that all Sourcegraph teammates need to stay on top of.

Messages here are applicable to 75% of the company and posting permissions are limited.

#ask-exec-team Ask Sourcegraph leadership any question and get an answer.
#announce-people-talent-team Important announcements from the People & Talent team.
#announce-it-tech-ops Important announcements from the Tech Ops team
#progress Celebrations for milestone moments and progress that impact our company strategy.
#announce-teammate-hires Welcome newly hired teammates and celebrate promotions and new roles.
#announce-teammate-departures Stay informed about teammates who are leaving Sourcegraph.
#thanks Say thank you to teammates for big moments and small ones.

Mandatory for people managers

#team-people-managers Private channel - Discussion among people managers.

Slack guidelines

Keep your profile up to date

All teammates should add the following to their profile:

  • Full name: First and Last Name
  • Display name: First and Last Name
  • Title: Your role at Sourcegraph
  • Time zone: Keep this up to date so teammates know when to reach you
  • Pronouns
  • Name recording/pronunciation (optional)

Set a channel description

When you create a Slack channel (regardless of if it’s public or private) you should add a description for the channel to let people know what kind of information they can expect to find there.

Set a channel manager

Every channel should name a channel manager so there is a clear owner responsible for keeping the channel organized. You can view channel managers by clicking on the channel name, then “about”.

Send short messages

As a general rule of thumb, Slack messages should be kept short and to the point, with additional details shared in the message thread. We’ve put additional processes in place to make sure only short, direct messages are sent in announce channels because those channels need to maintain a high signal to noise ratio. See announce channel guidelines

Use emoji reactions

An emoji reaction can sometimes replace the need for a follow-up message and emojis show the poster that you saw their message.

Note on custom emoji

Teammates can upload their own custom emoji to our Slack Workspace. Please keep in mind that rapidly changing or flashing emojis may not be friendly for teammates who are impacted by photosensitivity or susceptible to seizures.

If you spot a custom emoji that may be a bit too animated, report it to #ask-it-tech-ops so it can be removed.

Use threads to organize discussions and reduce noise

Threads help you create organized discussions around specific messages. They let you discuss a topic in more detail without adding clutter to a channel or direct message (DM) conversation.

When a thread reaches a point where a decision is made, communicate that decision back to the channel by using the “also send to #channel” button.

If you need to start a new topic of conversation, post directly in the channel to start a new thread.

Default to public channels

Sourcegraph is an all remote and asynchronous-first company, and we work out in the open via public channels to help teammates stay informed. Default to using public channels 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. If you receive a DM that should be shared in a public channel, ask that person to re-send the message with a broader audience. The forward message feature allows you to share private DMs in a public 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.

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 #ask-it-tech-ops to make a channel private.

Organize Slack for your workflow

To help you keep track of important conversations, you can star a channel or direct message (DM). Starred conversations appear in the Starred section of your sidebar. You can also organize your channels,DMs, and apps into custom sections within your sidebar. Your custom sections are only visible to you. Watch this video for a few examples.

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..

Archive old and unused channels

To keep the Sourcegraph Slack workspace 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, then archive the channel. Archived channels can always be undone and the information in them remains discoverable.

Announce channel guidelines

Announce channels uplevel the most important information for your intended audience.

  • Send short messages that get to the point quickly.
  • Share relevant follow-up details in the thread of your announcement.
  • As a general rule of thumb, the information shared in department-specific announce channels should be relevant to the teammates in that department.
  • If your announcement is relevant to another team (aka it impacts their work) share the announcement with the leader of that team so they can forward the information to the right people.
  • If an announcement impacts the majority of the company (3 or more teams) it probably belongs in #announce-company.

If you do not have access to post in an announce channel, follow these steps:

  • Draft a short message that quickly gets to the point.
  • Click on the channel name to pull up the “about” info.
  • Identify who the channel manager is and share your announcement draft with them via a DM.
    • Most channels should have more than one channel manager listed. If you cannot reach either manager, a request for posting access can be shared in #ask-it-tech-ops
  • Be clear about whether you would like to request access to post, or if you are OK with the channel manager posting on your behalf.
  • The channel manager will share any revisions with you to make the message as effective as possible and ensure the message is shared (either by granting you access or sharing for you).

FAQs

Q: What qualifies as an announcement Announcements should be relevant to all or most members of the channel and generally convey information that is either urgent (requires attention/action) or important (has an impact on the audience). If it doesn’t meet these criteria, it may be better suited for a smaller audience or a different channel (like a #discuss channel). When in doubt, ask the channel manager!

Q: What does an effective announcement message look like? Messages sent in announce channels should be clear, concise, and to the point. Avoid lengthy descriptions and get straight to the key message. You can (and should) share more in-depth info in the thread.

Q: How often should announcements be shared? There’s no one-size-fits-all approach here. Just be mindful of the frequency of announcements because too many messages can lead to information overload, causing important updates to be missed or ignored.

Channel lists by department

Sales

New Channel Name Members/Audience
#discuss-sales All Sales
#announce-sales All Sales, Marketing
#discuss-sales-ops All Sales
#discuss-field-gtm-and-operations All Sales
#wg-sales-prospecting All Sales
#team-superare SDR
#team-west-ae AE West
#team-east-ae AE East
#team-emea-ae AE EMEA
#team-sales-leadership Sales Leadership
#gtm-operations-review Sales Leadership
#discuss-commissions Accounting and Sales Team
#discuss-eoq-closing Deal Desk, Sales, Legal Teams
#discuss-deal-desk Deal Desk, Legal, Sales

Technical Success

New Channel Name Members/Audience
#team-technical-success All TS
#announce-technical-success All TS
#discuss-technical-success All TS
#team-ce CE
#discuss-ce CE and cross functional partners
#team-implementation Implementation
#discuss-implementation Implementation
#discuss-professional-services Sales, CE, TA, IE, Support Engineering
#team-technical-advisors TA
#discuss-technical-advisors TA
#team-scaled-succcess Scaled TA
#discuss-scaled-succcess Scaled TA
#team-support-engineering Support
#discuss-support-engineering Support
#discuss-commissions Accounting and Sales Team
#discuss-deal-desk Deal Desk, Legal, Sales

Engineering, Product, Design

New Channel Name Members/Audience
#announce-engineering All engineering, cross functional partners
#discuss-engineering All eng, cross functional partners
#team-engineering All engineering
#discuss-dev-ops Anyone having question about deployments
#discuss-release-ship People who have questions and updates about releases
#announce-incidents Anyone who needs to be aware of incidents
#chat-dev-backend All engineers working on Backend code
#team-dev-frontend All engineers working on frontend code
#chat-dev-learn Anybody wanting to chart about dev related topics and learn new things
#discuss-product All Product teammates, cross functional partners
#team-product All Product teammates
#announce-product-research All Product teammates, Design team
#feedback-dogfood All Product teammates
#team-design Design team
#discuss-design Design team

People & Talent

New Channel Name Members/Audience
#announce-people-team Whole company
#team-people-and-talent All People & Talent teammates
#ask-people-team People & Talent, teammates w/ HR questions
#wg-talent-scheduling-and-offers Talent teammates
#ask-hiring People & Talent, anybody with hiring questions

Marketing

New Channel Name Members/Audience
#team-marketing All Marketing teammates
#announce-marketing All Marketing teammates + cross functional partners
#discuss-marketing All Marketing teammates + cross functional partners
#team-comms Comms team
#discuss-internal-comms Internal comms + people looking for support on internal comms
#team-social Social media team
#wg-events Events team + cross functional partners
#team-pmm Product Marketing team

Operations

New Channel Name Members/Audience
#team-operations All Operations
#team-operations-leadership Ops Managers
#benefits-payroll-private Payroll and People Team
#bamboo-org-updates Payroll and People Team
#team-finance Finance and Accounting team
#team-accounting Accounting and Sales Team
#team-deal-desk Deal Desk and Legal Teams
#discuss-deal-desk Deal Desk, Legal, Sales
#team-deal-desk Deal Desk and Legal Teams
#team-data-analytics Data & Analytics
#discuss-analytics Data + cross functional partners
#announce-analytics Data + cross functional partners
#alerts-dataops Data & Analytics
#team-data-eng Data & Analytics
New Channel Name Members/Audience
#team-legal All legal teammates
#discuss-legal Legal + people with legal questions

Cody channels

Channel Name Purpose
#announce-cody Very high signal announcements about Cody releases, product roadmap, improvements, and usage that everyone in the company should be aware of.
#discuss-cody General questions and discussions about Cody; prefer to use more focused channels when possible (eg, #wg-cody-agent for questions or discussion around Cody Agent).
#feedback-cody General dogfooding and external feedback from Cody users. Feedback that’s specific to a particular client should go in the relevant #wg- channel.
#discuss-cody-context Discussion of Cody context
#discuss-cody-strat Questions, bug reports, and feedback specific to the Cody strategic work
#team-cody-strat Internal channel for members of the Cody strategic team
#wg-cody-gateway Discussion space for Cody Gateway development
#wg-cody-agent Discussion space for Cody Agent development
#discuss-cody-clients Discussion space for Cody product teams to coordinate and collaborate on cross-team work
#wg-cody-vs-code Discussion, questions, bug reports, and feedback specific to the VSC extension. VS Code team collaboration
#wg-cody-neovim Discussion, questions, bug reports, and feedback specific to the Neovim plugin. Neovim team collaboration and weekly progress updates.
#wg-cody-jetbrains Discussion, questions, bug reports, and feedback specific to the JetBrains plugins (eg, IntelliJ). JetBrains team collaboration and weekly progress updates.
#wg-cody-web Discussion, questions, bug reports, and feedback specific to Cody in the web (dotcom or enterprise). Cody Web team collaboration and weekly progress updates.
#wg-cody-emacs Discussion, questions, bug reports, and feedback specific to Emacs plugin
#discuss-cody-app Questions, bug reports, and feedback specific to Cody App (not part of GA, but we need a place to continue trying to support existing users).
#cody-mentions Alerts delivered when Cody is mentioned in our community.
#cody-mentions-east Alerts delivered when Cody is mentioned by a customer/user in the east sales region.
#cody-mentions-west Alerts delivered when Cody is mentioned by a customer/user in the west sales region.
#cody-mentions-emea Alerts delivered when Cody is mentioned by a customer/user in the emea sales region.
#cody-usage-notifications Informational notifications for customers/users whose Cody Usage has exceeded thresholds of 90%, 95%, and 100% of their rate limit quota in the current window.