I’m sure this happened to you: you call the support number of your bank/phone company/whatever, go patiently through all the Interactive Voice Response (IVR) menus, get shunted to an “all agents are currently busy” music, waste long minutes listening, and finally get a human to talk to. You explain your request, and the agent politely says “Let me put you on hold while I find out the information”. Before you can protest, you’re back on the music!
Which goes on and on, and you have no idea whether the agent is really digging up the information, or he had a heart attack, or he simply forgot about you… the music just drones on. Doubt starts gnawing: should you hang up and start over? Maybe he’s just seconds from picking the line again? Anguish, anger, and unhappiness fill you. And if you’re in the middle of some bank transaction you don’t want to abort, and you have a meeting starting in 3 minutes, you really need to ask the agent what’s going on – but he’s just out of your reach. This is definitely not a good customer experience.
So, what can we do about this? What is needed is a protocol we used to have when I was an amateur radio operator. Back then, people would speak in turn on the radio waves: …AB1CC, this is XY7ZZ, over! Roger XY7ZZ, this is AB1CC… But we had a mechanism for getting a word in sideways if something urgent came up, say another ham with an emergency communication: you could wait for a pause between words and say “Break-break!” and the talking party would shut up and listen. We had an Interrupt capability.
This capability is what we need in those service desks: a mechanism – say, some key sequence on the phone – that would cause the line to go back from hold to the agent that parked it there. Even the knowledge that you could, if you wanted to, get the agent back and ask how much longer is he going to take – would make you feel a lot better, much less helpless and frustrated.
Take note, my dear bank – give us back some control!

But the bigger problem is remembering what’s what when you come back later and the light is stable. You see, in these, this means charge complete; but in my cordless shaver it means that it isn’t; there, blinking indicates a full charge. Different vendor, and they probably just flip a coin at design time…
Take the image at right, the list you have to go through to select a country for a new contact in Outlook and other applications: it opens on a list of ten countries, of which one – Argentina – may be even remotely likely to be inhabited by business contacts of yours. You can scroll down, of course… and in the next ten you find even greater concentrations of business partners, like the entry for the 




I found this so distracting that I went and downloaded another shareware product, FastStone Capture (Ver. 6). Check the utterly simple UI to the right:
which fast became the standard on that venerable 16-bit platform. It would typically handle 32-color images at up to 640×400 resolution. Sure, you could do things in it that no other personal computer could do at the time – like the King Tut image that became the hallmark of this program – yet in today’s terms it was utterly weak and primitive. So what’s the big deal?

more serious lesson here. If they figured Windows was the best tool to use on a public transport system, they’re welcome to use it; though Windows is, by definition, a system for the PC, and that stands for Personal Computer, not for Public Conveyance. However, when a dialog like this appears on my Personal Computer, as it does on occasion, I can take action, if only to hit the Vulcan Nerve Pinch key combination. But on a train there is no keyboard with Ctrl-Alt-Del, nor a Reset button. So why show us this useless gobbledygook? The system in this case ought NOT to show the dialog about the DLL; it should instead erase the screen and display a humorous image related to the situation and a message such as “We’re sorry, there is a malfunction. This is being addressed. Thank you for your patience”. Alternatively, the screen might simply switch itself off on program malfunction. Anything but the incongruous error message box.