"Mythical Man-Month" Supposedly Busted By MIT Startup 231
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."
!MMM (Score:5, Insightful)
In other words: they had an "embarrassingly parallel" problem and did the obviously right thing.
Re:!MMM (Score:4, Insightful)
"In other words: they had an "embarrassingly parallel" problem and did the obviously right thing."
Exaclty I'd like to see the poster try to keep adding people to a game project. I've seen so many abortions from the game industry lately it's disturbing.
The MM-M is more what you'd call a guideline (Score:5, Insightful)
than an actual rule.
They didn't add to a late project (Score:4, Insightful)
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.
Agreed (Score:5, Insightful)
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 ...
Doesn't negate Brook's adage at all (Score:2, Insightful)
Put these same kids on an existing program that is a year late and already has a team of 20 programmers working on it. Get back to me in 6 months telling me just how fine things are.
10 years ago (Score:5, Insightful)
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.
Re:Doesn't negate Brook's adage at all (Score:3, Insightful)
In that case, I suspect firing the right 5-7 people (some of them programmers, but not all of them) would get the job done faster.
Re:This is MIT, remember (Score:2, Insightful)
Re:!MMM (Score:5, Insightful)
Exactly. They didn't add people to a late project, they got more people and put them on un-manned projects to get them going. That's quite a different matter and not what Brooks was talking about. And yes, they did the right thing.
Re:Disappointing (Score:2, Insightful)
Don't forget (Score:4, Insightful)
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.
Re:The MM-M is more what you'd call a guideline (Score:5, Insightful)
Someone hand that guy a modpoint or two, because adding manpower to a late project can have beneficial effects. If, and only if, it is done sensibly.
Hire someone who makes sure the programmers have all the pizza and egg rolls they need so they ain't going to be distracted by having to call the pizza place for one. You all know how much time is killed with you get interrupted by something important. Like, say, a rumbling stomach. It takes ages to get back into the code afterwards.
But more sensibly, fire all the paper pushers and hire project managers worth their salt. And I don't mean "idiots that can set arbitrary milestones". We got plenty of those. A good project manager makes or breaks the project. What I need from a project manager is:
1) Making sure I have the hardware and software I need. Not "the company thinks I need". The ones I need.
2) Making sure external sources keep their deadlines or route around those bottlenecks. Know what makes most of my software late? That I finish my modules only to hear "uh... testing can't commence, we're waiting on something from X." A good PM knows that BEFORE it happens and tells you to drop that module and work on this one instead, because the guys at Y are done and we could start testing that part instead.
3) Most important: SHIELD ME FROM POINTLESS MEETINGS and go there for me. And there, his answers are "no". "Can't do that". And "has to be done on your end". I.e. the crap I usually get to hear in those meetings.
If necessary, hire more PMs. Not more programmers.
Re:!MMM (Score:3, Insightful)
You could, to some degree, if you divide the work up correctly. You probably can't have more than a small number of people working on the game engine or deciding on the story line, but you can massively parallelize the people designing models, skins, etc., letting them pop items from the queue of object requests coming from the people writing the story line.
Re:Disappointing (Score:5, Insightful)
Not as old as you (in terms of Slashdot readership), but I've been here quite some time as well.
I think that, as readers left this site, editors slashed into the content quality and try the quantity approach. I used to be able to read the site daily and have time to post replies here and there. Now, I have it set in an RSS reader because the volume is much larger to the point that if I miss a day, 20 to 30 stories fly by.
It's not that there are more things to report now than 10 years ago, it's all these crappy filler stories, blog posts about nothing interesting, jokes and whatnot that make this site less and less relevant.
Additionally, while Slashdot used to be where the breaking news was happening, I can now find interesting and important stories up to THREE days later on this site than on digg, for example.
Me and some other people have submitted, days ago, important stories (in our opinion) about a FOSS company that is suing the Quebec government for the right to bid on contracts that went directly to Microsoft. This is being heard by the supreme court right now. The supreme court! And it's not even making slashdot!
It's not too late, but the editors really have to try and voluntarily lose a few percent point of page views in order to bring back quality and, more importantly, fellowship of readers.
Niney McNine Nine (Score:3, Insightful)
Game devs FTW!
Re:This is MIT, remember (Score:5, Insightful)
No. No! I need a project manager! And I pride myself with being a fairly good programmer. And even the guys at MIT can benefit from one.
But I, like every programmer, need a good project manager. One that helps me instead of standing in my way. I don't need someone who checks my "progress" on some arbitrary measure that has nothing in common with the project at hand and peppers my calender with meaningless milestones. I also don't need someone to tell me how to write my code. I need a project manager that understands what he and I are trying to do together: Make a project work out. My job is to create it. His job is to make that possible to me.
And for that I need a project manager that deals with what I tend to call the "unpleasantries" of projects. In other words, clients, management, in a nutshell: PEOPLE. People make a project late. Especially when they start to meddle with it for some reason. The perfect project manager would lay down the project together with the client, do all the yucky legal stuff around it, give me the specs (not "and here kinda-sorta like $other_program", I mean specs you can work with), then keeps customer, management and all the other unnecessary evils of a project busy while I do my job so I don't get pestered. By meetings. And dumb questions.
I once actually had a PM like that. And it was a dream. We (him, me and a few other very motivated and talented people) created projects in record time. It was the best year of my life!
The company did what it does in such cases: They promoted him away from the position he was born for.
Re:9 women and the baby (Score:3, Insightful)
But seriously and aside of sexism and stereotypes: I had my share of companies to work with, from employee to consultant, and without fail the HR head was female and by any standard a true, absolute and impossible to stomach bitch. Please note that I have nothing against neither woman nor people who find pleasure in working in HR (they do a job I wouldn't want to touch with a ten foot pole. Both of them, actually...). But why is is that the HR bitch is by default the dragon of the company everyone would slay if they had half a chance of getting away with it?
Re:10 years ago (Score:1, Insightful)
O(0.5 * n^2 - 0.5 * n) is still O(n^2). That's the whole point of big-O notation, you only care about the terms that dominate.
Re:!MMM (Score:2, Insightful)
Not to mention that these are MIT students. #1 computer science program in the world. Not exactly a representative sample.
Re:!MMM (Score:5, Insightful)
Even there, they didn't come anywhere close to disproving Brooks' theory.
If you throw 20 programmers at a task, the square root of 20 is 4.472+. They got a factor of 4 (at best) improvement. To even begin to claim that productivity improves with the number of programmers (modulo a constant), they'd need to beat that square root.
They failed. The numbers they're quoting are certainly inconclusive, but in a vacuum they support a sub-linear improvement (the Brooks hypothesis), they don't refute it.
Certainly there could be a very small constant where these results are inline with a non-Brooksian conclusion, but in a vacuum they're more likely in line with a Brooksian hypothesis than any theory of linear scaling.
Re:Agreed (Score:2, Insightful)
To be fair, there was a risk of run away egos torpedoing the project.
Re:This is MIT, remember (Score:3, Insightful)
It sounds like in every case where there is a good program manager who's helping you do your job, there's utterly incompetent management above him. What actual good does the higher level management even do, if you need a person just to shield you from them? How are they not a net drain on the company? Do you think the program manager could in theory run everything without the company suffering?
Re:!MMM (Score:2, Insightful)
You really can't count any such accolades until *after* they graduate. The day they enter they're nubs like every over CS student in the world.
Re:Agreed (Score:4, Insightful)
TMMM is about people actually having to communicate. The situation described here put everybody in the same room due to there not being enough rooms. Given the task, they might as well all had separate office buildings.
I've worked on in companies with well over thousand IT employees. Those companies didn't have a problem with TMMM either. That's because those thousand people were working on a hundred different projects. This situation is pretty much the same but at a far smaller scale.
p.s. When an article mentions the product they are making is "supposed to be technically impossible", the rest of the article probably isn't based on reality either.
This has nothing to do with TMMM, but with them bragging about how they hired a shitload of MIT students and assign each his/her own, separate projects; something any half-decent project manager should be able to pull off. (And this is a guy speaking with a very low esteem of project managers in general).
Re:!MMM (Score:5, Insightful)
"Not exactly a representative sample."
And not a respresentative case till some time passes on. Right now they had a lot of youngsters hacking a lot of separated (micro)projects. Let's see in a few months if this hackaton doesn't become itself a maintenance nightmare, once bugs and design flaws arise.
Re:!MMM (Score:5, Insightful)
Even as a paying student, it's hard to get to MIT - so they're not nubs like every other CS student in the world. Or if they're nubs, they are the best nubs around (I'm not talking about average, but about the 20 or so people that could be attracted into such a project)
Re:Disappointing (Score:5, Insightful)
If you think stories shows up on Digg before /., you should check out Reddit (especially the various tech subreddits). That's where you find the stories 4 days before they show up on Digg.
Nowadays, I mostly come to /. for the discussions. I will admit that the quality of discourse might have sagged a bit since its heyday, but on a whole I still find genuinely stimulating articles and commentary often enough to be a regular reader after all these years.
RTFA (Score:2, Insightful)
The article itself establishes the premise that the work they needed to do was "outside their core technology," which is another way to say "we don't know how to do it, and so we're floundering."
Hiring 20 college kids who are familiar with the technology you're trying to work on is obviously going to be a huge help.
Second, they took these steps:
Know who the best people are and only hire them.
Pay well.
Divide tasks to be as loosely-coupled as possible.
Design your projects in advance.
Ok, geniuses. You've figured out how you should be running your company. If companies would just do these things, they would never find themselves in a position where they would be late in the first place.
Most companies opt for:
Know who the cheapest people are and hire them.
Pay as little as possible.
Tightly couple tasks so PMs can some up with daily SPI numbers to satisfy management's constant need to feed on numbers.
Design your projects concurrent with executing them to reduce total calendar time, and worry about working in changes after initial release.
Re:RTFA (Score:3, Insightful)
"Ok, geniuses. You've figured out how you should be running your company. If companies would just do these things, they would never find themselves in a position where they would be late in the first place."
I'm sorry but this is nonsense, in the real world all sorts of unexpected things happen or subtle flaws or errors you didn't know about can crop up that push projects back. Especially in the game industry - the preach iterative software development, if you're always iterating, you're constantly adding and removing stuff since there is no fixed design, you can't exactly have a "fixed schedule". It usually takes years of experience to develop an experienced team that can glue everything together into a good game.
Many teams in the game industry release half-ass stuff all the time, but the best ones get better over time. I've been really impressed by Mass effect 1, Mass effect 2 and dragon age, but these projects didn't drop out of the sky, they came after a long learning curve of how to manage game projects of that scope and complexity.
A lot of this has to do with overambitious targets, expectations and design goals, many companies bite off more work then they can chew because they are desperate for money, and this is not going to change. There are people at all levels who simply shouldn't be in the software industry at all but that's not going to change.
Re:The MM-M is more what you'd call a guideline (Score:1, Insightful)
Hire someone who makes sure the programmers have all the pizza and egg rolls they need so they ain't going to be distracted by having to call the pizza place for one.
If you need to do that, then you've already failed.
The assumption in your statement is that the developers will be working late into the evening with pizza for supper. The problem is that any project that requires this is a project that is already being mismanaged. Although few managers realize this these days, overtime is a management failure.
Either ensure you have adequate resources to meet the requirements within the relevant time constraints (which includes not just the project deadline, but the reality of the planned work week), or change the requirements to be achievable with the resources you have within the relevant time constraints.
Modern game development shops are a great example of what's wrong with project management.
Re:!MMM (Score:4, Insightful)
Computer Science != Software Development
They may be smart, they may even be brilliant, but computer science at elite institutions has frak-all to do with software development. At best, they will be good newbs, at worst, entitled newbs who are convinced they know it all.
Relating to Open Source? (Score:4, Insightful)
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.