Open Books

Reviews of recent titles on open systems subjects



The Mythical Man-Month: Essays on Software Engineering (Anniversary Edition)
by Frederick P. Brooks, Jr.
Addison-Wesley
322 pages, $24.69
ISBN# 0-201-83595-9


Anybody who has hung around the technical end of large software development projects has at least heard of The Mythical Man-Month by Fred Brooks. This account of large-scale software development is one of the classic texts in the field of system software development.

Brooks, now a professor on the forefront of virtual reality research, was a principal manager of the IBM OS/360 project, one of the largest system software projects of the 1960s. The book, originally published in 1975, combined his firsthand experience at managing such a large project and then-current research on software engineering management. Addison-Wesley has taken advantage of the book's twentieth anniversary to publish a new edition with four additional essays.

Many maxims that are common wisdom in software engineering management today have their origins in this book: Adding additional manpower to a late software project only makes it later ("Brooks' Law"); software development schedules are invariably optimistic; a great programmer can be 10 times more productive than an average one; designs must be complete before implementation begins. On each of these points, Brooks draws extensively from published research and his own experience. On the design issue, for example, he writes, "It is a very humbling experience to make a multimillion-dollar mistake, but it is also very memorable." The "mistake" in this case was in starting a team of 150 programmers on implementation before the system design was complete.

Brooks goes on to suggest solutions for many of the pitfalls in software development, from how to organize a small team on a particular task to how the overall scheduling and management can work. Communications among those developing the software is one of the most important aspects of successfully building a large software system, and Brooks spends a couple of chapters on this topic alone. He also deals with system optimization and testing issues.

New Chapters, New Topics


The anniversary edition is an update from the original text. Rather than revising the text, however, Brooks opted to expand it, adding several new chapters. These include a well-known paper from 1986, "No Silver Bullet," which predicted that software engineering would not experience anywhere near the rate of advance that other aspects of computer technology have enjoyed.

"No Silver Bullet" examines past breakthroughs in software engineering (such as interactive programming, high-level languages, and unified programming environments) and compares them to technologies that were emerging when the paper was written: Ada, object-oriented programming, artificial intelligence, expert systems, automatic program verification, and graphical programming. Brooks correctly predicted that none of these technologies would produce advances for software development at the same rate of advance seen in hardware engineering.

While Brooks' assertion in this essay has proven correct, the paper sparked a significant amount of discussion in the field, which he addresses in a subsequent chapter. In another chapter added for this edition, he summarizes the results of The Mythical Man-Month research in a concise outline, occasionally adding commentary.

Hindsight


In the final chapter, "The Mythical Man-Month after 20 Years," Brooks comments on how changes in the field have affected the results from the original book. Some of the observations have held up quite well, such as the need for conceptual integrity and the importance of an architect to oversee the design of a large project. The assertions raised in the original book, such as the "man-month" being a useless measure, and Brooks' Law also still ring true two decades later.

In looking back, Brooks is most surprised by the explosion of the personal computer field, which has made computing accessible to many more people in many more ways than he foresaw in 1975. It has also had a major impact on software development. For example, the emergence of standardized user interfaces (such as the MacOS, Windows, and Motif) and off-the-shelf, shrink-wrapped packages have dramatically changed how software is developed. Solutions that used to require expensive custom development can now be purchased at a local store. Because of advances in hardware, computer power is rarely even an issue in most software development today. New techniques, such as canned frameworks, allow software to be incrementally "grown" rather than written sequentially from beginning to end.

For anybody involved in large software projects, The Mythical Man-Month remains one of the most useful texts in the field. Although it is 20 years old now, many of the observations and results Brooks reported then hold true today. The new edition is a good reason to revisit this classic text.

John Peterson is a senior developer of Web authoring applications in the Internet products group of Adobe Systems in Mountain View, CA. He can be reached at jp@acm.org. To purchase books in this column, contact your local bookseller.