I’ve just returned from a pretty interesting week in London mainly catching up with financial analysts, fund managers and the press (I’ve embedded the interview I did with BloombergTV a couple of hours after getting off the flight from SFO-LON).
At this stage (only a couple of months into our IPO on the London Stock Exchange) I find that I have to spend a lot of my time explaining what we do. I suppose that shouldn’t be a big surprise. Outside of ‘techie’ circles WANdisco is still a relative unknown, but I’m pleased to say that’s changing.
Most of the context for the “what we do” is explaining how software is developed in organizations and just how important it is. In the techie bubble that we sometimes live we all take for granted. Marc Andresson famously wrote about “software eating the world” where he argues that “we are in the middle of a dramatic and broad technological and economic shift in which software companies are poised to take over large swathes of the economy.”
Of course I think he’s right. There are plenty of examples where software has replaced the incumbent. My favorite example is the automobile industry where diagnostics used to be a guy under the hood and is now plugging the car into a computer and looking for trouble codes (there are 10 million lines of source code in a Chevy Volt). Or, under the covers, how banks a really software companies employing thousands of software engineers.
It’s even easier to explain how important software is when it goes wrong. The most recent example was at RBS / Nat West.
A software update was applied on 19 June 2012 to the software that controls the payment processing system. It then turned out that the update was corrupted. Customer wages, payments and other transactions could not happen. Millions of customers were unable to withdraw cash using ATMs or see bank account details. Others faced fines for late payment of bills because the system could not process direct debits. It wasn’t until mid July that the problem was finally rectified.
As one customer put it:
“I was due to have my wages paid in today – but they haven’t appeared in my account. This means I simply can’t afford to pay my weekly bills.
“I also had to pay the deposit for my daughter’s headstone today – she was stillborn seven weeks ago. No wages therefore no headstone.
“I am so angry about the technical glitch, as they call it, because this now means I’ve got to wait another week before having a day off work so I can go and pay for the headstone.”
The cost to RBS is unknown – but it could be billions.
At the heart of the problem was version control and release management of software.
According to current and former employees controls were not in place and it was difficult to know exactly what software was even running in the production system. Release Management is supposed to be the ‘gatekeeper’ between the test & QA system and the production environment and clearly this was missing here. In mission critical environments such as this there should be very strict controls in place.
Bugs exist in software, of course they do, human beings create software. Companies employ systems such as software version control, source code reviews, QA, release management, staging, and integration testing to avoid this happening. Modern software in today’s market should employ continuous integration testing. This should ensure that every new line of software is changed it is tested across thousands and thousands of different test cases to see if anything is broken. This reduces time to fix and also reduces even the chance an error will make it to QA.
Software is everywhere – it’s in your car, refrigerator and phone. It’s not a nice to have – it’s a must have. Banks and other finance companies have been transformed by software over the last 30 years. Virtually all financial transactions, from someone buying a sandwich to a multi-billion pounds trading, is done in software. That’s great but it presents risks – mission critical applications such as this can’t have bugs – full stop and process and modern tooling is not an option it’s a must. Missile defense systems can’t have bugs; neither can medical devices such as heart pacemakers. So you see it is possible to deliver software without bugs you just need good tools and processes.