Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

2

The Mythical ISAan-hAonih

Good cooking

takes time. If

serve j/ou better,

and

you are made

to please

to wait,

it is to

you.

MENU OF RESTAURANT ANTOINE, NEW ORLEANS

13

The Mythical Man-Month

14

More software
than for
so

all

projects

have gone awry for lack of calendar time

other causes combined.

Why

this cause of disaster

is

common?
First,

our techniques of estimating are poorly developed.

seriously, they reflect


true,

i.e.,

that

all

will

an unvoiced assumption which

is

More

quite un-

go well.

Second, our estimating techniques fallaciously confuse effort

with progress, hiding the assumption that

men and months

are

interchangeable.

Third, because

we

are uncertain of our estimates, software

managers often lack the courteous stubbornness of Antoine's chef.


Fourth, schedule progress is poorly monitored. Techniques
proven and routine

in other engineering disciplines are considered

radical innovations in software engineering.


Fifth,

when

schedule slippage

is

recognized, the natural (and

is to add manpower. Like dousing a fire with


makes matters worse, much worse. More fire remore gasoline, and thus begins a regenerative cycle which

traditional) response

gasoline, this

quires

ends in disaster.

Schedule monitoring will be the subject of a separate essay.


Let us consider other aspects of the problem in

more

detail.

Optimism
this modern sorcery espehappy endings and fairy godmothers. Perhaps the hundreds of nitty frustrations drive away all
but those who habitually focus on the end goal. Perhaps it is
merely that computers are young, programmers are younger, and
the young are always optimists. But however the selection process

All

programmers are optimists. Perhaps

cially attracts

those

works, the result


"I just

found the

So the

is

who

believe in

indisputable: 'This time

last

first false

will surely run,'' or

assumption that underlies the scheduling of

systems programming

is

take only as lon^ as

"ought"

it

it

bug."
that all will ^o well,
to take.

i.e.,

that each task will

optimism

15

The pervasiveness of optimism among programmers deserves


more than a flip analysis. Dorothy Sayers, in her excellent book,

Mind

The

of the

Maker, divides creative activity into three stages:

the idea, the implementation, and the interaction.

book, then,

comes into existence first as an ideal


construct, built outside time and space, but complete in the mind
of the author. It is realized in time and space, by pen, ink, and
paper, or by wire, silicon, and ferrite. The creation is complete
when someone reads the book, uses the computer, or runs the
or a computer, or a program

program, thereby interacting with the mind of the maker.


This description, which Miss Sayers uses to illuminate not
only

human

creative activity but also the Christian doctrine of the

human makers of
and inconsistencies of our ideas

Trinity, will help us in our present task. For the

things, the incompletenesses

become

clear only during implementation.

Thus

it is

that writing,

experimentation, ''working out'' are essential disciplines for the


theoretician.

In
able.

many creative activities

Lumber

splits;

the

medium of execution is intract-

paints smear; electrical circuits ring. These

physical limitations of the

medium

constrain the ideas that

be expressed, and they also create unexpected

may

difficulties in the

implementation.

Implementation, then, takes time and sweat both because of


the physical media and because of the inadequacies of the underlying ideas.

We tend to blame the physical media for most of our

implementation

way

difficulties; for

the media are not

''ours'' in

the

the ideas are, and our pride colors our judgment.

Computer programming, however, creates with an exceedtractable medium. The programmer builds from pure

ingly

thought-stuff: concepts and very flexible representations thereof.

Because the

medium

is

tractable,

we

expect few difficulties in

implementation; hence our pervasive optimism. Because our ideas


are faulty,

we have

bugs; hence our optimism

In a single task, the

probabilistic effect

assumption that

on the schedule.

It

all

is

unjustified.

will

go well has a

might indeed go as planned,

16

The Mythical Man-Month

for there

a probability distribution for the delay that will be

is

encountered, and ''no delay" has a

gramming

effort,

finite probability.

many

however, consists of

end-to-end. The probability that each will

A large pro-

some chained
go well becomes vantasks,

ishingly small.

The Man-Month
The second

mode

fallacious thought

is

expressed in the very unit

of effort used in estimating and scheduling: the

man-month. Cost
men and the

does indeed vary as the product of the number of

number of months. Progress does not. Hence the man-month


for measuring the size of a job

implies that

is

men and months

as a unit

a dangerous and deceptive myth.

It

are interchangeable.

Men and months are interchangeable commodities only when


a task can be partitioned
tion

among them

cotton;

it is

among many workers

(Fig. 2.1).

This

is

with no communica-

true of reaping

wheat or picking

not even approximately true of systems programming.

Men

Fig. 2.1

