The Mythical Man-Month

Rearranged the shelves over the holidays, and re-read a fewsections of Fred Brooks’ venerable book The Mythical Man-Month.

mmm

It’s an interesting read, though it is largely obvious: Addingmore people on a project naturally means more administrative,communications, and coordination overhead. If, at a particularstage in the project’s progression, you have more people than youhave clean project partitions, they could actually hinderrather than help

Many developers can personally identify with this indisputableobservation, recalling situations where a manager with excess humanresources dumped workers onto their project, against theirwishes, while it was in an unpartitionable design stage. Aco-op student assigned to me in just such a situation, many yearsback, started informally tagging their assigned tasks “MWPs” :Make Work Projects (they were quite capable, andrecognized and disliked trivial tasks). Given that I was in acritical, non-partitionable task, and all following tasks dependedupon it, the best I could do with their help was to get them to docompetitive research.

Such is the nature of some projects during some stages. Touse the classic analogy, nine women can’t produce one babyin one month. Of course it’s a fairly bad analogy giventhat those nine women can of course produce nine babies innine months, effectively producing a “baby a month” if you wait theminimum period, but nonetheless it is the common phrase.

The mythical man-month title refers to the fact that manyproject managers take a project’s estimated work (e.g. 100man-months), and then request or assign a set number of people(e.g. 10 men), dividing the effort by the workforce andconsidering that the delivery date (in this case 100/10, or 10months to completion from the start). Of course that is incrediblyna├»ve, and is a recipe for disaster from the outset, and when theproject starts slipping more people get added, slowing the projecteven more.

Thankfully, most shops use proper project timelines now, withcritical paths, dependencies, and task assignments.

A couple of Mythical Man-Month quotes that I foundenjoyable:

An ancient adage warns, “Never go to sea with twochronometers; take one or three.”

An architect’s first work is apt to be spare and clean. Heknows he doesn’t know what he’s doing, so he does it carefully andwith great restraint.

As he designs the first work, frill after frill andembellishment after embellishment occur to him. These get sortedaway to be used “next time.” Sooner or later the first system isfinished, and the architect, with firm confidence and ademonstrated mastery of that class of systems, is ready to build asecond system.

The second is the most dangerous system a man ever designs.When he does his third and later ones, his prior experiences willconfirm each other as to the general characteristics of suchsystems, and their differences will identify those parts of hisexperience that are particular and not generalizable.

If you don’t own this book, you should at least get it to stockyour bookshelf (it is a required pretend-to-have-read shelfstocker). If you already understand and believe the core message ofit, it’s debateable if it’s really worth spending the time actuallyreading, though: Quite a lot of it is highly specific, uniqueobservations about the creation of OS/360, and some of it arepractices that are now considered questionable. For instance, fewadvocate the surgical team that the book promotes (with the bookexample humorously including a language lawyer and twosecretaries).