Benjamin Scott wrote:
> 
> 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.

NO!!  I've overseen software development.  The code is NOT, repeat,
NOT, the design.  The design is the functional description of what the
CODE does / will do.  The code could be in C, Pascal, LISP, VB,
whatever, and still perform the functions (ok, maybe not VB, but you
get the idea).

> 
>   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.

Why is it highly coupling?  Because we build it that way.  It DOESN'T
HAVE TO BE BUILT THAT WAY!!!!  IF you follow the Unix philosophy, and
good OO practice, you don't build it that way.

> 
>   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.

see above.  We don't have to keep doing this.  

> 
>   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.)

This I can agree with.  

> 
>   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].

Yep, design components.

> 
> > 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.

Actually, you also get the product (for a fee, because it's made of
material).  What you really pay Boeing for is their expertise in
building solutions to your problem (moving cargo long distances,
through the air).  You could build aircraft yourself (believe it or
not, they teach it in school, you can get all the blueprints).  Some
people do (we have some here in Brookline, NH).  So why go to Boeing? 
Because of their expertise in building that solution, including the
customizations and getting it FAA certified.
BTW:  You can, if you want, tear that Boeing jet into a bazillion
piece & put it back together.  Try doing that with proprietary 
software.

> 
>   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.
> 

Which is what Boeing, Ford, GM, AirBus, et al are really selling.  


>   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?    |
> 
ps:  I like the sig.


-- 
jeff smith
---------------------------------------------------------------------------------
thought for the day:  A doctor was stranded with a lawyer in a leaky
life raft in shark-infested
waters. The doctor tried to swim ashore but was eaten by the sharks.
The
lawyer, however, swam safely past the bloodthirsty sharks. 
"Professional
courtesy," he explained.

**********************************************************
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