Quality & Team

Trunk-Based Development, TDD & Pairing

Foundational

This is how we work, not a set of options to pick from. We integrate to a single trunk often, behind short-lived branches. We drive code with tests (TDD). We prefer pairing over slow, asynchronous pull-request queues. The goal is fast feedback: small changes, a main branch that is always green, and review that happens while the code is being written, not days later.

Long-lived feature branches, large merges, and review queues that take days slow the team down. They hide work, cause painful merge conflicts, delay feedback until it is expensive to act on, and let main drift away from what people are building. Trunk-based development, test-driven development, and pairing share one goal: shorten the gap between writing code and knowing it is good.

These are deliberate team standards. They keep the codebase always integrable and always releasable (see CI/CD & Deployment). They turn tests into a design tool, not an afterthought (see Testing Strategy). And they make review a live conversation, not a bottleneck (see Code Review). On a regulated platform, fast feedback also means security and correctness problems are caught in minutes, not in an old PR nobody wants to read again.

Trunk-based development

Test-driven development

Pairing over slow PR queues

Long branch and slow PR feature/new-onboarding (3 weeks off main, 4,000 lines)
→ opened as one giant PR
→ sits in the review queue for 5 days
→ 200 merge conflicts on rebase

Work was hidden for weeks, feedback came far too late to act on cheaply, and integration became painful. This is the problem that trunk-based development, TDD, and pairing remove.

Small, paired, test-driven, on trunk Pair writes a failing test for one slice → makes it pass → refactors
→ integrates to trunk behind a feature flag the same day
→ already reviewed (built as a pair), pipeline green
repeat in small increments until the flag is switched on

Feedback is continuous, main never drifts, the behaviour is proven by tests, and review happened while the code was written. Steady flow instead of a bottleneck.

Self-review checklist

Why it matters: Steady flow is what makes a team both fast and safe. Trunk-based development keeps integration continuous and main releasable. TDD makes correctness a design input, not a hopeful afterthought. Pairing turns review into a live conversation that spreads knowledge, instead of a queue that delays it. Together they shorten the gap between writing code and knowing it is right. On a regulated platform, that is exactly where defects and risk get caught early and cheaply.