Time versus number

of workers

perfectly partitionable task

The Man-Month

17

When a

task cannot be partitioned because of sequential con-

straints, the

appHcation of more effort has no effect on the sched-

ule (Fig. 2.2).

The bearing

how many women

of a child takes nine months,

are assigned.

Many

no matter

software tasks have this

characteristic because of the sequential nature of debugging.

_L

Men

Time versus number

Fig. 2.2

of workers

unpartitionable task

In tasks that can be partitioned but

tion

among

added

to the

can be done

months

which require communica-

the subtasks, the effort of communication must be

amount of work to be done. Therefore the best that


somewhat poorer than an even trade of men for

is

(Fig. 2.3).

18

The Mythical Man-Month

Men

Fig. 2.3

Time versus number

of workers

partitionable task requiring

communication

The added burden


training

of communication

is

made up

of

two

parts,

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 partitioned, so this part of


the added effort varies linearly with the

Intercommunication

is

worse.

If

number

of workers.^

each part of the task must be

separately coordinated with each other part, the effort increases as

much pairwise
intercommunication as two; four require six times as much as two.
If, moreover, there need to be conferences among three, four, etc.,
n(n-l)/2. Three workers require three times as

jointly, matters get worse yet. The added


communicating may fully counteract the division of the
task and bring us to the situation of Fig. 2.4.

workers to resolve things


effort of

original

Systems Test

19

c
o

Men

Fig. 2.4

Time versus number

of workers

task with complex

interrela-

tionships

Since software construction


exercise in
great,

and

it

is

inherently a systems effort

complex interrelationships

communication

an

effort is

quickly dominates the decrease in individual task time

brought about by partitioning. Adding more

men

then lengthens,

not shortens, the schedule.

Systems Test

No

by sequential
component debugging and system test. Furthermore, the time required depends on the number and subtlety of
parts of the schedule are so thoroughly affected

constraints as

number should be zero.


expect the number of bugs to be

the errors encountered. Theoretically this

Because of optimism,

we

usually

The Mythical Man-Month

20

smaller than

turns out to be. Therefore testing

it

is

usually the

most mis-scheduled part of programming.


For some years I have been successfully using the following

thumb

rule of
Vs

for scheduling a software task:

planning

Ve

coding

Va

component

Va

system

test

test, all

and early system test


components in hand.

This differs from conventional scheduling in several important

ways:

The

1.

fraction devoted to planning

larger than normal.

is

Even

cation,

barely enough to produce a detailed and solid specifiand not enough to include research or exploration of

totally

new

so,

it is

2.

The

3.

The

techniques.

half of the schedule devoted to

code

is

much

debugging of completed

larger than normal.

part that

is

easy to estimate,

i.e.,

coding,

given only

is

one-sixth of the schedule.

examining conventionally scheduled projects, I have found


few allowed one-half of the projected schedule for testing,
but that most did indeed spend half of the actual schedule for that
purpose. Many of these were on schedule until and except in
In

that

system

testing.^

Failure to allow

enough time

for

system

peculiarly disastrous. Since the delay

schedule, no one
delivery date.
to

is

test, in particular, is

comes

at the

aware of schedule trouble

Bad news,

late

end of the

until almost the

and without warning,

is

unsettling

customers and to managers.


Furthermore, delay at this point has unusually severe finan-

cial,

as well as psychological, repercussions.

maximum. More

The

project

is

fully

staffed,

and cost-per-day

ware

to support other business effort (shipping of computers,

is

operation of

new

is

facilities, etc.)

ing these are very high, for

it is

seriously, the soft-

and the secondary costs of delay-

almost time for software shipment.

Regenerative Schedule Disaster

Indeed, these secondary costs

may

therefore very important to allow

far outweigh
enough system

all

test

others.

21

It is

time in the

original schedule.

Gutless Estimating

Observe that
the patron
it

for the

programmer, as for the chef, the urgency of

may govern

the scheduled completion of the task, but

cannot govern the actual completion.

An

omelette, promised in

two minutes, may appear to be progressing nicely. But when it has


not set in two minutes, the customer has two choices wait or eat
it raw. Software customers have had the same choices.
The cook has another choice; he can turn up the heat. The
result is often an omelette nothing can save
burned in one part,
raw in another.
Now I do not think software managers have less inherent
courage and firmness than chefs, nor than other engineering managers. But false scheduling to match the patron's desired date is
much more common in our discipline than elsewhere in engineering. It is very difficult to make a vigorous, plausible, and jobrisking defense of an estimate that is derived by no quantitative
method, supported by little data, and certified chiefly by the
hunches of the managers.
Clearly two solutions are needed. We need to develop and

