Jan 18, 2007

Brooks' Law

Fred Brooks' 1975 book, The Mythical Man-Month stated that "Adding manpower to a late software project makes it later." His famous analogy is that "The bearing of a child takes nine months, no matter how many women are assigned."

Brooks' Law is sometimes mistakenly taken to mean that more resources can't deliver a project faster. That was not what Brooks meant, although it is true - for each project there is an optimal staffing level that best meets cost and schedule targets. It is the job of a project manager to find that optimal level.

What Brooks meant was that it is critically important to find that optimal staffing level, and to start the project with that level, because once the project is underway it is prohibitively costly and time-consuming to add staff. Software development is a knowledge field, and bringing in new resources distracts existing resources from core project tasks. The more complex the project and the later in the project, the more of a negative schedule impact adding new resources. The lesson is that you should always start projects fully staffed (counter-intuitively, the strategy of adding folks as you learn more about your needs is less cost-effective than starting with more and streamlining mid-project), and also to be very careful if you do need to scale up.

A couple of good articles on this topic are Rick Brenner's The Cheapest Way to Run a Project Is with Enough Resources, and Scott Berkun's Exceptions to Brooks' Law.