During my career as a software engineer I have been frustrated most by user interface design of consumer electronics.
My biggest pet peeve is when a device is partially functional.  The user interface appears to be running or kind of running, you can touch a button or touch the screen or click on a remote control and see some response, but it’s obvious that the device is not really performing the requested task.  It’s stuck somewhere waiting for an event that may or may not happen.  The old “race condition” has reared it’s ugly head.  What caused it?  WIll it ever get out of that condition? Who knows?  Apparently the code doesn’t have a watchdog timer to catch this condition.

I don’t mean to pick on TiVo because I really do love my DVR. My experience is still fresh in my mind, so that’s why I’m using it.  They do use some kind of watchdog timer, because when it hangs for a period of time, the TiVo will reboot by itself.  The only thing, I wish they had designed into the unit was a reset/shutdown button or at least an on/off switch in the power supply. Computer manufacturers do it, TiVo is basically a computer with a specific purpose. There are two ways to force a reboot of a TiVo. The first way, if the menus are functional is to choose reboot in the setup menu. The other way to force a reboot on a TiVo is to cycle the power. There isn’t a switch on the device, so the power plug must be unplugged, then plugged in again. I agree, it might be admitting that problems do occur, but at least their customers would not be so irritated whenever a problem required a reboot.

I have had to do this with some DVD players as well.  Something happened when a DVD was inserted and it never quite recovered.  The buttons became unresponsive and the only way to fix it was to cycle power on the unit.  Of course that meant unplugging the device, then plugging it in again.  We grew tired of this behavior and ended up recycling it.

Handheld devices aren’t much better.  Many handheld devices don’t seem to have a reset buttons on them.  When there is one, I have been very grateful when I needed to use it.  In most cases, when something does go wrong, you are required to cycle power by removing the battery, then waiting for 30 seconds, then replacing the battery.  This works in most cases, but what about the case where you have a built-in battery with an external power source.  If you’re lucky it was designed to reboot when the power button is held down during the display on event.  I am just suggesting that perhaps software designers should add a menu item in system settings or diagnostics mode that would allow the user to reboot their device.  The payoff would be huge and result in less customer frustration.

Till next time,  don’t forget your users’ when you design the product