The reductionism behind today’s software-
engineering methods breaks down in the face
of systems complexity.
BY ian sommeRViLLe, DaVe CLiFF, RaDu CaLinesCu,
Justin Keen, tim KeLLY, maRta KWiatKo WsKa,
John mCDeRmiD, anD RiChaRD PaiGe
Large-scale
Complex
it systems
on The Af Ternoon of May 6, 2010, the U.S. equity
markets experienced an extraordinary upheaval. Over
approximately 10 minutes, the Dow Jones Industrial
Average dropped more than 600 points, representing
the disappearance of approximately $800 billion of
market value. The share price of several blue-chip
multinational companies fluctuated
dramatically; shares that had been at
tens of dollars plummeted to a penny
in some cases and rocketed to values
over $100,000 per share in others. As
suddenly as this market downturn oc-
key insights
Coalitions of systems, in which the system
elements are managed and owned
independently, pose challenging new
problems for systems engineering.
When the fundamental basis of
engineering—reductionism—breaks
down, incremental improvements to
current engineering techniques are
unable to address the challenges of
developing, integrating, and deploying
large-scale complex it systems.
Developing complex systems requires
a socio-technical perspective involving
human, organizational, social, and
political factors, as well as technical
factors.
curred, it reversed, so over the next few
minutes most of the loss was recovered
and share prices returned to levels
close to what they had been before the
crash.
This event came to be known as the
“Flash Crash,” and, in the inquiry report published six months later, 7 the
trigger event was identified as a single
block sale of $4.1 billion of futures contracts executed with uncommon urgency on behalf of a fund-management
company. That sale began a complex
pattern of interactions between the
high-frequency algorithmic trading
systems (algos) that buy and sell blocks
of financial instruments on incredibly
short timescales.
A software bug did not cause the
Flash Crash; rather, the interactions of
independently managed software systems created conditions unforeseen