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).