The Mythical Man-Month
Frederick Brooks, 1995
The Mythical Man-month gives several insights on software engineering and project management. Some content feels outdated, but many observations are still relevant in our daily job. The second edition has a nice summary of the whole book in Chapter 19. The most important or helpful theses (in my opinion) are listed below.
These points may resonate with programmers that genuinely love this craft. They give a great answer to why-do-you-program type of question😉.
- The joy of making things (that are useful to others).
- The fascination of fashioning puzzle-like objects of interlocking moving parts.
- The joy of always learning, of a non-repeating task.
- The delight of working in a tractable medium (pure thought stuff)
My boss used to ask me to hire more developers so that the project could be finished earlier. It didn’t feel right. The Mythical Man-Month gives the reason.
Man and months are interchangeable commodities only when a task can be partitioned among many workers with no communication among them.
The number of months of a project depends upon its sequential constraints. The maximum number of men depends upon the number of independent subtasks. One cannot, however, get workable schedules using more men and fewer months. More software projects have gone awry for lack of calendar time than for all other causes combined.
Conceptual integrity is the most important consideration in system design—the design must proceed from one mind, or from a very small number of agreeing resonant minds.
Schedule pressures dictate that system building needs many hands. Two techniques are available for resolving this dilemma:
- a careful division of labor between architecture and implementation.
- new way of structuring programming implementation teams.