As I write this article, I am preparing to jet off to a conference in Melbourne on software testing. Given the parlous state of modern software, it would be nice if more people attended these conferences, but small steps first.
There has been much discussion of this topic in the press recently because initiatives have been firing up all over the place: the Jericho Forum here in the UK; the Global Council of CSOs in the US; the US department of Energy using its purchasing clout to persuade Oracle to harden 9i; warnings about the use of Internet Explorer and so on.
Advertisement
Well it's very nice to hear that people are starting to worry about this but what took them so long? The quality of most software has been so poor that we have no real conception of what it's like to have a product that is delivered on time, is easy to use, supports plain English and works first time, every time.
The bottom line is many, and perhaps most, of the failures we experience with software systems could have been avoided through techniques we are already familiar with.
Do not accept excuses like, "we need to upgrade ...", or "the users did not read the manual ..." (which seems to be in Klingon anyway), or "we are using old technology ..." or whatever this week's excuse is. The brutal truth is we do not train software developers to be engineers - so we shouldn't really call them engineers.
Software testers frequently enjoy the same status in a company as the office cat, requirements are often missing, optional or treated as entirely superfluous, deadlines are set by pins in calendars, and project planning and tracking is something that other people do. I expect some readers might be a little shocked by this but it's a fair summary of the conclusions of recent reports worldwide.
Even when we have buckets of money, we seem to find it hard going. Consider the F/22 Raptor, the latest and greatest US fighter plane. According to the The Washington Post, in 2003, test pilots were spending 14 minutes on each flight rebooting critical systems but this is now down to "only" 36 seconds a flight. Well that's a relief. We are talking about missile control systems, by the way.
Given that we are talking about it, are we going to act? Well, every little helps. I will be joining the University of Kingston starting this month to set up a new centre for Forensic Software Engineering. It will join existing groups at Middlesex (specialising in project failures) and also Glasgow. The theme is simple: find out what failed and how to avoid it so it doesn't happen again.
When a bridge fails, we go to great lengths to find out why and disseminate this information. When software fails, we utter an oath and reboot, expunging all evidence. According to the Royal Academy of Engineering, several billion pounds a year is wasted on software failures in the UK alone.
These new centres will need data and financial support. Your country's software needs you.
Do you agree?
Have your say on this article