Those Who Don’t Study History Are yadda, yadda, yadda
I’m often surprised by how many people in the software industry haven’t read Frederick Brooks. There are few people in our industry that have written truly, seminal books, and Fred Brooks is one of those people. There are even fewer people that can claim to have postulated a law that is still quoted 35 years later. Again, Fred Brooks is one of those people.
The Mythical Man-Month is a collection of essays on the topics of software engineering and project management which was published in 1975. It’s famous for originating Brooks’s Law, “adding manpower to a late software project makes it later”. Almost everyone that works with software (developing or managing) has heard, and possibly even repeated, Brooks’s Law. Unfortunately, few people understand why it’s true and what they can do to avoid falling into that manpower trap.
The book is by no means a one-trick pony. There are dozens of essays in this book that are incredibly valuable to those of us in the software development industry. In one of the essays in the book, Brooks suggests that the waterfall model of development might not be the best way to work, and proposes something very similar to what many people, today, would recognize as an agile process. Of course, he also comes down very squarely in the waterfall camp in another essay. He explores the benefits of “build vs. buy” (the idea of buying commercial, off the shelf (COTS) software in 1975 was very novel), likens software development to prehistoric tar pits, proposes the second-system effect, explores operating software development teams in the same way surgical teams are operated, and many other fascinating topics. Reading through these essays provides an amazing insight into how projects went wrong in the late 1960’s and early 1970’s, followed by immense frustrations that we’re still dealing with the exact same problems today. Really, more people need to read this book.
Brooks wrote his most controversial essay, No Silver Bullet, in 1986. Quite simply, Brooks states that there will be no new developments in the creation of software or management of projects that will provide an order-of-magnitude productivity gain within the next decade. He proposes that software development has two primary problems, essential complexity and accidental complexity. The essential stuff basically boils down to solving problems, while the accidental stuff tends to focus around the actual writing of code. He says that so much of what we do falls into the essential camp, that even reducing the accidental complexity to zero wouldn’t result in the order-of-magnitude improvement that we kept seeing in the hardware space at the time. Here we are, 25 years later, and I don’t think we’ve still seen those kind of productivity gains.
I can’t recommend the works of Fred Brooks highly enough. Even if you don’t agree with some of his proposals and conclusions, reading about them is fascinating. The insights that can be gleaned from his works are nothing short of astonishing, especially when looking at them through the lens of the twenty-first century.















