Buggy software

I cannot believe the amount of buggy software there is around, even in mission-critical applications.

Well, I suppose I must believe it, because I see it.

Before I name names, let us consider what constitutes a bug in software. For some, it is a coding error. Whoever commissioned the software said, "It must do this," and if it in fact does do that, they would say it's not a bug. It does not matter how unreasonable "that" is.

I have broader ideas on what constitutes a bug. To my mind, i a program does not conform to its specifications, then to the extent it fails to conform to the specifications it has bugs. For example, a program that is required to accept some data (name, date of birth, address) and store it in a computer database must do that. If there are any circumstances at all where it might fail, it has bugs. It might fail, for example, because it does not defend against the likelihood of two sets of data being added at the same time, with the result one is lost. It happens. Or, it might not check whether data sufficiently similar already exists - if an entry for Minh Le already exists, it would be an error to replace it with data for another Minh Le.

The conditions under which the program fails might be obscure and hard to reproduce, but still a bug is a bug.

I would say that if the specifications are unreasonable or wrong, there is no hope that the program will be bug-free. For example, the specifications might say that dates are stored in the format mm/dd/yyyy. Americans do that all the time, but here in Australia we expect dd/mm/yyyy, so that when an American writes 9/11/2001, and Australian (or Briton) is likely to read it as the ninth day of November. I prefer to display "9/11" as 2001/09/11.

The y2k bug is the best-known bug arising in a program's specifications. Programs, forever, stored the year in two digits - I did so too, in the 1970s, when storage was expensive and the year 2000 was far far away.

I would say a web site (a suite of programs) is buggy i users find it hard to use. Since Firefox and the other Mozilla browsers, popular browsers all, have supported tabs for years, then websites should expect users to use tabs and to work well with them. I don't know how to explain how it arose, but as of now both anz.com.au and etrade.com.au do not work well with tabbed browsers. ANZ is one of Australia's Big Four banks, and ETrade (in Australia) is a fully-owned subsidiary of ANZ, and one of Australia's largest (maybe the largest) online stockbroker. You'd think they would test their websites, and be interested in fixing bugs in them. Not so, it seems.

For a program to be usable, it must be documented, and that document must be understandable to the target audience, and complete.

For example, ebay.com.au. I know of a bug there too. I like to use good solid passwords, like this "31JD~tzgc". (I don't use that one any more, and even if I did, you'd still need the context in order to use it). Typing passwords like that is a Right Royal Pain, so I copy and paste (which is extremely easy on Linux). At some point some Bright Spark at ebay thought that they'd change the rules, so they changed the javascript in the login web page so users cannot do that. I presume they think it enhances security (I don't think it does). What they have not done is document that change, so neither ordinary users not Ebay help desk staff have any hope of sorting it out.