The mythical book on software engineering
(This is a reprint of the original post)
This week, I finished reading The Mythical Man-Month, a collection of essays and articles by Frederick P. Brooks (see also Brooks' Wikipedia article). This is usually considered as one of the most influent authors in the field of software engineering. The essays in this book were written in the 70's and 80's, and follow from the experience of Brooks, who was the head of the IBM OS/360 development, the operating system designed for the System/360 machine, also by IBM.
Although some of the statements have become of age, it is shocking how many of the lessons learned by Brooks in the 60's are still of use (but, as Brooks says, the book is "the Bible of Software Engineering, because everybody reads it but nobody does anything about it!"). These are some quotes from the book:
- "Adding manpower to a late software project makes it later" (Brook's law).
- The man-month is a silly unit of measure: "The bearing of a child takes nine months, no matter how many women are assigned".
- "System debugging, like astronomy, has always been done chiefly at night".
- "The second is the most dangerous system a person ever designs; the general tendency is to over-design it" (Second-system effect)
- "Plan to throw one away" (i.e.: the first attempt to build a system will be unusable).
- "There will be no silver bullet within ten years" (written in 1986).
The OS/360 was one of the most expensive projects ever (second only to Program Apolo in the 60's), with a cost over 5 billion dollars (of 1965). It was delivered late (Brooks: "It is a very humbling experience to make a multi-million-dollar mistake, but it is also very memorable"), but it has had a great influence in later operating systems. Today, it is available as public domain software, and can be run on modern computers using an emulator.