Team Best Practices
A condensed summary of the 25 most important team practices that keep a Python engineering team fast, aligned, and kind - drawn from every page in this section.
-
Time-to-first-PR is the metric: Target merged small PR by day five - measures onboarding and tooling health (Onboarding Devs Checklist).
-
One canonical onboarding doc: Linked from README with named owner and last-reviewed date.
-
Buddy for week one: Named peer, daily 15-minute check-in - not "ask the team."
-
Environment setup is scripted:
uv sync,pytest,/healthdocumented in Environment Setup Checklist. -
CI commands run locally: Same
ruff/pytest/mypyas GitHub Actions before push. -
.env.examplealways current: Every new settings field updates example without secrets. -
CODEOWNERS on sensitive paths: Migrations, auth, payments auto-request experts.
-
ADRs for non-obvious decisions: Framework, schema, and flag strategy recorded in
docs/adr/. -
Trace one request in week one: Faster than reading entire tree (Codebase Orientation).
-
Conventions in ruff config: Style debates end in
pyproject.toml, not review comments (Conventions & Style Guide). -
Ticket id in every commit: Cherry-picks and changelog automation depend on it.
-
PR description template: Migration note, test plan, rollback - required fields.
-
Review tests before implementation: Reviewers validate behavior change via assertions.
-
Kind specific review comments: Questions and suggestions, not "just fix it" without context (Code Review Guidelines).
-
Approve when bar met: Do not block on preference when CI green and P0/P1 satisfied.
-
Small PRs default: Split when diff > ~400 lines or mixed concerns.
-
Internal transfers get onboarding: Senior to new subsystem still needs access and architecture tour.
-
Doc PRs from new hires celebrated: First PR fixing onboarding typo is success signal.
-
Post-incident doc updates: Every sev2+ updates runbook or checklist item.
-
Blameless retros: Focus systems - update checklists not individuals.
-
Shared shell/Makefile targets:
make test,make lintdocumented for all repos. -
No heroics on deploy: Follow checklist; flag process gap if shortcut needed.
-
Rotate on-call with shadow: New hires shadow before solo pager.
-
Quarterly dependency hygiene: Scheduled sprint items for CVE and Python minor bumps.
-
Team norms written down: Unwritten rules become gatekeeping - publish and revise openly.
FAQs
Remote-first team differences?
Add explicit overlap hours, recorded architecture tours, and written decision logs in Slack threads linked to ADRs.
How small is small PR?
One ticket, one concern, reviewable in 30 minutes - not single-line only if test needs context.
Manager as buddy?
Prefer peer buddy for psychological safety; manager joins week-two checkpoint.
Contractors on team practices?
Same review and security bar; clarify ownership handoff at contract end.
Related
- Tech Leadership Best Practices - lead practices
- Git Best Practices - version control
- Linux CLI Best Practices - operator workflow
- Mentoring and Leveling - growth
Stack versions: This page was written for Python 3.14.0 (stable 3.14, maintenance 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, and uv 0.6+.