
like, is included.
The productivities likewise fall into
two
classifications:
those
for control
programs are about
600
words per
man-year; those for translators are
about
2,200
words per man-year. Note
that all four programs are of similar
size-the variation is in size of the
work groups, length of time, and num-
ber of modules. Which is cause and
which is effect? Did the control pro-
grams require more people because
they were more complicated? Or did
they require more modules and more
man-months because they were as-
signed more people? Did they take
longer because of thi; greater complex-
ity, or because more people were as-
signed? One can't be sure. The control
programs were surely more complex.
These uncertainties aside, the num-
bers describe the real productivities
achieved on a large 5ystem. using pres-
ent-day programming techniques. As
such they are a real contribution.
Figs. 6 and
7
show some interesting
data on programming and debugging
rates as compared to predicted rates.
OSl360
data
IBM
os/360 experience, while not
available in the detail of Harr's data,
confirms it. Product ivities in range of
600-800
debugged instructions per
man-year were experienced by control
program groups. Productivities in the
2,000-3,000 debugged instructions per
man-year were achieved by language
translator groups. Tliese include plan-
ning done by the gr,~up, coding com-
ponent test, system test, and some sup-
port activities. They ,ire comparable to
Harr's data, so far as
I
can tell.
Aron's data, Hanm's data, and the
0~1360 data all confirm striking differ-
ences in productivity related to the
complexity and difficulty of the task
itself. My guideline in the morass of
estimating complexity is that compilers
are three times
as
bail
as
normal batch
application programs, and operating
systems are three times as bad
as
com-
pilers.
Corbato's data
Both Harr's data
and os/360 data
are for assembly language program-
ming. Little data seem to have been
published on system programming
productivity using higher-level lan-
guages. Corbat6 of
MIT'S
Project
MAC
reports, however, a mean productivity
of
1,200
lines of debugged PL/I state-
ments per man-year on the
MULTICS
system (between 1 and
2
million
words)
I71
This number is very exciting. Like
the other projects,
MULTICS
includes
control programs and language transla-
tors. Like the others, it is producing a
system programming product, tested
and documented. The data seem to be
comparable in terms of kind of effort
included. And the productivity number
is a good average between the control
program and translator productivities
of other projects.
But Corbat6's number is lines per
man-year, not words! Each statement
in
his
system corresponds to about
three-to-five words of handwritten
code! This suggests two important con.
clusions
:
Productivity seems constant in terms
of elementary statements, a conclu-
sion that
is
reasonable in terms of
the thought a statement requires and
the errors it may include.
Programming productivity may be
increased
as
much as five times
when a suitable high-level language
is used. To back up these conclu-
sions, W.
M.
Taliaffero also reports
a constant productivity of
2,400
statements/year
in
Assembler,
FOR-
TRAN,
and
COBOL.~
E.
A. Nelson
has shown a 340-1 productivity im-
provement for high-level language,
although his standard deviations are
wide.Pl
Hatching a catastrophe
When one hears of disastrous sched-
ule slippage in a project, he imagines
that a series of major calamities must
have befallen it. Usually, however, the
disaster is due to termites, not torna-
does; and the schedule has slipped im-
perceptibly but inexorably. Indeed,
major calamities are easier to handle;
one responds with major force, radical
reorganization, the invention of new
approaches. The whole team rises to
the occasion.
But the day-byday slippage is hard-
er to recognize, harder to prevent,
harder to make up. Yesterday a key
man was sick, and a meeting couldn't
be held. Today the machines are all
down, because lightning struck the
building's power transformer. Tomor-
row the disc routines won't start test-
ing,
because the first disc is a week late
from
the
factory. Snow, jury duty,
family problems, emergency meetings
with customers, executive audits-the
list goes on and on. Each one only
postpones some activity by a
halfday
or a day. And the schedule slips, one
day at a time.
How does one control a big project
on a tight schedule? The first step is to
have
a schedule. Each of a list of
events, called milestones, has a date.
Picking the dates is an estimating prob-
lem, discussed already and crucially
dependent on experience.
For picking the milestones there is
only one relevant rule. Milestones
must
be concrete, specific, measurable
events, defined with knife-edge sharp-
ness. Coding, for a counterexample, is
"90% finished" for half of the total
coding time. Debugging is
"99%
com-
plete" most of the time. "Planning
complete" is an event one can proclaim
almost at
will.[l01
Concrete milestones, on the other
hand, are
100%
events. "Specifications
signed by architects and implement-
em," "source coding
100%
complete,
keypunched, entered into disc library,"
"debugged version passes all test
cases." These concrete milestones
de-
mark the vague phases of planning,
coding, debugging.
It is more important that milestones
be sharp-edged and unambiguous than
that they be easily verifiable by the
boss. Rarely will a man lie about mile-
None love
the
bearer of bad news.
Sophocles
stone progress,
if
the milestone is so
sharp that he can't deceive himself.
But if the milestone is fuzzy, the boss
often understands a different report
from that which the man gives. To
supplement Sophocles, no one enjoys
bearing bad news, either, so it gets
softened without any real intent to
de-
CL-
ceive.
Two interesting studies of estimating
behavior by government contractors
on large-scale development projects
show that:
1.
Estimates of the length of an activ-
ity made and revised carefully
every two weeks before the activity
starts do not significantly change as
the start time draws near, no mat-
ter how wrong they ultimately turn
out to be.
,
2.
During the activity, overestimates
of
duration come steadily down as
the activity proceeds.
3.
Underestimates do not change sig-
nificantly during the activity until
about three weeks before the
scheduled completion.[11]
I(
Sharp milestones are in fact a ser-
vice to the te&m, and one they can
properly expect from a manager. The
fuzzy milestone is the harder burden to
live with. It is in fact a millstone that
grinds down morale, for it deceives one
about lost time until it is irremedi-
able. And chronic schedule slippage is
a
morale-killer.
"The
other
piece
is
latew
A schedule slips a day; so what?
Who gets excited about a one-day slip?
We can make it up later. And the other
piece ours fits into is late anyway.