publicize productivity figures, bug-incidence figures, estimating


rules,

and so on. The whole profession can only profit from sharing

such data.
Until estimating
will

need to

is

on

stiffen their

sounder

basis, individual

backbones and defend

managers

their estimates

with the assurance that their poor hunches are better than wishderived estimates.

Regenerative Schedule Disaster

What

when an essential software project is behind


Add manpower, naturally. As Figs. 2.1 through 2.4 sugmay or may not help.

does one do

schedule?
gest, this

The Mythical Man-Month

22

Let us consider an example.^ Suppose a task

man-months and assigned

to three

men

for four

there are measurable mileposts A, B, C, D,


fall at

the end of each

Now

suppose the

months have elapsed

month
first

is

estimated at 12

months, and that

which

are scheduled to

(Fig. 2,5).

milepost

(Fig. 2.6).

What

is

not reached until two

are the alternatives facing

the manager?
1.

Assume

that the task

the

part of the task

must be done on time. Assume that only


was misestimated, so Fig. 2.6 tells the
story accurately. Then 9 man-months of effort remain, and
two months, so AVi men will be needed. Add 2 men to the 3
first

assigned.
2.

Assume

that the task

must be done on time. Assume that the

whole estimate was uniformly low, so that


describes the situation.

Then 18 man-months

and two months, so 9 men

will

be needed.

3 assigned.

Months

Figure 2.5

Fig. 2.7 really

of effort remain,

Add

men

to the

Regenerative Schedule Disaster

^'-

__
r-

"

f.^

"
1

month delay
man/months remain)

(9

m/m

remain

Months

Figure 2.6

(18

Months

Figure 2.7

23

The Mythical Man-Month

24

3.

Reschedule.

like the advice

given by

hardware engineer, 'Take no small

enough time

in the

new

P. Fagg,

slips/'

an experienced
That is, allow

schedule to ensure that the work can

be carefully and thoroughly done, and that rescheduling will

4.

not have to be done again.


Trim the task. In practice this tends to happen anyway, once
the team observes schedule slippage. Where the secondary
costs of delay are very high, this

The manager's only

is

the only feasible action.

alternatives are to trim

carefully, to reschedule, or to

it

formally and

watch the task get

trimmed by hasty design and incomplete

silently

testing.

two cases, insisting that the unaltered task be


completed in four months is disastrous. Consider the regenerative
effects, for example, for the first alternative (Fig. 2.8). The two new
men, however competent and however quickly recruited, will require training in the task by one of the experienced men. If this
takes a month, 3 man-months will have been devoted to work not in the
In the

first

original estimate.

Furthermore, the task, originally partitioned three

ways, must be repartitioned into ^we parts; hence some work


already done will be

lost,

and system testing must be lengthened.

So at the end of the third month, substantially more than 7 manmonths of effort remain, and 5 trained people and one month are
available. As Fig. 2.8 suggests, the product is just as late as if no
one had been added (Fig. 2.6).
To hope to get done in four months, considering only training
time and not repartitioning and extra systems test, would require
adding 4 men, not 2, at the end of the second month. To cover
repartitioning and system test effects, one would have to add still
other men. Now, however, one has at least a 7-man team, not a
3-man one; thus such aspects as team organization and task division are different in kind, not merely in degree.

Notice that by the end of the third


black.

The March

1 milestone has not

month

things look very

been reached

in spite of all

Regenerative Schedule Disaster

25

Training

complete
2

5 programmers
for 7+ m/m

Months

Figure 2.8

The temptation is very strong to repeat the


cycle, adding yet more manpower. Therein lies madness.
The foregoing assumed that only the first milestone was
misestimated. If on March 1 one makes the conservative assumption that the whole schedule was optimistic, as Fig. 2.7 depicts, one
the managerial effort.

wants

to

add 6 men

just to the original task. Calculation of the

training, repartitioning,

for the reader.

system testing

Without

Adding manpower

number

of

would rescheduling with the

men, unaugmented.

Oversimplifying outrageously,

This then

an exercise

a doubt, the regenerative disaster will

yield a poorer product, later, than


original three

effects is left as

is

to

late

we

state Brooks's

software project makes

the demythologizing of the

months of

a project

depends upon

Law:

it later.

man-month. The
its

sequential con-

26

The Mythical Man-Month

The maximum number of men depends upon the number


From these two quantities one can derive
schedules using fewer men and more months. (The only risk is
straints.

of independent subtasks.

product obsolescence.)
ules using

One cannot, however, get workable sched-

more men and fewer months. More software

have gone awry for lack of calendar time than for


combined.

all

projects

other causes

You might also like