Ed Willis has an article entitled The Mythical Man-Month Revisited [Jun. 17, 2004] on onlamp.com. As I read it I can only imagine that the author is one of a number of young programmers who rode the dot.com bubble and now considers themselves hardened computer professionals, but who in fact have little experience or perspective on the field that they have chosen.
Mr. Willis has a number of self proclaimed “impudent reactions” to Brooks’ classic work. While Mr. Willis may have read the book, he obviously didn’t understand the historical context in which it was written. Brooks was writing about his experience in the development of IBM’s OS/360 in the early 1960s, back when even I was unable to gum solid food. OS/360 was one of the largest computer projects undertaken up until that point, and was delivered years late and at great cost to IBM. Brooks’ had left IBM and decided to try to analyze why this failure had occurred and interviewed managers from many other projects to determine if any lessons could be drawn from their collective experience.
Instead of learning from work (which I first read about eighteen years ago, and which influenced much of my own thinking about software engineering), Willis appears to view all of The Mythical Man Month through the filter of whether it supports his own preconceived notions about so called “Extreme Programming”. Willis seems to believe that when Brooks’ opinions coincide with the dictums of “XP”, they are true, and when they do not, they are clearly false.
Perspective, young grasshopper. Perspective.
Extreme Programming is simply the lastest in a long line of programming methologies that were supposed to make long and complex programs easier to write. When I started it was block structured languages. Prolog enjoyed a brief flurry of activity, fueled mostly by initial enthusiasm of the Japanese. Then object-oriented programming. Even open source methodologies have been proclaimed as “revolutionary” techniques for developing software. Here’s a hint: software is everybit as difficult to write now as it ever was. There is no magic bullet that takes average programmers and makes them into great programmers, and even great programmers often do not write good systems.
Extreme Programming’s key is really the early and complete reliance on unit testing, their use of pair programming and constant refactoring. All are excellent ideas, but they do not themselves guarantee any sort of success in systems software design, nor do they actually help much in trying to predict the cost and delivery dates of software, both of which are clearly important to efforts of the magnitude which Brooks lead in the early sixties.
There is much to learn from Mythical Man Month: I suggest that Willis try again.
It pleases me that Brooks is still around, and still giving lectures. Try looking at Fred Brooks’ keynote at the 2003 Game Designer’s Conference
If you have some feeling for nostalgia or experiencing what these programmers had to deal with, you can run the Hercules emulator which allows you to run software for a slightly later version of the corresponding IBM hardware. You can get instructions on generating and running OS/360 here.