"Mythical Man-Month" Supposedly Busted By MIT Startup
An anonymous reader writes "We all know about the Mythical Man-Month, the argument that adding more programmers to a software project just makes it later and later. A Linux startup out of MIT claims to have busted the myth, using an MIT holiday month to hire 20 college student interns to get all their work done and quadrupling its productivity."
In other words: they had an "embarrassingly parallel" problem and did the obviously right thing.
If you RTFA, they don't really address Brook's point. They all worked on small projects. Where the mythical man-month applies is in the combined effort on a large, sufficiently complex project. The real breakdown comes in the collaboration and communication.
Besides, in the real engineering world, nobody is going to tolerate the work conditions they describe. The pay better be 10x what I earn now to pack me in a room with sweaty, overweight 40-somethings.
It's a cute college experiment and nothing more.
"No matter where you go, there you are." -- Buckaroo Banzai
than an actual rule.
You mean hiring awesome staff to work on independent projects designed in advance breaks Brooks Law?
Genius! Pat yourself on the back some more. /sarcasm
Moderation in everything, including moderation.
FWIW, the MIT "holiday month" described here is a sort of inter-session called IAP (Independent Activities Period), and is expressly intended for students to do this sort of thing. Or go to charm school, either way.... Go Beavers!
They didn't add programmers to a late project, they added programmers to a bunch of small, self-contained projects that hadn't been started yet. That's a very different thing.
The point of Fred Brook's argument is that if you take a project that's already late, that means it already has systemic problems of one type or another (or likely, several types at once). Adding bodies without solving the systemic problems just makes those problems grow, not go away. That's not the situation this company had and that's not what they did. Saying they "busted the mythical man-month" is just trolling.
A Linux startup out of MIT claims to have busted the myth,
No they didn't. The communication cost remained O(n^2), they just improved the constant multiplier, not the order. To actually bust the MM theory, they should have quadrupled a couple times more, and see whether the productivity going down the drain or is as scalable as they claim.
In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
In addition, the article notes that the company was "a bit spoiled" by being in a position to hire from a large pool of MIT students, many of whom they knew personally. I like the subtle understatement here.
Not only did they put the target practically in front of the gun (by having an embarrassingly parallel problem), they also employed an embarrassingly high-calibre gun (i.e. hand-picked MIT students). Scoring has therefore been high. Surprise!
This experiment didn't do anything at all to bust the mythical man-month. Who came up with that title anyway? Must have been some slashdot editor ...
We also know about the Mythical Commenter-Post, the argument that adding more commenters to a thread just makes the posts dumber and dumber.
How did this kind of crap show up on Slashdot?
The real issue here, and one that is not addressed, is the quality of code. What the MMM addressed, IMHO, was adding developers to a project with defined metrics and ending up with code that met those metrics and integrated well with a larger code base. The reason that adding people did not work was the overhead needed to communicate between the develpers, which is 2^n proposition
As such, until the code is proven in service one cannot really say if the experiment worked. If the code is just going to have to be re-factored, or interfaces rewritten, then nothing was done other spending money to achieve a minimal product to meet a deadline. This is important, but does not prove or disprove anything.
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
One thing I hear a lot from programmers, particularly programmers unhappy with their Pointy Haired-Bosses, is, "I don't need to be managed as much as my bosses think I do!", and then pointing to a place like Google- which has one of the lowest managers-per-programmer ratios in the industry yet still produces amazing products- as an example.
The thing is, though, Google gets away with this because they hire the best of the best, and the best of the best can manage themselves pretty well. Most programmers are nowhere near as talented as the ones working at Google, they're the ones who need to be supervised. Managers are for programmers who write code that ends up on The Daily WTF, which is many of them.
I suspect that's what's going on here. Of course a bunch of MIT students can just hop on a project and be productive, that's why they're going to MIT. This result does not apply to the world at large.
Having said that though, I bet some of the techniques they used would apply to the world at large. I for one am going to see what I can learn from this with regards to getting people up-to-speed on new projects.
Dislike the Electoral College? Lobby your state to join the National Popular Vote Interstate Compact.
Is this the same rule as "9 women can't make a baby in 1 month"? I tried to explain the rule to our HR lady and it didn't go over really well with her.
I have been a slashdot reader since darn near the beginning (see uid). And I finally have to admit that the quality of information here has seriously gone downhill. As everyone else has rightly pointed out, the article is bogus. They didn't break Brooke's law.
Just yesterday a server I administer which runs a very non-optimized PHP and graphics and database heavy site was linked in a story on the front page. The server barely noticed the load. A hit every other second or so. And it was a direct link, no coral caching or whatever. I remember a day when slashdot had enough readers to utterly destroy a single server. It looks like a lot of people have taken off. If this continues I may have to take off too. As it is reddit, hackernews, and many other tech news sites with superior content in my rss feed are competing with slashdot for my eyeballs. I may finally have to trim slashdot from the list if this keeps up.
all projects have a point of diminishing returns.
The key to limiting, or exasperating this problem is good or bad project management.
Of course, if the 'project' is a large series of little projects that don't have dependency on each other, you can greatly increase personnel easily, such as the people in this argument.
They didn't really bust the myth, rather they used a situation where they didn't exceed the number of optimal personnel.
Is this the same rule as "9 women can't make a baby in 1 month"? I tried to explain the rule to our HR lady and it didn't go over really well with her.
I thought Tiger Woods was trying to prove that rule wrong.
These posts express my own personal views, not those of my employer
Maybe it's 98.01% (0.99 squared!).
Game devs FTW!
There are two things here. Several things can happen in term of 'scheduling theory'
-you can have 'super linear speed up' : put 2 workers and go 4 times faster. Think about building an ikea furniture that REQUIRES 2 people alone. Or about specialized workers : it might be better to add a microwave to a kitchen than a second oven. In computer systems, cache/memory can lead to super linear speed or dedicated hardware acceleration like graphic cards.
-you can have 'linear speed up' : put 2 workers and go 2 times faster. This is usally the case when the problem can be divided in a lot of independent task like painting 20000 doors. In computer systems this happens when uncompressing videos for instance.
-you can have 'sublinear speed up' : put 2 workers and go 1.3 times faster. This happens when you need to do extra work to allow some several workers to work at the same time. As in tagging files so that other people can handle them (In computer science, computing a prefix sum array in parallel follows this principle). It also happens when there is not enough work for everybody (the 9 pregnant women case)
-you can also have 'negative speed up' : put 2 workers and go 1.3 times slower. This happens when people get in each others way fighting for the brush to paint. In computer systems, this is often the case when adding processors increase communication too much.
Let me see if I get this right:
Brooks is saying that you should let everybody look at source code, due do Linus' Law (bug shallowness goes to 100% for eyeballs going to 6e9).
Parnas is saying that you should encapsulate things behind loosely coupled interfaces.
And you're saying "if everyone has to know what everyone else is working on [...]"
And then I'm saying there's a difference between having to know the innards of a module, and being allowed to know said innards.
I also think being allowed to know---without having to---is what makes open source software what it is.