> -----Original Message-----
> From: [EMAIL PROTECTED] On Behalf Of Rich Kulawiec
> Sent: Saturday, October 31, 1998 7:19 AM

> ... running software that's (25 years) old is a sign
> of gross incompetence and negligence,

So if you have an application that works, that hasn't had a
bug reported in years, that fulfills requirements that haven't
changed and are unlikely to change (unless people stop having
"birth dates" or we add a new month to the year or street
addresses fall out of use), that has ported easily to new
platforms as they have come along, and that was written
20 years ago, you'd throw it away?


> and I'd instantly fire anyone in my organization who
> allowed it to happen.

You have an organization?  That makes you a manager, a
pointy-haired-boss, a bean-counter, and a number of other
things you seem to hate.  Do you really fire people who
violate one of your strange set of prejudices?


> Folks, computers are no longer capital investments.  They are
> consumables, with a short useful lifespan, beyond which they
> cease to save/make you money and start instead costing you money.
> The same is true of software:

My first PC cost about two-months's income; the current one cost
about two day's and is 100-200 times as powerful.  Software, on
the other hand, still costs a buck or so per line of code to write
and requires intelligence, insight, engineering savvy, and 
diligence to be applied continuously during its creation.


> The problem is that bean-counters don't get it.  They seem
> to think of hardware/software as "investments", which is about
> as stupid as thinking of a car as an "investment".

Sounds like you drive a '75 VW or a '85 Yugo.  Let's see, a
company spends $250,000 developing a modest-sized program that
automates a chunk of their business and saves them $100,000/year,
and they're stupid to think of that as an investment?

 
> Folks, I want to change your thinking about how you architect systems,
> whether they be hardware or software or both.  The change is this:
> 
>       Design them to be thrown away.

This is a horrible perversion of the old adage "build the first
one to throw away" which I think Fred Brooks quotes in Mythical
Man-month.  "Junk software," software that's thrown together on
a death-march schedule with no thought of long-term maintainability
or enhanceability, no system-level integration or engineering,
is becoming endemic in our industry.  It comes from the biggest
established companies and the smallest garage start-ups.

I personally blame the problem in large part on the widespread
use of write-only languages, languages that make it difficult to
write readable, understandable, easy to change code.  Sure, good 
programmers can write this kind of code in anything, including
hex machine code, but some languages make it easier than do 
others.  This was probably the foremost requirement for Ada;
Gosling doesn't even mention "readability" or "maintainability"
in any of his white papers about the design of Java and it is
supposedly an improvement on C and C++. Perl seems to be 
challenging APL as the ultimate unreadable language.


> That means writing portable software;

The rule of thumb is that making something portable requires about
three times the development cost of not doing so.  You have to
test for portability by actually doing ports; anything less is
just hot air.  It's much better to use a language that is known
for portability (FORTRAN, COBOL, Ada, UCSD Pascal, maybe Java
someday; certainly not C, C++, Perl), use solid, long-term
standards (SQL, TCP/IP, maybe CORBA), and enforce some simple coding
standards (no embedded machine code, isolate platform dependencies).


> it means writing simple applications and
> not massive over-complex ones;

Nah, you're better off having "massively over-complex" as one
of your main explicit requirements.  Otherwise you might
forget to do it that way.


> Sure, there are problems that can't be solved this way ...
> Weather prediction ...  But the everyday problems --
> web servers and web applications and the like -- are very
> susceptible to this methodology.

News flash for Rich: web servers and even web applications
aren't "everyday problems;" they're being done by a tiny,
tiny minority of the software developers in the world. For
every one person developing a web server there are probably
10,000 working on an accounting program that has nothing
whatsoever to do with the web, never will, and shouldn't.
Even web applications these days still tend to be small
auxiliary functions tacked on to large legacy systems to
duplicate over the web access that had been done with local
workstations.  When we finally start writing big mission-
critical systems like accounting or inventory to be
web-based, they will have the same general characteristics
and problems as the equivalent ancient 3270-based systems.

 
> ... I know that bean-counters are
> genetically incapable of seeing any further, but it's
> the cheaper and better approach for the long run.

And what Fortune 500 companies have you run to demonstrate
the success of your approach?  I know that this is a
strange idea, but it could be that the bean-counters and
managers know something that you don't.

Bob Munck

____________________________________________________________________
--------------------------------------------------------------------
 Join The Web Consultants Association :  Register on our web site Now
Web Consultants Web Site : http://just4u.com/webconsultants
If you lose the instructions All subscription/unsubscribing can be done
directly from our website for all our lists.
---------------------------------------------------------------------

Reply via email to