The Mythical Man-Month (1975)

FC Brooks - 2021 - direct.mit.edu
2021direct.mit.edu
As computer systems grew larger and more complicated, an unhappy fact became evident.
Software was hard to write, and it was even harder to judge how long it would take to write.
The protocols that had been developed for the management of engineering projects didn't
seem applicable to software. Computer scientist Tom Cheatham used to say,“The difference
between civil engineering and software engineering is that when someone tells you that a
bridge is half built, you can walk out onto it and see.”(Cf. Royce's 90%-finished syndrome …
As computer systems grew larger and more complicated, an unhappy fact became evident. Software was hard to write, and it was even harder to judge how long it would take to write. The protocols that had been developed for the management of engineering projects didn’t seem applicable to software. Computer scientist Tom Cheatham used to say,“The difference between civil engineering and software engineering is that when someone tells you that a bridge is half built, you can walk out onto it and see.”(Cf. Royce’s 90%-finished syndrome, page 326.) Frederick C.“Fred” Brooks (b. 1931) was a PhD student of Howard Aiken at Harvard and wrote his PhD thesis (Brooks, 1956) analyzing a problem in business data processing. He joined IBM in 1956 as the company was producing a series of increasingly powerful computers, each incompatible with its predecessor. Recognizing (as Hopper had predicted) that software costs would be unsustainable if customers had to rewrite their programs to move up to newer machines, he designed the System/360 line so that software that ran on one machine in the line could easily be ported to run on a newer and more powerful model, even one with a different underlying hardware implementation (microprogramming helped; see page 165). Brooks coined the term “computer architecture” to refer to the structure of a computer system as the software saw it. When he left IBM in 1964, Thomas Watson Jr. asked him why software projects are so hard to manage.“The Mythical Man-Month” is part of Brooks’s answer. This essay is one of several in a volume of the same name; all are worth reading, but this one has acquired iconic status. Remarkably, it is still not unusual to hear proposals to add labor to a project in order to speed up its completion, taking into account neither the time for the new workers to come up to the needed knowledge level, nor the problems of coordinating the activities of a larger number of contributors.
Brooks went from IBM to found the computer science department at the University of North Carolina, where he spent the rest of his career. His group has made significant contributions to computer graphics, but his most enduring legacy is his wisdom on software engineering.(“All programmers are optimists” still.) A decade later he published another trenchant analysis of the “tar pit” of software engineering,“No Silver Bullet: Essence and Accident in Software Engineering”(Brooks, 1987), in which he sought to explain why—despite intense effort and grandiose promises—none of the technologies that had been developed to speed the software production process seemed to have made it significantly simpler and faster, or to have greatly improved the
MIT Press