From: lamaster@pioneer.arc.nasa.gov (Hugh LaMaster)
Subject: Productivity Data (was Re: Will we keep ignoring this productivity issue?)
Organization: NASA Ames Research Center, Moffett Field, CA
Date: Mon, 16 Nov 1992 20:14:53 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.

Unfortunately, I don't have a new data point for C programmers.  If you can
stand to consider the ugliness of RPG and JCL, there is a recent article 
in the "Software Engineering Journal" on this subject.

|> >...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 who does a lot of real-time, control-system, etc. programming...just
|> to test his reaction, since he's generally good for a strong opinion.  But
|> his retort came from a direction I hadn't expected: he said "It's more like
|> *two* orders of magnitude!  You get the first order-of-magnitude difference
|> when the code is written.  The second comes during maintenance."  (Cf. also
|> Mark Terribile's comments about changes being made to the best code, because
|> it's the code people can figure out how to change.)
|> 
|> Well, maybe the difference is an order of magnitude, maybe two.  Be very
|> conservative, go below the geometric mean; assume it's only a factor of 20.
|> 
|> *ONLY*???


The data, in "A software development postmortem summary", are as follows.
The project involved the use of RPG, JCL, screen management, data-file
specifications, etc.  A very different environment than the C environment
referred to in the original posting.

Classifying by experience ONLY, the authors found the following:

Experience Class         Years of Exp.            LOC/month  Errors/KLOC
______________________________________________________

Inexperienced             0-2                      259        13.6
Moderately Experienced    3-7                      692         8.3
Experienced               8+                      1195         5.3


Now, when you consider the presumed cost of an error, the 4-5X difference
in productivity is magnified (introduce your favorite method of
dealing with cost of errors here).

***********************

Herewith the reference:

Formatted:
**********

Tsui, F., S. C. Hofmann, and W. J. Goldstrohm, Jr., "A software
     development post-mortem summary," Software Engineering Jour-
     nal, vol. 7, no. 4, pp. 277-284, IEE/BCS, London, July,
     1992.  Comment [Hugh LaMaster, personal comment]:  Project
     was in RPG, JCL, etc.  Experienced programmers were 5 times
     faster than inexperienced programmers with 40% of the er-
     rors.   Inexperienced ( 0-2 yrs.)          259 LOC/month
     13.6 errors/KLOC Moderately experienced (3-7 yrs.)  692
     LOC/month  8.3 errors/KLOC Experienced ( 8+ yrs.)
     1195 LOC/month  5.3 errors/KLOC

     Software development requires the integration of many con-
     cepts and activities.  We looked at five key elements: peo-
     ple, functions, schedule, tools and processes.  These five
     elements and their dynamics are discussed in the context of
     a business applications project.  This analysis is performed
     in the spirit of a project post-mortem, as encouraged by
     Abdel-Hamid and Madnick.  It also provides data with which
     other business applications developers can compare.


Bib:
****

%A F. Tsui
%A S. C. Hofmann
%A W. J. Goldstrohm, Jr.
%T A software development post-mortem summary
%J Software Engineering Journal
%V 7
%N 4
%P 277-284
%I IEE/BCS
%C London
%D July, 1992
%K Recommended, software development, productivity, quality
%O Comment [Hugh LaMaster, personal comment]:
Project was in RPG, JCL, etc.  Experienced programmers were 5 times
faster than inexperienced programmers with 40% of the errors.
Inexperienced ( 0-2 yrs.)          259 LOC/month 13.6 errors/KLOC
Moderately experienced (3-7 yrs.)  692 LOC/month  8.3 errors/KLOC
Experienced ( 8+ yrs.)            1195 LOC/month  5.3 errors/KLOC
%X Software development requires the integration of many
concepts and activities.  We looked at five key elements:
people, functions, schedule, tools and processes.  These
five elements and their dynamics are discussed in the context
of a business applications project.  This analysis is performed
in the spirit of a project post-mortem, as encouraged by
Abdel-Hamid and Madnick.  It also provides data with which other
business applications developers can compare.




-- 
  Hugh LaMaster, M/S 233-9,     UUCP:      ames!lamaster
  NASA Ames Research Center     Internet:  lamaster@ames.arc.nasa.gov
  Moffett Field, CA 94035-1000  Or:        lamaster@george.arc.nasa.gov 
  Phone:  415/604-1056                     #include <usenet/std_disclaimer.h> 
Newsgroups: comp.software-eng