Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What methodology is closest to the Surgical Team in The Mythical Man-Month? [closed]

The Mythical Man-Month is now classic, but the "Surgical Team" methodology is still interesting. What methodology most closely resembles it or has the same essence?

To summarize the Surgical Team analogy: A surgeon understands the problem/business domain and is the expert. They are the authority when there are questions or conflict with in the team. The surgeons work between themselves when there are issues, say with design, functioning as a smaller tight team of experts. So in essence they have the knowledge of the domain, are entrusted to do they think is right, and do the actual coding? The rest of the team focuses on support, testing, documentation, and project plans are delegated tasks. Consequently the surgeon is also the most skilled/trained resource.

The answer could be project, programming, design methodologies as it seems to have implications across main methodology domains. Agile, MDA, Extreme, in sourcing development? This question also make more sense for software that is large in a complex business domain, think air traffic control, not a COTS developer to or common utility.

like image 244
Ted Johnson Avatar asked May 22 '09 18:05

Ted Johnson


3 Answers

One of the patterns mentioned in Organizational Patterns of Agile Software Development is titled "Three to Seven Helpers per Role"; it differs from Surgical Team in that it pays attention to every role, for example it isn't only that the surgeon 'role' that has helpers or relationships: all roles have some number of relationships.

Another pattern from the same source in named "Architect Also Implements", which may be analogous to "Surgical Team" in that the Architect in particular is (presumably) highly skilled.

like image 91
ChrisW Avatar answered Oct 23 '22 15:10

ChrisW


In the case of a surgeon, the key actor is both the domain expert and the implementor.

I.e., he's both the software program manager (architect) and the developer.

This sort of methodology might fit certain short-burn situations: for instance, a complex operation like a live server migration or software upgrade.

For general development, however, there are a few issues with such "hero" methodologies:

  • Few key developers understand the problem domain to a sufficient degree, and must rely on domain experts. This is simply a function of specialization--it's tough to find kick-butt programmers who also are lawyers, doctors, accountants, or otherwise are experts in the domain the software is modeling.

  • Scalability is limited by the number of "surgeons" you have available.

  • There's a lot of down time for the other staff while they wait on instructions, since the highly-focused "doer" is also managing the team. That's ok in the OR, since you're dealing with a "zero-bug" mandate and "live software." But in this economy, a more distributed workload is more efficient, even if it results in the occasional sync problem between team members.

like image 34
richardtallent Avatar answered Oct 23 '22 14:10

richardtallent


I'm not sure any methodology really addresses that, as it is really a matter of prioritizing the developers and bending everything to their needs, rather that being anything about how those developers actually develop their software.

If you were looking for some methodolgy that impements this, I suppose this may be bad news. I prefer to consider it good news, in that it means you can use this approach with pretty much any software development methodology.

I've worked on exactly one project that was run that way. It was so enjoyable, I nearly feel bad calling it "work". Four of us developers (with extra support personell, including the occasional extra junior code monkey) got a truly prodigous amount of code written and running properly in only 9 months. Other places I've been couldn't have done as much with a team of 20.

like image 24
T.E.D. Avatar answered Oct 23 '22 15:10

T.E.D.