[lug] software engineering
zlynx at acm.org
Mon Nov 13 11:22:59 MST 2006
On Sun, 2006-11-12 at 23:44 -0700, Nate Duehr wrote:
> I was typing up a long reply to all the points, because I find many of
> these things a lot of fun to talk about -- not being much of a software
> developer but having worked on the receiving end (technical support) of
> both good and bad software for most of my adult life, I (think) I have a
> unique perspective, as do you.
> I have contended for years that so-called Software Engineers don't play
> by the same rules that Civil, Chemical, Structural, Electrical, and
> other Engineers live by -- the industry just barely makes a half-hearted
> effort at it. What I mean is, the creativity and drive are there of
> other Engineers, but the discipline isn't.
> It shows in the fact that open-source software blows away the
> functionality and features of most "Engineered" code from most businesses.
Civil engineers design and add a *hefty* safety margin. And they miss
things, like resonance frequencies on bridges, and some of the mistakes
made in "quake-proof" buildings in California. And the New Orleans
flood control systems.
Electrical engineers make *plenty* of mistakes. Please read the errata
sheets for various components. Especially interesting are the computer
related ones like SATA and Ethernet controllers, memory controllers, PCI
and PCI Express, etc. CPUs have *many* bugs. There was the old Pentium
divide bug, there was an Athlon 64 prefetch into protected memory
segfault bug, plus hundreds of other little things I can't remember.
It's complexity. Engineers cannot hold everything related to their
project in their heads, and they cannot predict all possible
interactions between components plus the surrounding environment.
Software gets a bad rep because it isn't as critical to get right the
first time as building a bridge, and it is easy to update and fix later,
so perhaps less effort is put into verification. But the customer does
get faster and cheaper in exchange for a few bugs.
I would say really critical software, like F-22 flight control software,
*is* heavily analyzed and tested, and is probably just as reliable as
the mechanical engineering that goes into the wings and engines.
The discipline is there, when it is needed and cost effective.
Really, consider how your boss and users would react if you claimed that
you needed a week to design, analyze and test the Perl script that
reports their maximum disk usage, to make sure it was 100% reliable.
Right, its ridiculous. You just fix it whenever you notice it doesn't
work for filesystems with really long device names.
Zan Lynx <zlynx at acm.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 189 bytes
Desc: This is a digitally signed message part
More information about the LUG