Recently, the London Stock Exchange has faced criticism related to the failed implementation of a new trading system, TradElect. As reported by Reuters on September 8, 2009:
“The London Stock Exchange (LSE.L) suffered its worst systems failure in eight years on Monday, forcing the world’s third largest share market to suspend trading for about seven hours and infuriating its users.”
This failure is one of the more spectacular in terms of publicity and business impact. Making matters worse, the failure occurred at the epicenter of the US credit crisis, right as the US government decided to bail out Freedy Mac and Fannie May.
TradElect is written in c#, leverages the .NET platform and runs on Windows servers. Computerworld’s Steven J. Vaughan-Nichols lays the blame squarely on Microsoft’s shoulders:
“The programmers and serious database administrators in the audience can already see where this is going. Sorry, Microsoft, .NET Framework is simply incapable of performing this kind of work, and SQL Server 2000, or any version of SQL Server really, can’t possibly handle the world’s number three stock exchange’s transaction load on a consistent basis.”
I find this logic frightful and shortsighted. Having been involved in hundreds of system deployments, I have seen systems fail for a multitude of reasons; poor design and inefficient coding being the primary suspects. Rarely can one solely blame the underlying platform or operating system. To suggest that the only problem here is Microsoft, and that the same programmers, following the same design and methodologies, but implementing on a Linux platform would not have suffered an equivalent fate is myopic.
As testers our job is to identify the presence and cause of system deficiencies. Blamestorming based on personal bias and hype, such as found in the Computerworld articles, has no place in the world of software and systems delivery.