LSTSRV-L Archives

LISTSERV Site Administrators' Forum

LSTSRV-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
"Eric Thomas (CERN/L3)" <ERIC@LEPICS>
Tue, 7 Feb 89 11:39:40 GMT
text/plain (58 lines)
I have  been asked to  provide some information about  the number of  lines of
code in LISTSERV,  the time it took me  to write it, etc. I do  not believe in
evaluating the  amount of programming time  required by a project  by dividing
the amount  of lines  of code  by some  managerial constants  which supposedly
represent the average efficiency of a  programmer, but I respect the religious
beliefs of other people, so here's the info.
 
LISTSERV is comprised of 12750 lines of documentation and 35500 lines of code,
of which  6300 are in  assembler (the rest  being REXX). The  documentation is
quite a bit verbose, as I enjoy  writing in English (I take documentation as a
pseudo-literary  break in  my grim  everyday world  of americanized  technical
jargon). However, the code is relatively  compact, because I am very lazy :-),
and do not  particularly enjoy writing these meaningless  sentences using this
ridiculous vocabulary of 50  words or so. Have a look at the  REXX part of the
survey exec  for an example;  another example  could be the  LISTSERV database
functions, which  fit in 2400 lines  of code (1100 assembler,  1300 REXX). The
REXX code contains  almost no comment (comments are for  freaks who can't read
core dumps :-)  ); the assembler code  usually has one comment a  line, plus a
number of  block comments  (I can't  stand waiting  for the  core dump  to get
printed ;-) ).
 
The internals of LISTSERV were rewritten twice since the first version, not in
the "stop  and start  from scratch"  way but  through a  constant evolutionary
process: whenever I needed to change a  module to fix a bug, I would carefully
review all the routines  and usually rewrite them, the first  time to use more
powerful and efficient REXX programming techniques  that I did not know when I
wrote the  very first  version, and  the second (and  most important)  time to
adapt  the  code  to  the  unexpected growth  of  the  product  and  resulting
requirements. The first time LISTSERV had  something like 1/5th of the code it
has today, and  everything was rewritten. The second time,  it had about 2/3rd
of today's  size, and  maybe 2/3rd  of the  code was  rewritten. That  is, the
actual amount of code I ended up writing is about 60000 lines.
 
Most of LISTSERV was  written during the 3 years that I was  a student in Metz
and Paris. I used  to escape the grim world of Supelec  every weekend and come
to  work in  Centrale  (FRECP11).  The first  morning  was  spent reading  and
answering my  weekly couple of hundred  mail files, the afternoon  being spent
working on the system or on other  smaller programs like CHAT or RELAY. Sunday
was usually dedicated to LISTSERV, as I prefer to work with large time slices.
That is, most of LISTSERV took  around 150 sundays to write (14-hours sundays,
but then any managerial book or Supelec  teacher will tell you that the amount
of lines you can write a day does not depend on the number of hours you worked
that day, nor on the programming language you have used). The rest (mostly the
UDD) was  done at LEPICS, where  it is much  more difficult to count  the days
since I am not forced to be away 5 days a week.
 
That  type of  work is  not something  that  you can  bend into  the rules  of
computing project  management books. It is  not something you can  put into an
equation, as in  "150/20 = 7.5 months"  or "60000/150 = 400  lines/day". It is
not something  you can  control, plan,  schedule, monitor,  explain, evaluate,
audit, etc. It is something that may happen, or that may not happen, but which
will  take  place   or  fail  to  take  place  regardless   of  any  of  these
"environmental parameters" that can be controlled by managers. It is clearly a
process that cannot be owned and cannot be controlled, and therefore something
that no manager or politician wants to have to deal with.
 
  Eric

ATOM RSS1 RSS2