Friday, 27 June 2014

Software could be cleverer - but only if software designers think like people

Here's what happens if you type a properly formatted phone number
into many a web form. The error message in red appears.
In my dim distant past I did quite a lot of work on the design of the user interface between people and computers - how you interact with a computer (or these days, often, the web) - and it shocks me how stupid most software still is.

When I first programmed computers professionally I soon started exploring ways to make the interaction more friendly. My earliest work pre-dated graphic user interface. The user had to type commands into a console. And, surprise surprise, people made mistakes. So I put in a little routine to capture when errors occurred to see what they were typing wrong and then modified the software so it would cope with the most obvious mistakes. This isn't rocket science. Computers are much better at sorting out basic errors than people are, as long as they are pointed in the right direction.

Let me give you two examples.

In the UK phone numbers have always traditionally been written as two or three blocks. So, for instance, a Swindon number might be 01793 123456, while a central London number could be written as 020 7123 4567 (or more sensibly 0207 123 4567). Very often, websites ask you to type in a number. And surprisingly often what will happen if you type in a number like this is that the site responds, as above, with a warning that you have got the format wrong - because it didn't want spaces. In the example above, taken from an ITV website, they even go to the trouble of telling you not to use spaces (someone should tell them Not To Use Capitals in the middle of a sentence) - but this totally misses the point. That instruction is unnecessary, because people should be able to use spaces - and the fact they've had to include the warning shows that lots of people do.

Any C programmer will tell you that this is a brainless mistake on the part of the programmer, because there is a routine in the C language, which in various variants underlies much modern programming, that takes spaces out of string of text. The programmer doesn't even have to write something themselves - they can just whap the input through this routine, and their software will never even know that there was a space. But no, instead, they program it to complain and force the user to retype it. This is doubly irritating if, like me, you have your computer to set up to automatically fill in information like phone numbers in web forms, which the Apple software properly does with the space in place.

Here's another example. A full web URL is something like Note what comes after the 'http' - a colon. Now a colon is a fiddly thing to type, as it's a shifted character. So I bet over the years many people have typed http;// instead, with a semicolon after the http. And guess what? It doesn't work. Again, it's a trivial exercise for your software that reads an address to substitute colon for semicolon. (I know you don't usually have to type http://, but there are some circumstances when you do.)

Admittedly this kind of automatic correction isn't always appropriate. You can't always guess what someone meant. But if, as in the first example, the person typed the number correctly and you are just forcing a particular format, or, as in the second example, there is no sensible alternative interpretation, it's much more polite and efficient to do the right thing and make your software take the kind of imaginative leap that people do all the time without thinking about it.

No comments:

Post a Comment