Sourcegraph values

These values are some of the beliefs and principles that help us achieve our goals and vision.

This list isn’t intended to cover everything we care about; instead, it lists the values that we frequently find useful and refer to. We’ll keep this list up to date with the frequently used beliefs and principles (adding, editing, and removing entries as needed). Our hope is that this makes this list more accurate and useful than if it were a list of stale, vague, aspirational, or obvious values.

High quality

Every person on our team is individually responsible for knowing what high-quality work looks like and producing high-quality work.

  • If you don’t know what high quality looks like, it’s your responsibility to find out (for example, by asking teammates and stakeholders).
  • If you don’t have the time to produce high-quality work, then it’s your responsibility to take more time or cut scope (and communicate this), so that you can produce high-quality work.
  • If you don’t have the skills to produce high-quality work, then it’s your responsibility to acquire those skills (for example: learn them yourself, make use of Sourcegraph’s education budget, delegate to an existing teammate with the necessary skills, or hire a new teammate with those skills).
  • If you need help producing high-quality work, it is your responsibility to get that help.

If we discover that we’ve produced something that does not meet our quality bar, we’ll roll it back (for example, revert a commit, roll back a deployment, or unpublish content) until we can make it high quality. If that’s not possible, we’ll prioritize improving it.

High-quality isn’t the opposite of iterative. You can keep quality high while still being iterative by narrowing the scope (for example, by solving a smaller problem at first, or by solving it only for certain customers initially).

We not I

We prefer to build teams, not workgroups. A team has a small number of shared goals that team members work on together. This yields collaboration and focus, which helps us do higher-quality things faster. In contrast, a workgroup is a group of people who are each working on their own things.

  • If it is not clear to you what your team’s goals are, it’s your responsibility to get clarity.
  • If you feel like you or your team have too many goals, it’s your responsibility to reduce the number of goals so that you have focus.
  • If you feel like you are working alone, or your team doesn’t feel like a team, it’s your responsibility to take action to fix that.

As a team’s size and scope grows, it (unintentionally) tends to become a workgroup. Resist this by aggressively focusing, or by splitting it into smaller teams.