-
Notifications
You must be signed in to change notification settings - Fork 5
Engineering Team Norms
Here's some basics about how we agree to work together:
- We will be on Slack during working hours, which is roughly 9am - 5pm PT Monday thru Friday
- We will use Slack as our primary means of communication, using the #data-store-eng channel
- We will strive for 24 hour review turnarounds during the work week for pull requests
- We will have 2-week sprints and use Github Project boards to manage our tickets. See Sprints and Standups.
-
Before asking for a review on a PR, make sure that it is all green. You may ask for a preliminary review of a work in progress. If you do so, make sure the PR title starts with
[WIP]
. When reviewing a work in progress, don't approve the PR, either reject it or make comments. -
When authoring a PR, don't nickel-and-dime the reviewer. Put the PR into a shape that you think is ready to be merged. Then ask for reviews. Don't modify a PR on which reviews have been pending for less than eight business hours.
-
Request reviews from two team-members. Chose reviewers that are familiar with that part of the code base.
-
Before merging a PR make sure that it
- was authored by you
- does not have any rejections
- is all green
- has no unanswered review questions
- has only change requests that have either been
- withdrawn by the reviewer or
- addressed by the author
While it is acceptable to massage the history (rebasing, squashing commits) after a PR has been accepted, it is not acceptable to alter essential functional aspects of the change.
It is acceptable to merge a PR with only one approval and a review that has been pending for more than eight business hours.
When you are being asked to review a PR, please do so promptly. Being agile means unblocking others.
When reviewing a PR give it your full attention. Review the entire diff unless you find a "show stopping" issue, a fix for which would render the remainder of the diff obsolete. Don't nickel-and-dime the author (don't stop reviewing at the first question or issue that comes up during the review).
Reasons for rejecting a change include:
- it is functionally deficient (it doesn't work)
- it's brittle (an unrelated change could cause it to break)
- it doesn't have enough tests
- it's insufficiently documented
- it's in violation of the code quality standards formally accepted by the team
When requesting changes, be respectful and provide a reason for each change requested.
When chaining PRs start the PR title with a call sign identifying the chain, a numeric ordinal and the total number of PR in the chain. For example:
Reindexing: 1/3: Refactor indexer to accommodate REPAIR and VERFIY
Reindexing: 2/3: Implement VERIFY
Reindexing: 3/3: Implement REPAIR