Taking Care of the User

Warning, I'm about to rant here. I'm all worked up and I need to vent. The reason? The subject
of taking care of users who do not have the technical capacity to use a computer. In general,
software is intended to take a complicated task and make it as simple to perform for the user
as possible. I try to do that with my software. In fact, I like to think that there is
an unwritten contract between software developers like myself and computer software users. Here
are some of the items I imagine on that contract.


[1] The developer will not unnecessarily burden the user with confirmation dialogs.
Everyone has seen these, and largely ignores them after seeing them once. These are the
"Are you sure?" dialogs that you get whenever you try to logout, close an application, overwrite
a document, or do any other task that might have "destructive" consequences. Too often software
over-uses these boxes to the point of user frustration. Some software even goes to the extent
to doubt your judgement twice. In my opinion, if the user's judgement was fouled after the first
warning, it's not going to be any better after the second warning.


[2] Users will read the message boxes that developers display.
I'm constantly astounded by the number of times a user will run into a message box and rather than
actually read the message (which usually contains instructions on how to solve the issue) will
immediately run to the nearest "computer guy/gal" they know to ask for help. Messages like
"Are you sure you want to overwrite this file?". This isn't a hard decision. Either yes
you do or no you don't. Or how about the message "Your printer is out of paper". I'm begging
all of you users out there: please, please read the text on the screen. You may think you have
seen it all before, or that it is over your head, or that you don't have to read it. You would
be surprised at how many times a developer has gone to great length to provide instructions,
warnings, and information in that text that is actually useful. READ IT!!!


[3] Tasks that are simple without software cannot be made more simple with software.
This is aimed both at users and developers. If there is something that can be done easily without
a computer, don't look to a computer to make that task easier. A prime example of this can be found
in regard to televisions and television remotes. A very easy task to perform with your television
is to turn it on. Normally, there is a large button on the front of the set marked power. You
touch the button, the TV comes on. Touch it again, the TV goes off. A remote is software to help
you with this task. The idea is, make it easier to turn on your television. Now, you don't even
have to get out of your chair to hit that big button. But wait, what if we made remotes that worked
with more than just one television. What if they could work with your television AND your DVD player.
That would be wonderful, as it would make the task of hitting the big button on the front of the TV
and on the front of the DVD player easier. Right? Wrong!!! Now you have a universal remote with
multiple modes. You now must hit four buttons to get all of that equipment to turn on (usually
TV, then Power, then DVD, then Power again). Sure, my butt doesn't have to get out of the chair,
but now what happens if I start pressing buttons in the wrong mode? One time our dog stepped
on our universal remote and we couldn't get sound out of the TV for three hours. Software is just
an enormous universal remote for your computer. It can make doing some things convenient, but don't
try making things that are already easy any easier. You'll just foul things up. Users: don't ask
developers to make it easier either. Just be happy you know how to do what you want now.


[4] Users will know where they have saved/downloaded files.
This is a case where doing something simple has been made more simple, with devastating consequences.
Your file system is where you save files. Documents, spreadsheets, stuff you download... it all
gets saved somewhere on your file system. It used to be that every time you wanted to save something
you would need to create a folder for it and remember where you saved it. Now, this task has
been made easier by programs that "remember" where you saved things for you. Trouble is, what
if you want to do something with that file, but with a different piece of software. Gosh, I
don't know where it's saved. It could be anywhere! I just want to scream at people when they
ask for help with a file, and they can't answer the simple question of "where did you save it?"


[5] Developers will not encourage non-technical users to do technical things.
Think about your family for a second. There is probably at least one person in your family that
believes the computer is the solution to every problem. Not only that, but they encourage
everyone else in the family see things that way too. When they come to your house they
install bizarre add-ons and utilities on your computer, and leave you scratching your head
as to what that flashing icon is in the system tray. If you don't know anyone like that, you
probably are that person. If you are a technical person, enjoy the fact that you can get a
lot of utility out of your PC. But please, please don't put the rest of the people around you
through the torture of trying to learn this stuff. The vast majority of people in this world
are averse to change, and you are just stressing them out by trying to show them how to do
something they already know how to do. I know I'm personally guilty of this one. Everyone in
my family knows how to use a phone. You just pick up the handle and punch in the number to the
person you want to call. What do I do? I try to get everyone to use online instant messaging
and voice calls on the internet. Bad, bad, BAD! [slaps wrist]


[6] Users will have a clear idea of what they want to do before they start to do it.
This means, be prepared for questions pertaining to your task, and answer them.
Too often someone will have a vague idea of what they want to do, and get six or seven steps
deep into the process before they realize, "Oh My Gosh, this is not what I want!". Say like
when a user decides they want to format a word document, but starts the process to format the
hard drive. Hmmm... I guess my document is on the C: drive... AAAACKK!


These are just the items that came immediately to mind. I'm sure there are more. Are you a developer?
Do you have an idea for an addition to the list? Leave a comment and maybe I'll append it.
Are you a user? Fed up with something about your PC or software? Leave a comment with your
addition to the contract. I'd love to hear it.

5 comments:

Troy from TODC said...

This is really some good stuff. Sounds like a soap box article to me!

Sam Danziger said...

Hey!

Sorry for taking so long to get back to you on the myspace e-mail. It's been a hectic... I've forgotten how many months.

So anyway, here's my thoughts on the universal remote problem: Change-it mode and Don't-Change-it mode. And make sure you can't accidentally switch between the two.

