Monday, May 14, 2007

Is Brooks Wrong?

Over on his blog, Peter Seibel questions Fred Brooks oft quoted (well, paraphrased) “nine women can’t have a baby in a month”.

Seibel’s point is that one woman (or, one couple) isn’t too likely to have a baby in 9 months either, as statistically the chances of any given couple conceiving and carrying a baby to term is only 13.6%. That’s not so good if you have a hard deadline. Seibel’s recommendation is to throw bodies at the problem—three couples would have a 35.4% chance of meeting a nine-month deadline, or sixteen couples to get a 90% chance.

The problem here is that sixteen couples trying to make a baby isn’t really one project that might or might not make the nine month deadline, it’s sixteen similar projects, each trying to make the deadline. Chances are one of those projects will succeed.

Sounds like a convincing argument for the value of lots of small projects all trying to do the same thing—and when you’re talking about writing free software you also get the benefits of competition between the groups and of leveraging the work other groups are doing.

So, is it Brooks or Seibel? It looks to me like it’s a little bit of both.

4 comments:

Anonymous said...

Fred Brooks was colorfully illustrating his point, not putting forth an argument. His point was: adding more manpower to a project makes it later. It was not: making software is like having a baby.

gnupate said...

Anon: I realize that, I was trying to make the point that Seibel's counter to Brooks isn't really dead-on, and in fact is a good reason to sponsor multiple little projects instead of larger, monolithic projects.

Anonymous said...

seibel's whole post is moronic imo. if this brain-fart were on my team, i would fire him on the spot for suggesting we hire dozens of couples when we could hire one pregnant woman and guarantee success.

Toby DiPasquale said...

Brooks' point was exactly that: there are some parts of the process that can be parallelized and some that are inherently serial. Attempting to get pregnant, if you don't care who the parents are, can indeed by a parallel effort (clearly, as that's actually how it works). However, the pregnancy itself is inherently serial (today, at least). Assuming that the "project" is the creation of a child and not the accomplishment of pregnancy, then the colloquial requoting of Brooks is still correct.

Brooks actually discusses this very dichotomy when making that statement, but not too many people have actually read the source material.