Delegation & Spreading Context
Delegation spreads Rust context beyond one expert: module owners, rotating release captains, and briefs that include decision authority. Reducing bus factor means anyone on-call can rollback, interpret tracing dashboards, and continue a migration - not only the tech lead.
Recipe
Quick-reference recipe card - copy-paste ready.
# Delegation brief
## Outcome
Ship idempotent export endpoint behind flag by sprint end.
## Authority
Chooser may pick sqlx vs batch Polars per RFC-051 spike result.
## Constraints
No schema contract phase; MSRV unchanged; must include rollback in PR.
## Support
Tech lead available 30 min daily; security review if PII export.
## Success metric
Staging synthetic export passes; p95 < 2s at 100 rows.When to reach for this:
- Tech lead is bottleneck on every PR
- Single engineer knows all
unsafeFFI - Vacation would block release
- Squad growing past 6 people
Working Example
# crates/orders-domain/README.md
## Owner: @bob (primary), @alice (backup)
## Scope
Pure domain types and validation; no sqlx or axum imports.
## On-call notes
Panics here are SEV2; see runbook `domain-invariant-violation`.
## Recent decisions
ADR-0021: totals use i64 cents, not f64.Rotate owners quarterly; update after reorganizations.
Deep Dive
What to Delegate
| Keep as lead | Delegate |
|---|---|
| Cross-team RFC arbitration | Feature ownership |
| Hiring bar / leveling calibration | Release captain week |
| Incident IC on SEV1 | Module documentation |
| Fleet-wide Rust version policy | Spike execution |
Spreading Context
- CODEOWNERS - Automatic reviewer routing per path.
- Runbook sections - Each owner maintains one scenario.
- Lunch learns - 20 min on recent incident or crate API.
- Decision logs - ADRs readable by whole squad.
Release Captain Rotation
Weekly captain: promotes staging SHA, watches canary, coordinates rollback drill participation.
Gotchas
- Delegate task list without authority - Escalation ping-pong. Fix: Brief includes decision bounds.
- Hero lead reviews every line - Team disempowered. Fix: Review direction on RFC, delegate implementation.
- Ownership doc stale - Wrong pager target. Fix: Quarterly audit in retro.
- Vacation = zero delegates - Fix: Named backup on every CODEOWNERS line.
- Context in lead's head only - Fix: Written briefs and ADRs mandatory for M/L work.
Alternatives
| Alternative | Use When | Don't Use When |
|---|---|---|
| Guild maintainers per crate | Large workspace | Two-person startup |
| Shared ownership (no primary) | Research spikes | Production on-call modules |
| EM as task allocator | Lead overloaded with people mgmt | Technical authority unclear |
| Contractor surge | Time-bound migration | Core domain knowledge transfer |
FAQs
How much to delegate as new lead?
Start with release captain and one feature; expand as trust builds.
Delegate to junior?
Yes with smaller authority bounds and closer review on risk areas.
Bus factor metric?
Count modules with single owner; target backup on all tier-1 paths.
When take work back?
If delegate blocked >3 days without escalation; post-mortem delegation gap.
Delegate incidents?
IC role rotates; tech lead advises, does not own every SEV2.
Cross-squad delegation?
RFC defines interface owner; avoid drive-by changes to shared crates.
Document decisions how?
ADR + brief in ticket; link from PR.
Remote delegation?
Written briefs over verbal hallway; async RFC comments.
Polars vs sqlx delegate?
Data path owner decides per spike; document in module README.
Accountability without blame?
Outcome missed -> process fix; not public reprimand.
Related
- Mentoring & Leveling - grow delegates
- On-Call Health - rotation health
- Running Design Reviews - shared context
- Contribution Guidelines - ownership norms
- Leadership Best Practices - summary
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.