On Tue, 16 May 2000, Jeffry Smith wrote:
> I'm reading a great book called "The Software Conspiracy."  It's not 
> about a true conspiracy, but about why so much software is bad...

  I've heard this comparison before, and there *are* differences between
software engineering and other kinds of engineering.

  First and foremost: In every other field, engineers are creating designs for
a product.  The product may be an airplane, a building, or a metal box, but
the engineers are designing one.  The designs are then used to build the
product.

  In the software engineering field, the design *is* the product.

  This is something that is often overlooked or not fully comprehended.  You
design a car once, and then make a million of them.  But you design a program
once.  To make another program, you design another one.

  The other big difference in software engineering is the high coupling.  
Anyone who has ever had to maintain a non-trivial computer system knows that
even the simplest of changes can cause huge problems with seemingly unrelated
systems.  If you have a problem with the engine on an airplane, you look at
the engine.  Maybe the engine mounts.  But if airplanes were like software, a
burnt-out reading light would cause the wings to fall off.

  This leads to a secondary problem: When Boeing designs a new jet, they can
easily reuse (for example) the seats from previous aircraft.  The seats have a
known specification and can be expected to behave the same in the new
aircraft.  With software, all too often, anything more complex then a
push-button needs to be designed from scratch.

  Now that I've enumerated these differences, am I going to say software
makers should be excused from liability?  No.  Just because their job is
harder doesn't mean they are excused from doing it.  Life is hard.  Deal with
it, or get out.  If you sell me a product -- be it a jet or an OS -- you had
better make sure you have done a good job, or I'll be wanting my money back.

  How does this related to Linux, the topic police want to know?  Two ways.

  First, most software companies won't give you your money back.  After
awhile, I got tired of that.  If I'm going to have to live with defective
products, you can be sure I don't want to pay for them.  When Windows breaks
down, I'm doubly pissed, because I *paid* for that breakdown.  With Linux --
hey, it's free.  So what if it isn't perfect?  (And I can always improve it
myself.)

  Second, and more importantly, the Unix Philosophy [1] of putting many small
tools together to make a working system helps reduce coupling.  Write
/bin/sort once, make sure it works, and then use that whenever you need to
sort something [2].

> Every plane, every satellite, the blueprints & design documents are
> reviewed at multiple levels, including outside the company.  Boeing makes
> those blueprints available to the companies that service their aircraft,
> along with tons of documents on how to repair the aircraft.

  Of course, with your traditional, closed-source software business, that
won't happen.  Again I stress: The design *is* the product.  Boeing can give
away their designs because they make jets.  A software company makes designs.

  This is why I think, ultimately, the open-source model is superior.  Oh,
sure, it eliminates a large market segment.  If you give away the product (the
code), you cannot make money selling it.  The service segment remains, of
course, but selling services is not the same as selling a product.

  However, the traditional, closed-source model *simply doesn't work*.  Not
for consumers, anyway.  And anything that doesn't work for the consumer will
ultimately fail in a free market [3].

Footnotes
---------
[1] http://www.hex.net/~cbbrowne/unix.html
[2] I am well aware of the irony of Red Hat's recent attempt to "improve"
    sort(1) which back-fired and broke it.  There is a lesson there.
[3] Note well that a company wielding monopoly power violates the principles,
    if not the definition, of a free market.

-- 
Ben Scott <[EMAIL PROTECTED]>
| Why isn't phonetically spelled that way? |
| Why is abbreviation such a long word?    |


**********************************************************
To unsubscribe from this list, send mail to
[EMAIL PROTECTED] with the following text in the
*body* (*not* the subject line) of the letter:
unsubscribe gnhlug
**********************************************************

Reply via email to