Jon Stewart on 10 Aug 2001 17:01:27 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: hosers-talk: Fred Brooks, Turing Award Winner


> So, why can the software process be so crappy? 


If you have to ask...

The book tries to answer, in part, how not to make the software process so 
crappy. It's somewhat assumed that the reader is all-too-familiar with why 
it can be that way.


> And why is a "man month" 
> mythical?


And I quote, from chapter 2:

"The second fallacious thought mode is expressed in the very unit of 
effort used in estimating and scheduling: the man-month. Cost does indeed 
vary as the product of the number of men and the number of months. 
Progress does not. <I>Hence the man-month as a unit for measuring the size 
of a job is a dangerous and deceptive myth.</I> It implies that men and 
months are interchangeable.

Men and months are interchangeable commodities only when a task can be 
partioned among many workers <I>with no communication among them</I>. This 
is true of reaping wheat or picking cotton; it is not even approximately 
true of systems programming. 
	
When a task cannot be partioned because of sequential constraints, the 
application of more effort has no effect on the schedule. The bearing of a 
child takes nine months, no matter how many women are assigned. Many 
software tasks have this characteristic because of the sequential nature 
of debugging.

In tasks that can be partioned but which require communication among the 
subtasks, the effort of communication must be added to the amount of work 
to be done. Therefore the best that can be done is somewhat poorer than an 
even trade of men for months.

The added burden of communication is made up of two parts, training and 
intercommunication. Each worker must be trained in the technology, the 
goals of the effort, the overall strategy, and the plan of work. This 
training cannot be partioned, so this part of the added effort varies 
linearly with the number of workers.

Intercommunication is worse. If each part of the task must be separately 
coordinated with each other part, the effort increases as n(n-1)/2. Three 
workers require three times as much pairwise communication as two; four 
requires six times as much as two. If, moreover, there need to be 
conferences among three, four, etc., workers to resolve things jointly, 
matters may get worse yet. The added effort of communicating may fully 
counteract the division of the original task and brings us to the 
situation of Fig. 2.4 [a simple graph of a quadratic in quadrant I -- 
months as Y, and men as X -- more men may give you some more time, but you 
reach an inflection point somewhere, and then more men take more time -- 
Jon].

Since software construction is inherently a systems effort -- an exercise 
in complex interrelationships -- communication effort is great, and it 
quickly dominates the decrease in individual task time brought about by 
partioning. Adding more men then lengthens, not shortens, the schedule.

...[skip a number of paragraphs, giving cases and examples and going into 
debugging and testing, the two most delayed parts of the software 
process, to the end of the chapter]...

Oversimplifying outrageously, we state Brooks's Law:

	<I>Adding manpower to a late software project makes it later.</I>

This then is the demythologizing of the man-month. The number of months of 
a project depends upon its sequential constraints. The maximum number of 
men depends upon the number of independent subtasks. From these two 
quantities one can derive schedules using fewer men and more months. (The 
only risk is product obsolescence.) One cannot, however, get workable 
schedules using more men and fewer months. More software projects have 
gone awry for lack of calendar time than for all other causes combined."



It's very much like issues in parallel programming, where tasks which 
cannot be partioned are no damn good, and tasks which can be somewhat 
partioned depend greatly upon having a really fast network.



Jon
-- 
Jon Stewart
stew1@xxxxxxxxxxx

"Survey says: it was a bad idea in the first place."

	-- The Dismemberment Plan