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