Don’t do that, then

August 11, 2017

There are certain classes of bug — or at least unexpected behaviour —¬†which are so buried in layers of how-did-you-even-get-there that I wouldn’t even begin to think about reporting them, but which still manage to irritate me. Here’s an example.

I play Candy Crush Saga. In the game, when you have used up your five lives, you have to wait until a set period of time has elapsed for them to be restored; you are encouraged to get more lives more quickly by spamming your friends or by paying actual money to the plagiarists who produce the game. There is, however, a workaround:

1. go to ‘Settings’ and set your phone’s date to the next day
2. switch back to Candy Crush, at which point your lives will have reappeared
3. return to ‘Settings’ and reset your phone’s date back to the correct one
4. return to Candy Crush and enjoy your new lives

Screenshot of 'overview' in Android

Many apps make lives work

In the course of the thousands of hours I’ve lost to Candy Crush (level 1834 on original Candy Crush Saga, level 1382 on Candy Crush Soda Saga) I’ve become pretty quick at doing this ridiculous app-switching task, first on an iPhone and more recently on a Fairphone. (Trivia: ‘Multitasking’ for iOS was introduced in iOS 4, in 2010. I still think of this app-switching behaviour as ‘alt-tabbing’ because I first encountered it on a Windows PC.)

But here’s the thing: on Android 6.0.1, the Overview button (did you know it was called that? I didn’t until I looked it up for this post) only works for the first 3 steps of the above 4-step dance. In order to get to step 4 I have to press the Home button twice, and then return to Candy Crush by any of the usual means (from home screen; from ‘all apps’; via Overview button; probably other methods which are failing to occur to me).

Nobody is ever going to fix this; it is manifestly absurd that I should even be in a position where I notice this behaviour; nonetheless, it’s really very annoying.

Let me unpack that for you

November 18, 2009

A while ago our University IT Staff mailing-list got very excited about this cartoon:

It’s a lot less aggressive than Let Me Google That For You (best when pre-combined with search terms, e.g. and its less work-safe companion, but the underlying attitude is not dissimilar — basically, “dude, this is easy, you could find this stuff out by Googling for it”. Now, I know the xkcd flowchart shouldn’t be taken too seriously, but it did make me think just how much knowledge and assumptions are embedded in an instruction like “Google the name of the program plus a few words related to what you want to do” — not to mention “follow any instructions”. It’s assuming that you know:

  1. how to “Google” something (really, not everybody can even get this far)
  2. the name of the program (or the operating system)
  3. the correct terminology for the thing you’re trying to do
  4. how to narrow your search down with relevant search terms
  5. what you want to do in the first place!

Let’s unpack that a bit more:

What is its name called?

When I’ve been doing helpdesk support, the Windows users I’ve spoken to often don’t seem to know that they’re using Windows (though “it’s a computer” or “it’s a PC” usually gives the game away), let alone the name of any software they might be running. In a University environment, “the web” is as likely to mean Firefox as Internet Explorer; and as for “So I went into my email”… it’s anybody’s guess what client they’re using. (“Okay, are you using Outlook Express, maybe? Thunderbird? Eudora? Do any of those sound familiar?” “No, I went to the bit where I put in my password…” “Is this on the web?” “It’s the bit where you go to the internet and you put in your password, you know, your university password.”) Google produced an video of ordinary people attempting to explain what a web browser is — it’s quite enlightening. How far would you get googling for the answer if your search was along the lines of “my email doesn’t work” or “the google crashes”?

Calling a spade a thing you dig with

Not all words are equal; some types of terminology make for better searches than others. Things which would be intelligible to a human being may result in a lot of frustrating irrelevance if you type them into a search box. For example, there’s a world of difference between “How do I make it so that when I go to the web I start with my webmail?” and “change default home page”.

The straight and narrow

Of course, the above example is still quite vague: there’s a difference between “change default home page” and “change default home page ‘internet explorer 8′”. Knowing which terms will successfully narrow down your search to the level of detail you want requires some awareness of the hierarchy or taxonomy you’re dealing with — you don’t have to call it that, of course, but it helps to know (for example) that there are several operating systems out there, and lots of different programs that you can run on those operating systems; that a web browser is a type of program, and there are lots of different web browsers; that any given web browser will have several different versions… and so on.

What users really want

“Find a menu item or button which looks related to what you want to do”, says xkcd — but actually, knowing (or articulating) what you’re trying to do may be harder than it looks, and is probably half the battle. “How do I stop it going all funny every time I click here?” isn’t much help whether you’re googling or looking for menu items (again, it helps if you know some more specific terminology for “going all funny” or how to describe to a computer where “here” is); and often what people think they want to do is “stop it giving that error”. There isn’t usually a menu item that says “Make it stop going all funny” — it’ll be something more like Tools → Preferences → Advanced → Deactivate Epic Fail.

End of an error

Typing an error message into Google is a useful strategy for solving problems, and may seem obvious; but even that involves some more deeply embedded assumptions: it assumes that you’re even allowing for the possibility that an error message is an attempt to communicate something to you (so that you can do something about it, or pass the message on to someone who can do something about it), rather than just a sign that “it’s all broken”. Too many users seem to think that computers exist in two states, “working” and “broken”: if it’s not working, then obviously it’s broken; and if it’s broken, then obviously what you want to do is get it working.

Simon Tatham says, in How to Report Bugs Effectively (which, incidentally, should be compulsory reading for anyone who ever has to talk to anybody else about computers): “Numbers in error messages are there because the computer is too confused to report the error in words, but is doing the best it can to get the important information to you somehow.” At the end of the day, it’s all about communication: the programmer, the software (insofar as it can be regarded as an agent), the user, the IT support guy — they’re all trying to pass information (in the broadest sense) from one agent to another without losing data. Starting with lots of unexamined assumptions is a bit like giving someone a document in a proprietary format, without checking that they’ve got the necessary software to decode it — at best they’ll spend unnecessary time and effort reverse-engineering it, at worst they won’t be able to extract any of the message you were trying to convey. Why make people guess? Even Google can’t read your mind. So far.