Newsgroups: comp.edu,comp.object,comp.lang.c++,comp.lang.smalltalk,comp.software.testing
Path: cantaloupe.srv.cs.cmu.edu!europa.chnt.gtegsc.com!news.mathworks.com!newsfeed.internetmci.com!tank.news.pipex.net!pipex!swrinde!emory!cssun.mathcs.emory.edu!wa4mei!news.randomc.com!macshack.com!netcom.com!nntpuser
From: scottw@advsysres.com (Scott A. Whitmire)
Subject: Re: Software Engineering Doesn't Exist [was: C Hackers]
Message-ID: <nntpuserDC3pG4.CxJ@netcom.com>
Sender: netnews@mork.netcom.com
Nntp-Posting-Host: advsysres.com
Reply-To: scottw@advsysres.com (Scott A. Whitmire)
Organization: Advanced Systems Research
X-Newsreader: IBM NewsReader/2 v1.09
References: <3ulkoh$mui@handy.gr.com> <denatale-2107950011190001@grail519.nando.net> <3uoc7p$4ka@handy.gr.com> <jnedzelDC2os8.FsM@netcom.com>
Date: Sat, 22 Jul 1995 04:50:28 GMT
Lines: 38
Xref: glinda.oz.cs.cmu.edu comp.edu:13486 comp.object:35430 comp.lang.c++:139974 comp.lang.smalltalk:26216 comp.software.testing:5315

In <jnedzelDC2os8.FsM@netcom.com>, jnedzel@netcom.com (Jared Nedzel) writes:
>
>In civil engineering, be it bridge design, building design, dam
>design, etc., the implementation details *must* be considered
>very early in the design process.
>
>Now I'm not advocating that we do the same in software engineering.
>I think at this point the analogy is essentially broken.
>

But, I have found that we MUST do the same is software engineering. We ignore
the implementation details to our peril. Now, most of the time, this isn't a problem,
since, for any given design feature, we've either implemented it before, or know of
an implementation. However, if we design a feature that we have not implemented, have
no immediate idea of how to implement it, and know of no other attempt to implement
it, we'd better just drop everything and try to implement it with a prototype, to see
if it can be implemented. If you read about the history of the construction of the
pyramids in Egypt, and the cathedrals in France, you will understand what happens when
design does not take implementation details into account. (For those of you who don't 
know that history, there is considerable evidence, and some documentation, of
mid-construction design changes because something didn't work. The builders of these
structures relied heavily on experimentation and failure to see what worked and what
didn't).

I'm not sure the analogy is broken. I'm not real sure it's even any weaker. My own
experience tells me otherwise. My methods have gotten more formal, and I spend far more
time in design working on implementation details than I used to. This is for several
reasons: the quality of both my designs and the resulting software keep improving, and
I am able to handle more difficult problems by myself than I could even imagine doing 
several years ago.

Scott A. Whitmire             scottw@advsysres.com
Advanced Systems Research     
25238 127th Avenue SE         tel:(206)631-7868
Kent Washington 98031         fax:(206)630-2238

Consultants in object-oriented development and software metrics.

