"Of all the people in an organization, there are only six who really know any given topic," a colleague claimed recently. Why do large software development efforts (or large tasks of any sort) come in late, cost too much, and fall short of expectations? You guessed it. With luck, one or two project members will be competent to do their part of the job; the rest, alas, tend to get in the way.
So how can tasks too big for a handful of individuals ever get accomplished? We have to either pay the overhead --- huge inefficiency --- or figure out how to leverage the few genuine experts that exist. Maybe Frederick Brooks's "surgical team" proposal (see The Mythical Man-Month) is a good metaphor. A surgeon doesn't usually divvy up the cutting-edge work on a patient. But she does have assistants and specialized colleagues who help on parts of the job, who handle the paperwork before and after, and who let her focus on her special expertise. That maximizes productivity. Brooks suggests a similar approach to software engineering. Analogous applications in other fields could be equally wise.
Thursday, March 23, 2000 at 19:20:48 (EST) = Datetag20000323