Page 40 -
P. 40
CHAPTER 1 THE PRODUCT 11
hypertext and a variety of visual and audio formats). In essence, the network becomes
a massive computer providing an almost unlimited software resource that can be
accessed by anyone with a modem.
Artificial intelligence software. Artificial intelligence (AI) software makes use
of nonnumerical algorithms to solve complex problems that are not amenable to
computation or straightforward analysis. Expert systems, also called knowledge-
based systems, pattern recognition (image and voice), artificial neural networks,
theorem proving, and game playing are representative of applications within this
category.
1.3 SOFTWARE: A CRISIS ON THE HORIZON?
Many industry observers (including this author) have characterized the problems
associated with software development as a "crisis." More than a few books (e.g.,
[GLA97], [FLO97], [YOU98a]) have recounted the impact of some of the more spec-
tacular software failures that have occurred over the past decade. Yet, the great suc-
“The most likely way cesses achieved by the software industry have led many to question whether the term
for the world to be software crisis is still appropriate. Robert Glass, the author of a number of books on
destroyed, most
experts agree, is by software failures, is representative of those who have had a change of heart. He states
accident. That's [GLA98]: “I look at my failure stories and see exception reporting, spectacular fail-
where we come in; ures in the midst of many successes, a cup that is [now] nearly full.”
we're computer It is true that software people succeed more often than they fail. It also true that
professionals. We
cause accidents.” the software crisis predicted 30 years ago never seemed to materialize. What we
really have may be something rather different.
Nathaniel
Borenstein The word crisis is defined in Webster's Dictionary as “a turning point in the course of
anything; decisive or crucial time, stage or event.” Yet, in terms of overall software qual-
ity and the speed with which computer-based systems and products are developed,
there has been no "turning point," no "decisive time," only slow, evolutionary change,
punctuated by explosive technological changes in disciplines associated with software.
The word crisis has another definition: "the turning point in the course of a disease,
when it becomes clear whether the patient will live or die." This definition may give us
a clue about the real nature of the problems that have plagued software development.
2
What we really have might be better characterized as a chronic affliction. The
word affliction is defined as "anything causing pain or distress." But the definition of
the adjective chronic is the key to our argument: "lasting a long time or recurring
often; continuing indefinitely." It is far more accurate to describe the problems we
have endured in the software business as a chronic affliction than a crisis.
Regardless of what we call it, the set of problems that are encountered in the devel-
opment of computer software is not limited to software that "doesn't function
2 This terminology was suggested by Professor Daniel Tiechrow of the University of Michigan in a
talk presented in Geneva, Switzerland, April 1989.