Brooks' Law
Why adding developers to a late software project makes it even slower
In short
Adding more developers to a delayed software project often extends the delivery time rather than shortening it. Known as Brooks's law, this phenomenon occurs because new team members require onboarding time while communication channels grow quadratically with team size. Furthermore, complex and interconnected tasks cannot simply be partitioned infinitely.
When a software project faces delays, management often responds by adding more personnel. However, systems development operates under vastly different dynamics than traditional assembly lines. Fred Brooks identified this pattern during his time at IBM, where adding staff to already late projects aggravated delays rather than resolving them.
Background and the two driving mechanisms
Brooks's law was articulated by Fred Brooks in his 1975 book The Mythical Man-Month, stemming from his experiences managing the development of IBM's OS/360 operating system. The core rationale rests on two main factors that slow projects down when personnel is added late. First, every new employee requires extensive onboarding regarding the existing codebase, domain model, toolchains, and internal practices. This training must be delivered by the most experienced developers in the current team. When key contributors spend their working hours on onboarding and code reviews, their own output drops drastically. Consequently, overall team capacity drops significantly throughout the onboarding phase, occurring precisely when the project has the least margin for throughput loss.
Communication channels and task divisibility
The second crucial factor is how communication channels scale as group size grows. The number of unique pairwise relationships among n people is calculated via the combinatorial formula n(n-1)/2. A small team of four developers manages 6 internal communication channels. If the team expands to ten people, the number of channels rises to 45, and at fifteen people the count reaches 105. Time spent on synchronization, architecture syncs, code reviews, and information sharing rapidly dominates, crowding out actual software development. Beyond communication growth, task characteristics constrain parallel execution. When a code component strictly depends on the prior completion of another module, assigning additional developers cannot accelerate progress. Sequential dependencies within the architecture set an absolute lower bound on execution time.
As Fred Brooks famously stated in his analysis of project scheduling and non-divisible sequential processes: 'Nine women cannot make a baby in one month.' The quote highlights that certain natural and technical processes involve inherent sequential dependencies that simply cannot be accelerated by assigning additional labor to the task.
Strategies and exceptions in practice
Managing an impending deadline without triggering Brooks's law requires organizations to act proactively rather than reactively. When deadlines are fixed, scope reduction is typically the most effective and realistic recourse. If staffing increases are necessary, they must take place very early in the project lifecycle before delays manifest. Furthermore, technical architecture plays a pivotal role: if the codebase is divided into decoupled, modular components with clear API boundaries, newcomers can work in isolation without demanding constant coordination with the rest of the team. Identifying independent tasks is equally essential, as decoupled work permits nearly linear scaling.
Sources
Read also
- Hofstadters lag belyser hur tidsuppskattningar nästan alltid underskrids, vilket ofta leder till den tidspress som utlöser Brooks lag.
- Parkinsons lag förklarar hur arbetstid expanderar för att fylla tillgängliga resurser och tidsramar.
- Metcalfes lag beskriver nätverkstillväxt och matematiken bakom kvadratisk komplexitet i relationer.
Reflection exercises
Use these exercises to apply the chapter's ideas. You don't need to write anything down — just pause and reflect on each question.
Analyze communication structure and dependencies
Map out your current project to identify bottlenecks related to coordination and sequential steps.
- How many active communication channels n(n-1)/2 currently exist in the team?
- Which project components have strong sequential dependencies preventing parallel work?
Summary
Brooks's law highlights how onboarding overhead, communication structures, and task divisibility impact overall project pace. Through modular architecture, realistic scope adjustments, and early staffing decisions, organizations can prevent delays from escalating.
Read the short version in the archive.