Vviewpoints
DOI: 10.1145/1409360.1409371
The profession of iT
evolutionary system
Development
Large systems projects are failing at an alarming rate.
It’s time to take evolutionary design methods off the shelf.
MaNy criTical large
systems are failing. The
replacement FAA air
traffic control system,
the FBI virtual case file,
and the Navy Marine Corps Internet
(NMCI), are a few of the many billion-dollar systems that could not deliver the
functions needed. In stark contrast, the
Boeing 777 aircraft, the Global Positioning System (GPS), and the U.S. Census
database system have been outstanding
successes. Why do some systems fail
and others succeed?
Development time is the critical factor. This is the time to deliver a system
that meets the requirements set at the
beginning of the development process.
If development time is shorter than the
environment change time, the delivered
system is likely to satisfy its customers. If, however, the development time
is long compared to the environment
change time, the delivered system becomes obsolete, and perhaps unusable,
before it is finished. In government and
large organizations, the bureaucratic acquisition process for large systems can
often take a decade or more, whereas
the using environments often change
significantly in as little as 18 months
(Moore’s Law).
The Boeing 777, GPS, and U.S. Census
data systems were developed for stable
environments—they were completed
before any significant changes occurred
in their requirements. In contrast, the
FAA replacement system, FBI Virtual
Case File (see www.spectrum.ieee.org/
sep05/1455), NMCI (GAO4, www.nm-
cistinks.com) all faced dynamic environments that changed faster than their
development processes could. Predecessors of these systems were successful because their environments were
stable, but the current generations en-
countered trouble because their environments had become too dynamic.
The traditional acquisition process
tries to avoid risk and control costs by
careful preplanning, anticipation, and
analysis. For complex systems, this process usually takes a decade or more. Are
there any alternatives that would take
much less time and still be fit for use?
Yes. Evolutionary system development produces large systems within
dynamic social networks. The Internet,
World Wide Web, and Linux are prominent examples. These successes had no
central, preplanning process, only a
general notion of the system’s architecture, which provided a framework
for cooperative innovation. Individuals in the network banded into small
groups to quickly produce or modify
modules in the architecture. They tested
their modules by asking other users to
try them. The systems evolved rapidly
in many small increments that aligned
with current perceptions of the using
environment.
Moreover, the evolutionary process
embraces risk, and the patience to see
what emerges. It works with nature’s
principle of fitness in the environment:
components that work well survive,
and those that do not are abandoned.
The astonishing success of evolutionary development challenges our
common sense about developing large
systems. We need to learn from these
systems, because evolutionary development may be the only way to achieve
satisfactory replacements for aging
large systems and to create new, unprecedented systems.
Evolutionary development is a mature idea that has languished away from
mainstream practice. In this column,
we will analyze why evolutionary development does not fit the current common sense and why we need to work to
change that.
our current common sense
From its founding in 1968, the software
engineering field set out to address the
“software crisis,” a persistent inabil-