Brooks's law
expressionops cultureprogramming
The principle that adding people to a late software project makes it later.
New team members need ramp-up and training, and every added person multiplies the communication paths, so late-stage staffing often slows things down instead of speeding them up. Fred Brooks drew it from managing IBM's OS/360, and it still punctures the myth that effort is fungible.
Adding manpower to a late software project makes it later is Brooks's observation from managing IBM's OS/360, and the reasoning is arithmetic rather than cynicism. New people need training from the people who are already productive, which removes those people from the work, and every additional person multiplies the communication paths that must be maintained.
The communication cost is the part that scales badly. Connections between n people grow with the square of n, so a team of four has six relationships and a team of twelve has sixty-six, all of which need keeping current. Meanwhile the training cost is paid immediately and the productivity arrives weeks later, which is precisely the wrong shape for a project that is already behind.
The law has real limits and Brooks stated them. It applies to work that is not cleanly partitionable, since if a task genuinely splits into independent pieces, more people help. It applies to late projects, not to staffing in general. And the deeper point of the book survives the slogan: there is no silver bullet, because the essential complexity of software is in understanding the problem, and adding people does not divide that work the way it divides typing.
Also known as: Brooks's law, the Mythical Man-Month
Sources
- Brooks, 'The Mythical Man-Month' (1975)