How to be a Sheriff - Seneca-CDOT/telescope GitHub Wiki

Overview

Sheriffs help steward and manage the project's infrastructure, and make sure that the team can function optimally at all times. Their primary role is to help developers shepherd their code through the review process so that it can be landed cleanly, and to do so without breaking any tests, CI automation, or infrastructure.

While Telescope is a community effort, the Sheriffs play a crucial role in helping to maintain quality, keep operations running smoothly, and to help deal with fallout from any unexpected situations. Sheriffs aren't "in charge" or responsible for fixing any problem. Instead, they are our first line of defense, helping to shine a light on problems, coordinate efforts to make fixes, and helping to make decisions quickly.

Schedule

At any given time, two Sheriffs are on-call, with a third on backup as needed. We always maintain at least two so that we can get changes and reviews done quickly if necessary.

The current Sheriff Schedule is located in the Winter 2022 Telescope 3.0 page. Everyone on the team is required to take regular rotations as one of the Sheriffs. If you haven't already done so, please add your name to the schedule so that it is full.

If you are scheduled to be Sheriff and can't perform your duties for some reason, it is your responsibility to reach out to your Backup and make sure that another person can take your on-call.

Responsibilities

The single most important responsibility of a Sheriff is to be available to the team to help solve issues that would otherwise keep the tree from being open and green. This includes:

  • Being available and visible on Slack. Sheriffs are first-among-peers and ready to help the community with whatever is going wrong.
  • Monitoring all of our systems for possible issues or failure, including GitHub, PRs, CI, Staging, Prod, and other Infrastructure
  • Communicating with the team on Slack and GitHub when issues arise. Sheriffs help maintain calm and facilitate timely communication.
  • Filing issues when problems arise, or discussions happen in Slack or meetings (i.e., capture knowledge).
  • General issue maintenance (e.g., adding labels, assigning to people, fixing typos, linking to issues, etc).
  • Keeping PRs moving through review, especially making sure that the right people are assigned to do reviews and are responding
  • Helping with git issues (e.g., squashing, rebasing)
  • Making sure that CI is green. If something breaks, Sheriffs file issues and help lead an investigation, pulling in whoever the experts are in a particular area.
  • Backing-out changes that can't be fixed (i.e., git revert). Sheriffs make sure that the rest of the team isn't blocked on a failed push or CI build.
  • Helping to communicate changes to the team when a breaking change lands (e.g., being able to point devs to docs or PRs that help explain how to adjust their environment/code to recent changes on master).
  • Running meetings, including weekly triage. This includes documenting the outcomes of these meetings.

If something goes wrong, the Sheriff is the one to call on first. Sheriffs know what's landed recently, and what's about to land, and can talk about the state of the tree at any point.

Sheriffs are encouraged to change their Slack name to add "Sheriff", so that devs can quickly find them when needed. They can also pin communication to the #telescope channel, indicating who is on-call.