Draft

Team Playbook — How We Work Together

Internal norms for collaboration: communication, meetings, expectations, and ownership. The Engineering Operating Model covers how we deliver; this covers how we treat each other's time. One principle underneath all of it: a missed handoff costs a day; a silent one costs a week.

Communication — pick the right channel

flowchart TD
    Q{What is it?}
    Q -->|Blocking me right now| H["DM / huddle
then summarize in channel"] Q -->|Needs a decision| D["Channel post:
context + options + deadline"] Q -->|FYI / status| T["Thread it —
no response expected"] Q -->|Significant tech choice| A["ADR in the portal"] style D fill:#EDEDFF,stroke:#3B54F7 style A fill:#E4E4FF,stroke:#23233A
  • Async-first, public-first. Channels over DMs — public threads are searchable, onboardable, and feed the docs/LLM. DMs are for the personal, not the technical.
  • Decisions die in chat. If it was decided, it gets written down — a channel summary with an owner, or an ADR if it's significant. Not written = didn't happen.
  • Deadlines on asks. Every request states when you need it; every decision post states when silence becomes consent.

Response expectations

Signal Expected response
Direct mention / question Same working day (ack even if the answer comes later)
"I'm blocked" Fastest — minutes-to-hours; blocked > half a day → escalate
Decision post By its stated deadline — silence = consent
FYI thread None required
After hours / weekend None expected — truly urgent means a call, not a midnight Slack

Meetings

Booking one: agenda + desired outcome in the invite, shortest slot that works (25/50 min), right people only. No agenda → anyone may decline, guilt-free.

Can't make it? Don't silently decline:

flowchart TD
    I([Invited, can't attend]) --> N{Is your input
needed for the outcome?} N -->|Yes| R["Propose a new time
(request reschedule — don't just decline)"] N -->|No| W["Decline WITH a message:
written input or a delegate"] O([Organizer cancelling]) --> C["Earliest possible notice + message
+ async alternative for the outcome"] style R fill:#EDEDFF,stroke:#3B54F7 style C fill:#FDF0DC,stroke:#F59E0B
  • A bare decline tells the organizer nothing and silently kills the meeting's purpose. Say why, and either move it or feed it (written input / delegate).
  • Cancelling as organizer: earliest possible notice, a message (not just the calendar ping), and an async path to the same outcome. A dropped meeting without a message usually becomes a one-week slip — the exact cycle-time tax the operating model calls out.
  • Running late → message the channel; 10+ min late with no word, attendees are free to leave.
  • Every meeting ends written: decisions + owners + next steps posted to the channel. No summary = the meeting didn't happen.
  • Respect focus blocks and no-meeting time; recurring meetings get pruned quarterly (default is delete).

Expectations & ownership

  • Every work item has a DRI (directly responsible individual) — one name, not a team.
  • Status flows without being asked — brief update at milestones or weekly, whichever comes first. Surprises are for birthdays.
  • Calendar is truth — WFH, PTO, focus blocks marked; going away = handoff note (state, next step, where things live).
  • Blocked > half a day → escalate in channel (channel → lead → sponsor). Escalating is professionalism, not failure.
  • Disagree openly, then commit — once the decision is recorded, everyone rows; reopen it with new evidence, not repetition.
  • Delivery-side SLOs (PR review turnaround, design feedback, DORA) live in the operating model — same contract, delivery lens.

Mixed engagement: full-time & part-time, one team

We deliberately mix full-time and part-time engineers. That works only when engagement style is explicit, visible, and priced into expectations — never guessed.

Norm What it means
Engagement profile is public Days + overlap window + response expectation on your calendar and the team page. Nobody should wonder "are they on today?"
**SLOs count working days "Same working day" means their working day — a Tue/Thu engineer answering Thursday is on time, not slow
Part-time ≠ part-committed Same DRI rules, same quality bar — scope is smaller, standards aren't
Coverage for fast-moving items A DRI whose next working day is 3+ days out names a backup for anything that can't wait
Handoff at every block end Longer gaps = mandatory written handoff (state · next step · where things live) — the one-week-slip killer
Meetings live in overlap windows Recurring meetings only where engagement profiles intersect; everyone else feeds in async
Decisions don't wait for off-days Decision posts set deadlines spanning each stakeholder's next working day — then silence = consent
Off-days are off No response expected; prod incidents reach on-call, not whoever happens to be liked

Working with clients in the room

  • Never surprise a client — internal disagreements stay internal; align before the call.
  • Client-channel messages are on-the-record: write like it'll be read in a dispute.
  • Commitments to clients get a written follow-up (recap + owners + dates) same day.

Feedback & culture

  • Feedback is direct, kind, and private; praise is public.
  • Postmortems are blameless — we debug systems, not people.
  • Ask twice, then write it down: if you had to ask, the doc was missing — fix the doc (docs platform).