From: scs@adam.mit.edu (Steve Summit)
Subject: Re: Will we keep ignoring this productivity issue?
Organization: none, at the moment
Date: Mon, 16 Nov 1992 16:00:26 GMT

In article <1992Nov11.055130@eklektix.com>, rcd@raven.eklektix.com (Dick Dunn) writes:
> This was in the "productivity of a C programmer" thread, about a week ago.
> I haven't seen anyone picking up on it... Bob Munck (munck@stars.reston.
> unisys.com) wrote:
> 
>> ...However, it is a fairly-well-established rule of thumb that
>> very good programmers can be an order of magnitude or more productive than
>> the average and do a good job...
> 
> We toss this number around a lot.  A couple years ago I tossed it at a
> friend...  But
> his retort came from a direction I hadn't expected: he said "It's more like
> *two* orders of magnitude!

Actually, I had been tempted to comment on Bob Munch's earlier
remark, to point out that the infamous Jargon File (a.k.a. The
New Hacker's Dictionary), for what it's worth, has this to say
about productivity:

	...Productivity can vary from one programmer to another
	by three orders of magnitude.  For example, one
	programmer might be able to write an average of 3 lines
	of working code in one day, while another, with the
	proper tools, might be able to write 3,000.  This range
	is astonishing; it is matched in very few other areas of
	human endeavor.

This note appears in the entry on "superprogrammer," a term which
the File notes "is more commonly used within such places as IBM
than in the hacker community."

You might reasonably suspect that the several appearances of the
term "hacker" in such close proximity to the above-quoted
statement dilute the credibility of its three-orders-of-magnitude
claim, or relegate such code to the undocumented & unmaintainable &
hence worthless category.  The File's discussion on productivity
continues, however, with the observation that

	[Such terms tend] to stress naive measures of
	productivity and to underweight creativity, ingenuity,
	and getting the job *done* -- and to sidestep the
	question of whether the 3,000 lines of code do more or
	less useful work than three lines that do the {Right
	Thing}.

It doesn't really matter whether you believe that the factor is
20 or 100 or 1000; the point is that the factor is definitely
large.  And the suggestion that apples and oranges are being
compared -- that the prodigy can code thousands of <choose your
metric> per day only for certain kinds of projects or only by
neglecting all documentation or only by being antisocial and not
interacting with others -- is sort of dodging the issue: perhaps
it's worth contemplating for a moment the qualities of programs
and the methodologies which do permit such productivity, and
trying to recast recalcitrant projects in more favorable terms.
I love it when some intractable programming task (ugly, grisly,
special-cased grunge code that's impossible and no fun to write
and is guaranteed to have lots of nasty bugs) can, by means of
some change in methodology or avenue of attack or mere outlook,
be transformed into blissfully clean code that practically writes
itself.

I agree completely with Dick that it would be valuable to better
understand the factors (whatever they are; internal or external
or otherwise) which allow some programmers to be so much more
productive than others.  That there is a productivity
differential is not unique to programming, but the reasons behind
the differential are more likely to be.

I've neglected to honor Dick's Followup-To and have added a third
crosspost; please redirect followups appropriately (software
engineering to comp.software-eng, Jargon File to
alt.folklore.computers).

					Steve Summit
					scs@adam.mit.edu