The ideal universal remote would control your TV watching thingies (TV, STEREO, DVD, VCR, VIDEO GAMES) all at once with-out you having to worry abou the specifics because that's the *real* reason to have a universal remote. Otherwise you spend 5 minutes trying to turn everything on and setting the stereo so it's playing sound from the TV and not running Rush Limbaugh over your episode of Boston Legal. Without the universal remote your guests have no idea how to even adjust the volume...

So a good universal remote would have about 4 big buttons and a few smaller ones:
1) Watch TV
2) Watch a DVD
3) Watch a Tape
4) Play Video Games

In Don't-Change-it mode, You push the button you want, it changes the settings (including on/off state) on all of your components so it just works. Volume up sends the signal to the stereo, channel up sends the signal to the cable box, pause sends the signal to VCR or DVD. Anyone can use it. If you're not technically inclined you have the guy who set up your stereo program your remote.

Change-it mode is for those of us who want to have all of the fun of programming the remote. For example, you could have a remote docking station that controls the main power for all of your TV accessories so you're not wasting power on multiple standby modes, has a USB port so you can easily program the remote with your laptop, maybe ethernet, etc.

The short of it is, Change-it mode can be arbitrarily complicated -- but the end user gets a remote that "just works" with a few big, easy-to-understand buttons. Incidentally, if you've had the opportunity to play with any recent Apple products (iPod, Mac) this seems to be their design philosophy.

Adam said...

SD - Good to hear from you!

I actually bought my father a universal remote exactly like you describe. It was this fantastically complex device with a LCD touch screen that you could program to your hearts content. After going through an initial setup to get it to recognize all of my father's equipment, it displayed four options

-- Watch Television
-- Watch a DVD
-- Listen to CD
-- Listen to Radio

I thought this would be fantastic. After all, you just press the button and it auto-magically switches all of the equipment into the appropriate configuration. It even modifies the display on the remote to be accurate to what you are doing. Listening to the radio? It only displays volume, preset, and direct tuning functions. Watching TV? You get volume and channel controls. It's so easy my mother could use it!

That was my naive thought anyway. In reality, the remote has collected dust on the shelf for the last two years. The reason? The remote works on the premise that you never touch the front of one of your devices again. In addition, if anything should accidentally block the signal, you are in for a nightmare of trying to get your system back into correct order with the remote. Some equipment turns on while others turn off. It wasn't the gift for them.

The situation in our household is even more complicated. Our family room entertainment center has a television (which is being used purely as a monitor), a multimedia tuner (which switches sources between the DVD player and cable for both audio and video), a DVD player, and a dual tuner DVR cable receiver. We often record one show while watching another, or play a DVD for our son while recording programs.

The solution here isn't a smarter remote, but a smarter user. It took some training, but our family is now proficient at using all of the equipment. We use it daily too, so we get plenty of continuous training. Even our son can work most of it by now, and he is only two. Family and friends are totally at a loss though. You need a seperate remote to control volume, and switching the multimedia receiver to play a DVD would require a lot of eye straining searching on the remote to discover the how to change sources, and that assuming the mode sliders are in the correct position. The solution for my family is to either 1) setup the television before we leave and just leave it on that channel all night or 2) shut down all of the Hi-Fi equipment and reduce the system to a simple television set. Converting to a simple TV set may sacrifice the "wow" factor of our system, but at least the interface is intuitive.

I'm forgetting if I had a point here. Anyway, it was good to hear from you, and thanks for one of the longest comments on my site. I hope to hear from you again!

Sam Danziger said...

I think the problem is not that the remote isn't smart enough, it's that it's half-smart (like most of the "helper" AI stuff you can find in Microsoft Office).

In short, it needs to be able to query the current state of your electronics, or, failing that it needs to *reset* the state of your electronics before every operation where it's likely to need it.

I suspect the problem with the remote you got for your Father was that someone had a great idea -- and then never fully tested it.

For example: If the remote station was also the master power supply it could easily tell if a device was ON or OFF by monitoring roughly how much power it's drawing. Just about every other function could be fine tuned by studying how devices usually respond. Granted, until you get the feedback mechanisms in place (probably not that far off with all the chatter I've heard about networked homes and bluetooth this and that) you're talking about a $150-200 remote, but it would still be way better than what we've got.

So in short, I agree with you. Way too many people make fantastic bits of technology that just become clutter that only the people who don't need it can use. I disagree with you as far as the solution. It isn't that we don't "need" smarter devices, it's that we need devices that are really smarter, not just half-smart.

Another example: Back to MS Office - I really love the way the spell checker underlines misspellings in red. Not only does this help my spelling in documents that go out, but also it helps my spelling overall because I can immediately see when I misspell a word.

---

BTW: Your blog rocks in that it's the first blog I was able to display on my Google desktop!

Adam said...

That's a pretty novel solution. Do I smell a patent :-)

I think we're getting away from my point though. Perhaps it was a bad analogy. My point is that there are lots of activities in our lives that are simple, yet some form of technically gadgetry has been invented to make this already simple task even easier. In 99% of those cases, the gadget just convolutes the situation, rather than improving it. Maybe a better example would be the spoon and fork. Two utensils, one perfect for liquid, the other for solids. Eureka, the spork! A single utensil, requiring less work. However, it fails on both counts, as it is unable to maintain a sufficient quantity of soup, nor capable of appropriately grasping solid foods.

I do think you are onto something with your "smart" remote. Still, I believe that the contract should maintain that developers will focus on creating gadgets to make truly hard things easier before ever considering making something easy, easier.

 
Jade Mason