Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
The Mythical Man-Month (hn-books.com)
45 points by DanielBMarkham on Feb 21, 2011 | hide | past | favorite | 20 comments


The Mythical Man Month is a classic. I'd suggest that you also read the transcriptions of the two NATO Software Engineering Conferences -- Garmishch 1968 and Rome 1969. They were incredibly influential and still make good reading thanks to the efforts of Brian Randall and others. Many of the classic software engineering quotes come from these conferences. The citeseer cache links are:

http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.14.2...

http://citeseer.ist.psu.edu/viewdoc/download?doi=10.1.1.127....


This book is like reading Aristotle, it feels pretty old but it talks the truth and the truth never changes


Aristotle was a very smart chap, but it's hardly the case that everything he said was unchangeable truth. (Random examples: his fundamental physics was really, really wrong -- see http://csep10.phys.utk.edu/astr161/lect/history/aristotle_dy... for a very brief summary of some important errors; he said that men and women have different numbers of teeth, which they don't; his distinction between "substance" and "accidents" has been pretty much abandoned for ages, with the possible exception of the Roman Catholic Church's teaching on transubstantiation.)


You are right, I should've said Plato


Are you serious?


What I find amazing about them is that they were able to figure out so many things with a very limited body of knowledge. I understand they missed the mark in many things, but still they were able to come up with many great ideas(even if they were wrong).


He's more right than wrong, esp when compared to our naturalism.


I agree with the author's concepts, but I find this book unreadable. It's just too darned dense -- needlessly dense.


Quick summary: The complexity of a project increases as the square of the number of people on the project, so if a project is behind schedule you may want to remove people from it, not add them. It's difficult to predict completion times for software projects but that won't stop non-technical people from setting deadlines, or from asking you to promise to meet deadlines. Waterfall development does not work.


Reminds me of a story about Larry Ellison:

"He told me a story of how Larry Ellison actually got efficiencies from teams. If a team wasn’t productive, he’d come every couple of weeks and say, let me help you out. What did he do? He took away another person until the team started shipping and stopped having unproductive meetings."

I love that quote, via: http://scobleizer.com/2010/11/12/why-google-cant-build-insta...


> Waterfall development does not work. < All evidence that I've seen confirms this. Yet, in companies where they practice waterfall, all the evidence in the world can't seem to convince them of this fundamental problem. The solution is try "more" waterfall, or to alter the process of waterfall. The cognition that it isn't working, despite mountains of evidence just doesn't seem to register. I suppose this is due to an already dysfunctional company culture.


It's worse. I've proven, with cold hard numbers, that our waterfall process didn't work and gotten agreement. But I get told that we _have to_ provide a waterfall schedule to some of our key customers (big multinationals) or otherwise they won't believe we'll deliver, because everybody that's not in software knows by now that waterfall is how all real software gets made. le sigh

So, what we do know is we make up a waterfall schedule to give to the customer, and then we do our own thing afterwards.


Why is it that people all remember this as the golden rule of the mythical man month?

The exact circumstances refer to a particular type of team development (surgical team) form a day when you wrote OSes in assembler and you had to coordinate who used which memory address for which variable.

Yet people use the advice to avoid adding testers or documentation people to a late project to relieve the developers. We have also advanced the programming techniques and tools a little since the IBM360.

Yes adding a large number of rookie/trainee programmers to a crunch project is a bad idea - but so is saying we can't get any extra help (Brook's says so) , we will just increase the hours the devs work until they are back on schedule.


Well he explains pretty well why adding people (any kind of people) won't work. To summarize it in one phrase: communication overhead.

You need to educate technical writers and testers on what the system does, but this is the easy part - you also have to allow for a period of transition of organization to accommodate all the new folks, that means education of the original team who is probably already panicked and stressed out..

There are two ways you can go about it IMHO to prevent total loss - triage the features and roll the thing out ASAP. Or you could try to make the most of situation by indeed adding people - but not in parallel since this will only increase the confusion. I would assign apprentices to the original team and branch off later.

In a situation like this you have to accept that you have screwed up and that there are no short term solutions. In longer term you can try to prevent similar mistakes.

Once the torpedoes are in water no amount of wishing is going to make them disappear. Time to tie down cargo and brace for impact.


The irony is that the "never add people to a late project" principle is often viewed as a silver bullet solution to save late projects.


It's not just rookie programmers. Even adding experienced programmers who are unfamiliar with the circumstances of the project will often make a project later.

I do agree with you about adding orthogonal people, provided the project manager can bring them up to speed without slowing down the development team even more.


That's one thing.

The other problem he was also trying to cover was, how do you scale? When you are dealing with a big project, how can you tame the complexity of dealing with so many people?


I think this (along with Peopleware) should be required reading to start a software company. It's incredible how many companies still make fundamental (and preventable) errors in running a software project.


A nice summary. I was having drinks with a vc and he said the issues always remain organizational. Brooks saw that software is no different.


As a student, I read "Dreaming in Code" by Scott Rosenberg, which makes several references to this book. In it, they run into just about every conceivable problem a software project can encounter, which makes for a pretty fun read.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: