We started a software book club
And our first read was The Mythical Man-Month
The Mythical Man-Month: Essays on Software Engineering by Frederick P. Brooks is one of the classic texts of software engineering. First published in 1975, it candidly considers the human elements of software projects based on the author’s experiences at IBM managing the development of OS/360.
Today, the technologies discussed by Brooks (including IBM’s OS/360 itself) are largely obsolete. Yet 10,000 new copies of The Mythical Man-Month are still sold every year. It remains widely discussed and quoted by professional programmers and software project managers alike.
In many ways, managing a large computer programming project is like managing any other large undertaking — in more ways than most programmers believe. But in many other ways it is different — in more ways than most professional managers expect.
This is a story about what happened when TWG started a Mythical Man-Month book club, bringing together an enthusiastic group of developers, product managers and designers to reflect on why MMM is still a MMMust-read for anyone working in the software industry.
Opening up the used copies of the books revealed some cool surprises. Bookmarks left by previous owners included a vintage Kellog’s Cornflakes coupon, a Telstar Arcade Cartridge ad, and a faded credit card receipt for a seafood dinner belonging to someone named Alex Bereson.
For one of our book club members, the thrill of the hunt was too much to resist…
I may or may not have just sent an email to an Alex Bereson that I strongly suspect might be the previous owner of that book — and potentially a badass old-school computer scientist to boot.
I shall report back if anything cool happens.
- Brian Gilham (Mobile Developer/Dedicated Internet Sleuth)
Before long, Brian had tracked down the original owner of the book. Bereson, who lives in San Francisco, has spent the vast majority of his career working in technology as well as being a passionate philatelist.
Over the course of two days, Brian and Alex exchanged four emails across two countries, one continent, and four time zones.
Building Surgical Software Teams
Once we’d recovered from the excitement caused by Brian’s adventure, our book club members turned their attention to exploring the text. Brooks suggests that to successfully build large software systems, those involved should organize themselves like a surgical team (rather than a hog-butchering team).
How does one build large systems on a meaningful schedule? One team member does the cutting and the others give them every support that will enhance their effectiveness and productivity.
Does the idea of the surgical team apply to how Agile software projects are organized today? Ben Wendt, one of TWG’s software developers, had some thoughts:
It’s fairly similar to how we do things here in some ways. The ‘surgeon’ is essentially like a Tech Lead, although some of the supporting roles aren’t things that exist any more. I don’t think any programmer anywhere has a secretary today.
In the book the surgeon is assumed to have complete domain knowledge. This isn’t really the case in Agile, which puts more focus on communication with clients and stakeholders.
As a Tech Lead it’s assumed that you’re a really good programmer, not that you’re an expert in any field of business you’re meant to be modelling that day. You have to gain that information along the way and be the surgeon of your own story.
If you’re doing a brain surgery, the client is the patient. They’re not going to say “oh actually, it’s my other lobe that needed work.” But that does happen with Agile.
Paving the way for Agile Software Development
Betamax and the laser printer were the hottest new technologies on the market the year The Mythical Man-Month first hit the shelves. Brooks initially formulated his ideas well before the e-communication era, when even the most elementary digital communication tools were not widely available. For example, when discussing documentation, he references a printed project “workbook… about five feet thick!” and the substantial time and money savings gained from a switch to microfiche. Most software development processes at the time were still waterfall-model based, even though this was known to be ineffective.
This is part of what makes the text so compelling to any reader with an interest in the history of software engineering. The tools, technologies and even job titles feel charmingly dated. But it is the continued relevance of Brook’s ideas about building software that places The Mythical Man-Month firmly in the software engineering canon.
The Manifesto For Agile Software Development, published in 2001, unmistakably echoes a number of the core philosophies proposed by Brooks.
In other words, Brooks’ ideas… can be viewed as intermediate stages of a process of convergence towards the establishment of the paradigm of agile software development, whose extensive application began around the year 2000. (Orit Hazzan — Did Brooks Envision The Agile Approach 30 Years Ago)
The book has also been updated several times since it was originally published. The 1995 Anniversary Edition contains “No Silver Bullet” paper, which Brooks called, ‘the best technical paper (he) ever wrote.’
Brooks pointed us to Chapter 19 of this edition as an essential read, since it includes some speculations as of ’95 about the future and some insight into how his thinking evolved (or remained steady) in that time.
The Mythical Man-Month is a Love Letter to Software
The tar pit of software engineering will continue to be sticky for a long time to come. One can expect the human race to continue attempting systems just within or just beyond our reach; and software systems are perhaps the most intricate of man’s handiworks.
The Mythical Man-Month is a rich, rewarding read for anyone who has chosen the path of the software engineer. It emphasizes, repeatedly, that building software is a challenging, complex and often frustrating endeavour. But it is clear that for Brooks, “the joys far outweigh the woes.”
His love for his work is ever-present in his writing, making it an equally rewarding book for anyone who is deeply committed to their chosen craft, programmer or not. Today, although technically retired, Brooks continues to teach. He is Kenan Professor of Computer Science at the University of North Carolina, and a Turing Award winner.