Well, in "hardware engineering", the first thing is probably a
prototype or proof-of-concept. It's a hack. Some of them can be quite
ugly (sheet steel, bar stock, etc) and inelegant. But once the idea is
seen to work (or be workable), then things start to be optimized a
little bit, because now the engineers start figuring out what needs to
be done to make X thousand at Y price point.  Even during the
production run, changes get made to the design (supply V's price
changes, quality of supply W isn't as good, etc), product is currently
too expensive so make it cheaper, etc...

Why should we think that software "engineering" should be perfect from
the getgo, when other production engineering disciplines clearly are
not so in the Real World (i.e, the world where things have to get
done, out the door, and just more or less work)?

About the only engineering disciplines that seem to need to be Right
at the getgo are civil, aeronautical and biomedical engineering. There
tend to be people's lives (or they're singular entities...) on the
line in those disciplines, which skews the fudge factor greatly.

-cl

On 8/20/05, Chris Game <chrisgame / example.net> wrote:
> James Britt wrote:
> 
> > ...typically the goal is to get code to run, and run right, and
> > then refactor to beauty.
> 
> Is that what they teach in schools these days? What happened to
> software engineering?
> 
> --
> Chris Game
> 
> "It's not a good idea to look too hard at the words, they
> resent it."  -- T. Pratchet, "Mort".
> 
>