We're an all-remote company, with teammates from all around the world and no primary office. To make this work, we need to be deliberate about how we communicate.
These places are the source of truth for information at Sourcegraph. Information in these places is expected to be accurate and up-to-date:
- Documentation
- sourcegraph/sourcegraph repository
- sourcegraph/about repository
- Decisions
- Roadmap
- Issue tracker
- productboard
- HubSpot (only contacts, not companies and deals)
- Salesforce
- JIRA Service Desk
- Looker
- Customer legal contracts
The following places are not sources of truth. Treat documents and conversations in these places as "scratchpads" or documents that were true at creation time but aren't expected to be up-to-date. Any changes resulting from these places need to be reflected in a source of truth:
- Company meeting (Mondays 8:00-8:30am PST/PDT)
- Social calendar meetings
- Always start on time, even if some participants are late. (And try not to be late.) Latecomers can watch the Zoom recording to see what they missed.
- Don't punish the people who arrived on time by waiting for people or repeating what was already said.
- If the meeting's leader is not present at the precise start time (and hasn't proactively mentioned they are late), everyone should leave the call and switch to other work. This is a nudge to respect others' time and to not be late to meetings you lead.
- Always end on time (or early).
- If there's more to discuss, handle it asynchronously or schedule a new meeting with the appropriate participants.
- A meeting that would run over is a nudge that the meeting's agenda or duration was wrong, or that the meeting was led ineffectively.
- When creating the Google Calendar event:
- Add a Zoom video call.
- Enable "Guest permissions: Modify event" so that other people can easily reschedule the meeting if needed.
- Add a Google Doc link to the event description for taking notes during the meeting.
- If the meeting is recurring, use the same Google Doc for all meetings.
- Remind people of your role in cross-functional meetings (including company meeting) or any other meeting that has team members you haven't met yet. We're growing, and it's hard to remember everyone's role! (The org chart helps.)
You may try this approach for more effective meetings. The goals are to surface more topics to discuss (instead of just whatever topics people remember during the meeting) and spend more time on informed discussion (instead of conveying information, which is usually better done in writing).
This assumes that currently the meeting has a Google Doc with notes that people sometimes write in advance and sometimes don't. This is better than nothing, but we can do even better.
- Everyone uses the first 5-15 minutes of the meeting to write down what they would like to communicate (e.g., updates on their progress, topics they would like to discuss, problems they've encountered, etc.). Then the rest is discussing and deciding in order.
- Use this for a few weeks, and then...
- Everyone writes down their items before the meeting. A topic that isn't written down can't be discussed. Spend the first 5 minutes of the meeting reading what other people wrote down, then discussing and deciding in order.
- Use this for a few weeks, and then...
- Everyone writes down their items by a certain time before the meeting (e.g., 12 hours before). Everyone reviews what other people wrote before the meeting starts. Only people who have commented on an item can make further comments on the topic during the discussion.
This idea is from The Great CEO Within (Chapter 12) by @mattmochary.
Structured meetings are great, but it's important to have casual, unscheduled, free-flowing time to chat with people as well. That helps build personal bonds and surface topics or ideas that might not come up in structured meetings.
- Join meetings early or on time.
- End meetings on time.
- Be patient for external folks who are running late to our meetings.
- For customers, prospects, and users, wait on the line for at least 10 minutes (and send them a friendly reminder after 3-5 minutes).
See "1-1 meetings".
See "Announcements".
- We use Google Docs for:
- RFCs
- Collaborative editing of ephemeral documents
- The shared Sourcegraph Drive folder on Google Drive is visible and editable by all Sourcegraph team members.
- To share a doc with team members, move it to this folder.
- Don't worry about putting your doc in the right folder. If you want to use folders, you can. But we've given up on trying to impose a folder structure company-wide on our Google Docs, and we just rely on links and search to find Google Docs.
Deprecate a Google Doc when all of its content is added to the handbook, blog, or documentation (or other source of truth). This lets people know to not consult, edit, or comment on it anymore.
- Rename the Google Doc to
DEPRECATED - <previous doc title>
. - Delete all doc content, and replace it with
See <URL to new content location>.
.
See example of deprecated Google Doc.
If you need to deprecate just part of a Google Doc, replace the deprecated portion with DEPRECATED: See <URL to new content location>
.
Most meetings at Sourcegraph are video calls. We prefer Zoom for all video calls because it seems to have the best connectivity and compatibility.
- Google Calendar has a Zoom plugin where you can easily add a Zoom link for a video call to the invite.
- Be sure to include the Zoom dial-in for team members who need to join by phone. (If you use the Zoom plugin linked above, this is automatic.)
- In your Zoom settings, enable "Join before host". (It is enabled by default in our Zoom organization account, but you may have overridden it previously.) This lets the meeting get started even if you aren't there.
- Set Zoom meetings to be recorded to the cloud so that you and other teammates can refer back to them later.
- If any participant doesn't feel comfortable with the meeting being recorded, it is fine to not record it.
- Always use ISO dates in all writing and legal documents because other formats lead to online confusion. Use
yyyy-mm-dd
, for example 2020-04-13, and never 04-13-2020, 13-04-2020, 2020/04/13, nor April 13, 2020. Even if you use an unambiguous alternative format, it is still harder to search for a date, sort on a date, and for other team members to know we use the ISO standard. For months useyyyy-mm
, so 2020-01 for January 2020. - When referring to a fiscal year, prefix the year with
FY
(e.g.,FY21
for fiscal year 2021). Sourcegraph's fiscal year starts on February 1 and ends January 31. {#fiscal-year} Note that fiscal years that don't align with calendar years (such as our fiscal year) are referred to by the year in which the period ends (soFY21
refers to February 1, 2020 through January 31, 2021). Learn more about fiscal years.
- FY__ (e.g.,
FY21
is fiscal year 2021, which means 2020-02-01 through 2021-01-31) - FY__-Q1 (e.g.,
FY21-Q1
) is February 1 through April 30 - FY__-Q2 is May 1 through July 31
- FY__-Q3 is August 1 through October 31
- FY__-Q4 is November 1 through January 31
Brain Food meetings are our internal knowledge sharing sessions. These meetings can be formal presentations or informal discussions and are open to anyone in the company. Subjects of talks are completely free and are not limited to tech discussions. Here are a few examples:
- Sharing internal team knowledge to the rest of the company
- Presenting a useful tool
- Presenting a personal project
- Hands on session / workshops
- Brainstorming session about an experimental subject
- Preparing an external talk
Brain Food sessions take place every other friday and, to accomodate timezone differences, are split in two separate sessions:
- EMEA friendly session time: 16:00 CET
- NA friendly session time: 2:00PM PST
Each session is 1-hour long, however the session is only as long as the group needs to present and wants to keep the discussion going. They will both be recorded and published on Slack. Speakers can sign-up for either one of them depending on their own timezone.
Presentations can use one of two formats:
- Lightning Talks: Maximum 7 minutes long
- Presentation: Maximum 15 minutes long
To sign-up, use this Google Sheet. The talk will be added to the Google Calendar invitation which will be sent to everyone.