So where did this rogue come from? Did it sneak in while no one was looking? Beat up the guards and smash down the doors? Did some software suddenly go postal after too much stress? Did a spike in the power grid spawn a malevolent mutant that destroyed a half billion dollars in a few minutes?
In a word, no. This was a bug – a software bug, the result of a human software development process.
“Knight chief executive Thomas Joyce told Bloomberg television that the technical problem was the result of new software installed on Tuesday evening to prepare for a new trading program being introduced by the NYSE. Joyce said Knight’s software design was at fault. On Thursday, Knight said the problem had been resolved and that usual business could resume.”
I don’t know exactly what caused this bug or why it wasn’t caught before release. I do know this is the kind of bug that can be found with adequate testing and prevented by good software engineering – I’ve found and removed tens of thousands just like it and prevented more with upstream software engineering.
The media apparently likes rogue algorithm. ”Glitch,” “flaw,” and “issue” are so 2010. ”Bug” is creepy and old hat. I expect we’ll hear more of these “rogues” until it becomes a “meme,” if it isn’t already. Rogue algorithm suggests an uncontrollable and unpredictable menace, like crippling polio and vicious rabid dogs in my childhood neighborhood. Although the odds of an attack were low, the danger and the fear were real. Both of these random biological scourges have been effectively eliminated in American life after many years of focused science and public health policy – when my kids grew up, no such low-level panic ever occurred.
We don’t need to wait for a miracle cure for rogue algorithms. More regulation will not prevent them. All we have to do is apply proven software engineering and testing. Here’s a crib sheet: