Brooks' law was stated by Fred Brooks in his 1975 book The Mythical Man-Month as "Adding manpower to a late software project makes it later." Likewise, Brooks memorably stated "The bearing of a child takes nine months, no matter how many women are assigned." While Brooks' law is often quoted, the line before it in The Mythical Man-Month is almost never quoted: "Oversimplifying outrageously, we state Brooks' Law."
The reason for the seeming contradiction is that software projects are complex engineering endeavors, and new workers on the project must first become educated in the work that has preceded them; this education requires diverting the resources already working on the project, temporarily diminishing their productivity while the new workers are not yet contributing meaningfully. Each new worker typically must "ramp up" in this way with not only one, but multiple engineers who must educate the new worker in their area of expertise in the code base, day by day.
A commonly understood implication of Brooks' law is that it will be more productive to employ a smaller number of very talented (and highly paid) programmers on a project than to employ a larger number of less talented programmers, since individual programmer productivity can vary greatly between highly talented and efficient programmers and less talented programmers. However, Brooks' law does not mean that starving a project of resources by employing fewer programmers beyond a certain point will get it done faster.
Architecture provides another component of a solution to Brooks' law. When the software application is designed around a stable design pattern, then the rest of the programming team(s) can work within the framework of that pattern. The design pattern defines the rules that the programmers follow and provides consistency and scale-ability. Brooks' law, however, still applies when building out the components of the design pattern or the development framework.
This is in sharp contrast to the typical work of software engineers, whose work is impacted both by the need to train and educate new workers, and by occasional mistakes that new workers are expected to make before they are fully familiar with the software project.
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Brooks' law".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world