Software: So Bad, It Can Only Get Better
by Paul A. Strassmann
Computerworld
December 9, 1996
Software can easily rate among the most poorly constructed, unreliable
and least maintainable technological artifacts ever invented by man --
with perhaps the exception of Icarus' wings.
Nobody would tolerate telephones that crash every other day. Nobody
would buy a house if taxes and upkeep were seven times the purchase
price. Nobody would acquire a microwave oven if it meant rewiring the
entire house every time some other new appliance was plugged in.
Absolutely nobody would spend a year's rent to replace all doors
because somebody attached the hinges with only two screws instead of
the required four.
Yet these are the analogies executives think of when systems developers
explain why it's hard to implement an important new technology. No wonder
executives become exasperated. No wonder they turn to vendors who can
make the software mess disappear from sight, whatever the cost and
whether or not they fix what was wrong to begin with.
Still, the suffering goes on. There is always a champion who demands
that IS develop a new computer application for coping with operating
problems. What champions and their followers don't understand is that
applications become increasingly difficult to service over time as an
unceasing stream of upgrades and what is loosely called
``maintenance'' replaces what was previously constructed at great
expense.
Software does not physically wear out. It is supposed to improve with use
as errors are discovered, then corrected. Yet, software tends to
degenerate much faster than any computer equipment - or any other
consumer appliance or consumer good - because of its inherently poor
characteristics.
Software Characteristics
Software becomes obsolete because programmers and vendors can't keep
up with rapid change coming from many directions.
Here are some of the sources of disturbance:
Increasing Incompatibility
There is the erosion in compatibility in the microprocessor
architecture upon which all operating systems are constructed. The
capacity to pack millions and soon billions of semiconductor elements
on a silicon chip corrodes the foundation on which everything else is
constructed. As hardware moves from an eight-bit processor to a 64-bit
processor, all of the software must be adapted accordingly. As
communication speeds quicken, the concept of what must be processed
centrally and what can be handled locally undergoes radical change.
The layers upon layers on which the useful applications rest are not
bedrock, but continually shifting quicksand. No wonder what rests on
top is prone to sudden collapse.
Creeping Featurism
The software market, with its rapidly changing cast of suppliers, is a
rat race fueled by generous advertising allowances, conventions,
magazines and clever vendor tactics that support only the latest
version of a software package. Under such conditions programmers have
little incentive to create something of more than immediate use.
Unqualified Programmers
Even though the market will deliver, in due course, operating system
platforms that are more stable than what's out there at the time, it's
unlikely that most programmers will have the incentives to program
reliable applications unless management insists on and verifies them.
Most of today's programming of business applications is not done by
programming professionals. It is performed by amateurs whose
competency has never been formally tested. Plumbers, beauticians and
truck drivers are subjected to tougher certification standards than
those who deliver most business applications. It is office workers who
write applications for data management, financial analysis and
report-retrieval.
These amateur programmers are self-taught refugees from careers like
accounting, chemistry or jazz. They work on unreasonably short
deadlines. They have at their disposal mediocre testing and
integration tools. They report to ill-informed corporate bureaucrats
who believe the advertising claims that writing significant
applications is as easy as using a spreadsheet.
Short term-thinking
The year 2000 bug is only one example of the short-sightedness of what
some claim to be a professional occupation. A typical programmer makes
hundreds of such myopic decisions. They just follow management's
wishes for speedy completion and minimal expense. The only reason why
the year 2000 bug has attracted so much attention is because it is
ubiquitous and has a definite deadline when its effects will become
universally observable. There are millions of other bugs just as
negligent but they pop up randomly, one location at a time, most
likely costing more than the $300 billion for the threatened collapse
in 37 months.
Tolerance of pain
IS managers are willing to accept frequent systems crashes from
software incompatibilities as a natural phenomenon. It's all a matter
of conditioning. Businesspeople expect to get a dial tone from their
phone 99.99% of the time. Most users of personal computers consider
themselves lucky if their desired applications stay up for a week
without some mishap. Conditioning to pain can make people tolerant to
pain, even if they don't like it.
Prospects for recognizing total costs
Though erosion in compatibility, creeping featurism, unqualified
programmers and vendor incentives result in conditions that are
wasteful and onerous, all of that must be corrected in due course.
Competent management will accept damage to its business only if the
effects are either insignificant, or if a remedy is unavailable. I'm
confident that the current state of the software business will not be
allowed to continue. The costs are not insignificant and in many cases
represent a considerably greater percentage of corporate profits than
before.
With regard to the remedies, I expect that sooner or later some vendor
who seeks to gain an inordinate competitive advantage will start selling
computer technologies that recognize the total costs of the customer's
ownership instead of just the purchase price of what they sell.
Icarus' wings were said to be held together only with wax that ultimately
melted. Yet, progress overcame even this improbable feat. The history of
technology and competition proves us that quality, reliability and ease of
use will always prevail.
In software's case, that's likely to happen soon. There are just too many
businesses than can't keep up with wasting money on shoddy programming
solutions.
Copyright 1996 by IDG Communications, Inc.,
500 Old Connecticut Path, Framingham, MA 01701.
Reprinted by permission of Computerworld
Go back up to the Strassmann, Inc. home page.