[comp.software-eng] Finishing software

frank@grep.co.uk (Frank Wales) (04/15/91)

In article <1991Apr13.205320.7013@kodak.kodak.com> cok@islsun.Kodak.COM (David Cok) writes:
>A publisher friend once said to me that books were never finished, only
>abandoned, meaning that they were declared complete when the author tired
>of correcting and improving.  Another similarity between books and software...

Hmmm.  The remark by David's friend reminds me of similar remarks I have
sometimes heard, usually from non-technical management/accountant types,
which basically amount to the claim that, if not tightly controlled and
supervised (read:  put under schedule or budget pressure), programmers
will never finish their work; they'll just keep tinkering indefinitely,
forever approaching some posited perfect product.

On talking to such people about their beliefs, they seem based on the
notions that software developers don't care about the bottom line and
must be coerced into doing so, and that software development has more
in common with art than anything else, and *of course* artists never
finish anything either.  :-) (Yes, I consider such people ill-informed
at best, and I do try to do my tuppence worth of persuasion, but it
doesn't help when they can point to some programmer who is the epitome
of the stereotype they accept, while I wonder why they employ that
person, and think about offering my services.)

For myself, I tend to have two kinds of software writing activity:
dinking around with some new (to me, at least) ideas or tools,
usually to learn something, but sometimes just for fun -- I never, ever
consider such things as products; and progressing the work on some
well-defined project which I am commited to completing (for whatever
reason, but generally because some customer is paying me for my efforts).

Now, it seems to me that the only way I can do the latter effectively is
if I have a clear idea of what the finished product will "look" like.
I can't imagine another way of knowing that the decisions I take during
work are effective in bringing me closer to finishing.  (This has little
to do with prior experience either; I've never written a C compiler, but
I know what one is like.  I believe that if I were to write one, I'd know
when to stop and declare it finished.)

I could loosely analogise the software writing process to a journey:
sometimes, I take one for exercise, or because I feel like it, or because
I want to go somewhere new; and sometimes, I have to go somewhere
because it's my job.  As a professional, I don't consider it appropriate,
for whatever reason, to wander around unsure of my "software destination".
--
Frank Wales, Grep Limited,             [frank@grep.co.uk<->uunet!grep!frank]
Kirkfields Business Centre, Kirk Lane, LEEDS, UK, LS19 7LX. (+44) 532 500303