Mob Programming
debt(d9/e3/b3/t5)
Closest to 'silent in production until users hit it' (d9). The detection_hints explicitly state 'automated: no' and the signal is indirect — knowledge silos and slow onboarding only become visible over time through team friction, not via any tooling. There is no linter, compiler, or runtime check that flags absence of mob programming.
Closest to 'simple parameterised fix' (e3). The quick_fix describes a concrete, low-ceremony change: one keyboard, one screen, rotate driver every 15 minutes. No code changes are required — it is a team practice adjustment. Slightly more than a one-liner because it requires coordination and habit-forming across the team, but it is localised to a single team's working session rather than spanning multiple systems.
Closest to 'localised tax' (b3). Mob programming applies to specific sessions or contexts (complex debugging, onboarding, architectural changes per why_it_matters). It does not impose a structural burden on the codebase itself — it is a process choice for a team, not an architectural decision that shapes every future change. The rest of the codebase is unaffected.
Closest to 'notable trap' (t5). The misconception field explicitly identifies the canonical wrong belief: that mob programming is slow because only one person types. This is a well-documented gotcha that most developers hold initially but eventually learn is false. The common_mistakes also highlight that teams misapply it (using it for trivial tasks, not rotating drivers, treating it as pair programming with an audience), all of which stem from this core misunderstanding of where software bottlenecks actually lie.
Also Known As
TL;DR
Explanation
In mob programming, one person (the driver) types while the rest (the mob) contribute ideas and direction. Roles rotate frequently — typically every 5-10 minutes. The entire team focuses on the highest-value work together, producing very low defect rates and exceptional knowledge sharing. Best suited for complex problems, architectural decisions, and critical code that everyone needs to understand. A full-day mob session can outperform the same number of developer-days working in isolation on the right problem.
Common Misconception
Why It Matters
Common Mistakes
- Not rotating the driver frequently enough — one person types for too long and others disengage.
- Using mob programming for simple, well-understood tasks — it is overkill for routine work.
- Not using a physical or shared remote screen — participants must all see the same thing.
- Treating mob programming as pair programming with an audience — everyone should actively contribute, not watch.
Code Examples
// Mob programming anti-pattern — driver ignores the mob:
Developer A (driver): [typing rapidly without explanation]
Rest of team: [watching silently]
// Driver implements their own solution without discussion
// Knowledge not transferred, decisions not shared
// This is just programming with spectators
// Productive mob:
Facilitator: 'Alice, you drive. We need to implement rate limiting middleware.'
Bob: 'I suggest we check Redis first before hitting the counter'
Alice (driver): [types the Redis check]
Carol: 'We should also handle the case where Redis is down gracefully'
// Rotate driver every 10 minutes
// All decisions discussed, all code understood by everyone