the item

The Mythical Man-Month
The Mythical Man-Month
1995

the questions

  1. How to be a better programmer
  2. How to run a killer startup

more about the



the consensus

Excellent foundational book on the mistakes managers and teams make while making projects happen



recent reviews

  1. Zen and the Art of Motorcylce Maintenance
  2. The Sparrow
  3. SEOMoz
  4. Mythical Man-Month
  5. Code Complete
  6. Pragmatic Programmer: From Journeyman to Master
  7. This Perfect Day


join our mailing list


if you liked
'The Mythical Man-Month'
you also might like



Your Ad Here



comment on
'The Mythical Man-Month'




book ideas? feature requests?
other information not related to 'The Mythical Man-Month'?




continue the research

















all external links are affiliate links. bit.ly is used to provide real-time tracking

the review

Ok, I confess, I must be the one guy I know who hasn't read Fred Brook's "The Mythical Man-Month", although I have heard dozens of people say how good it was, and (this is especially painful) I've even quoted the book. The book I didn't read. Ouch.

Read any great programming books lately?

How about a great programming book that you know is still going to be great 25 years from now?

There are only a very few books that could fit that category, and after finally reading it, I know that "The Mythical Man-Month" is one of them.

Sure, for a book written in 1975, it's starting to show its age. All those sections about counting bytes in a program, or having somebody different to run the compile than the person writing the program were quaint. And when Brooks goes into the wonders of "modern" text processing -- being able to have documents printed and on somebody's desk first thing in the morning! -- it was downright funny.

In fact, by lightening my reading style, no longer reading as if I were studying and reading more for pleasure, I found big parts of the book very enjoyable from a how-did-they-do-it-then standpoint. The IBM System/360 sounds like quite an achievement for its time. Lots of things we take for granted were just getting going back then.

But what was more amazing than hearing stories of old-fashioned development efforts, how different everything was, was the surprising fact of how many things that were mostly the same then as they are now.

Brooks is weakest where we as programmers always are weakest: trying to take our skills at programming and shoving them on to how to organize projects. Many of his ideas probably sounded great at the time, and I know that his 360 project was well-regarded, but experience has shown us that these ideas didn't work so well consistently (Ever heard of a "Language Lawyer" on a project? 'Nuff said)

But Brooks is strongest where great architects always are: he's able to step back from the problem of trying to organize groups of programmers into a larger project and make observations that are terribly obvious, yet also terribly counter-intuitive. He's the guy on a really great project who looks at the problem, restates it, and everybody sits around with their mouths agape. Damn! Why didn't I think of that? I love it when that happens.

Every three or four pages I found myself reading really good observations that by now have become lore in the programming world. The idea of comparing software development to construction, the idea the man-months are not fungible, the idea that adding people to a development project will actually make it run later, the idea that communications issues increase in an exponential fashion as people are added -- I could go on, there were scores of these gems.

I came up through the programming world hearing all of these, usually third or fourth-hand. Some of the "famous" books I've read had parts that were lifted almost directly from MMM, which appeared decades before! In a way I feel almost cheated. I wish I would have started here, then moved to the other books, instead of the other way around.

When you become a parent, you finally understand growing up, because you see yourself both when you were a kid looking at parents and as a parent looking at kids. There's this powerful echo-chamber effect you get the first time you say something to your kids that you yourself heard told to you. Likewise, when I read MMM I was powerfully moved -- completely accidentally on the author's part -- at how these same themes have been with programming for the last 45 years. And how they are probably going to be with us for the next 45 years.

I can't give MMM my fullest recommendation though, for the simple fact that Brooks covers large-scale development and other things that didn't turn out to be quite so useful with the same surety as he does the other stuff. For the noob, it can be difficult to tell the good stuff apart from the not-so-good stuff. There's a lot of structured programming in there, and there's a lot of "since we can logically divide the task this way, we must also logically divide the workers this way" I'm probably a bit of a harsher critic than most, having seen multiple 1000+ developer projects, and all the things that go wrong with them could probably fill another book. MMM is best when it's dealing with the general types of problems we face when trying to organize ourselves as programmers, not when it tells us the exact details of how to make every large project sucessful.

Having said that, this is an excellent book for anybody who wants to keep from making the same old mistakes that keep getting made over and over again. It's a "first" book, meaning you start here and go forward. Thinking about becoming a tech lead or one day maybe a PM? The line starts here. Don't do like I did and hear all of this secondhand from other authors. Brooks has some of this stuff nailed. He's the guy all those other great authors copy from. Excellent read.


   

the buzz

Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along
Nothing to see here, please move along


No book on software project management has been so influential and so timeless as The Mythical Man-Month. Now 20 years after the publication of his book, Frederick P. Brooks, Jr. (best known as the "father of the IBM System 360") revisits his original ideas and develops new thoughts and advice both for readers familiar with his work and for readers discovering it for the first time.

     


What is this?

A while back I wrote an article on my blog listing all the books that hackers recommended to each other from the site HackerNews. The purpose was to provide a place to list book recommendations so that people didn't have to type in the same list over and over again. (HN gets several requests for book recommendations a week. I also get at least a couple each month). It was very well received, and many posters and commenters either asked that I make a site or sent me an email asking me to do so.

How is this any different from the list on the blog?

This list has more books. This list is sortable both by what question you have and your skill level. In addition, once you sort the list, you can save the link with your sort and send it to somebody else. So, for instance, when somebody wants a book for noobs learning to program, you can make a link for that and then reuse it

How did you collect these books?

Initially the list came from Googling HackerNews.com "best book" and taking the books from the first few pages returned. Later, I added all the books that were mentioned "You left that out!" when Jacques posted the link. While adding those books, I came across a Stack Overflow link where programmers were asked to list their favorite tech books, so I included those too.

If I ask you to put a book on here, will you?

It depends.

These books were all gathered by finding places where hackers hang out and are suggesting books to other hackers and other hackers agree with them by voting up their suggestion. If I can find an example of this for your book, I'm happy to include it.

How are the books ranked?

I did the best I could with ranking. I am sure there are many things you do not agree with. It would be possible to add voting and personal ranking -- that would make the system much better. Heck, you could rank the books yourself and use it as a customized book list to show to people who want your advice. I'd like to do that, but if I've learned anything is to not let your featureset get ahead of the users. This first version will test the waters to see what kind of interest the community might have.