Training Your Users

When it comes to user interface design, I'm no guru, but I do have one golden rule that I always try to follow:

This is a companion discussion topic for the original blog entry at:

I agree and already try and do that as much as possible.

BUT -yes there is a but-

This idea only works as long as the user uses your site or software. If the user feels he really wants to use some feature he likes and you don’t, he will try just about anything to do it his way. And if that means visiting another site or using another software, so be it. And once he’s out of the game, it’s pretty tough to get him back.

Donald Norman also mentions these things in The Design of Everyday Things: Deliberately making things difficult.

90%+ of users use default settings.
That’s the most obvious way to direct users to desired path.
E.g., give users email me notifications checkbox, but make this checkbox selected by default.

Jeff, why don’t I see email me comments checkbox on
Are you encouraging us not to subscribe for follow-up comments to your posts?

What are a few examples of things you would want to make difficult for your users?

There is a pitfall to this, which is that if you misjudge the common use of the application, you train users to ignore the obstacles you place in their path, and frustrate them, to boot.

Hey Now Jeff,

Nice post! It’s kinda like how SO has so many tooltips.

Coding Horror Fan,

What are a few examples of things you would want to make difficult for your users?

A very basic example: want to discourage users from spamming your forum. So you require them to sign up for an account before posting. That’s intentionally choosing complexity, vs. the simpler method of just start typing and click save!

What are a few examples of things you would want to make difficult for your users?

Behavior you want to encourage in users is really dependent on the application. Say if you have software that monitors various devices and sensors in a power plant. You want to make it very easy to add/install a new device to monitor in the system but you don’t want it to take one click for them to completely wipe out all the devices monitored in the system but it should be possible.

If you’re writing a text editor then you’ll have a completely different set of user behavior that you may want to promote so it’s difficult to give clear cut examples.

I find this to be equally true as well in soliciting project requirements and planning maintenance. Guide the users toward the simplest solution that will solve the problem or add value to the application. Of course, it really helps to not only have good working relations with my multinational user group, but also to have a proven track record of successful deliveries (Go me!).

Errr… but what if your views about what your users should want to do differ dramatically from what your users want to do? How do you determine whose views take precedence? Is ignoring dangerous behavior really appropriate ó what about actually putting in steps to stop it?

I get rewarding. But ignoring? I don’t get. Training even with animals is about both the stick and the carrot. Ignoring is not a stick ó it sends an ambiguous message.

This works well, except for those users who want to perform an advanced task. Often times application developers not only make the advanced task difficult, but they make it impossible.

Take, for example, the huge number of Windows options that can only be adjusted by modifying the registry. Although this isn’t impossible, it is effectively impossible to adjust options through the standard configuration process.

In short, being user-friendly means being friendly to ALL users, not just the average Joe.

Hmm. So, fan of UAC?
I must admit, the way it bickered when an application was saving settings in Program Files was an incentive for developers to correct the manner of their applications. But a user could make their life easier by turning off UAC.
Which brings up admin accounts: The whole make-it-easier/make-it-difficult might fall down for the idea of administration. Admins do the path you don’t want done. Wipe a disk, remove folders, change accounts - do you really want to make their lives difficult? Should everything the administrator do be made difficult?

Before intentionally making someone’s life more difficult, I think it’s ethically necessary to show you can’t make recovering from the behavior easier instead. For example, before pestering someone with confirmation dialogs, there should be a good reason you can’t let them undo a deleting something.

Also, if you have to make something more difficult, I’m a believer in showing that you have worked through the same hoops you are imposing on your users:

You opened with When it comes to user interface design, I’m no guru, but I do have one golden rule that I always try to follow: Make the right thing easy to do and the wrong thing awkward to do.

This is highly reminiscent of a broader rule I use for any dealing with the general public: It’s not enough to make it easy to do right, you have to make it hard to @#$%-up!

If not, I guarantee you someone will @#$% it up. Even if you make it hard (and painful!), someone still will, but then, at least, you’ll have a good story to tell and possibly something to laugh at :wink:

@Matt: I turned off UAC as soon as I got Vista. So annoying!!! I also think there should be an administarate mode/tool for what your talking about. Allow it only for advanced user/admins.

That’s a really interesting point, and something I didn’t even realize I was already doing unconsciously. Especially the part about training users with complexity. I’ll often make something hard to find, or a little bit confusing, especially if it’s one of those ejector seat type features.

This is also a wake-up call to me to go through my software, find the features that customers are finding difficult to use, and see how I might reimplement them from the perspective of guidance rather than click here, click here.


You also have to be very careful in how you make something difficult, or you’ll train your users to ignore warnings that they are about to wipe out their data.

Users already simply click through dialog boxes without reading them because earlier developers, including MS in Windows, put too many confirmation steps in things that should have been simple.

A friend of mine aliased the rm filename Unix command (remove a file) to always execute as rm -i filename to inquire if he really wanted to remove the file, thinking it would be safer; more difficult to accidentally delete a file. He got so used to just hitting ‘y’ that – you can guess the rest.

(and click here are the two most evil words on the www, but that’s another rant)

Same trick works for procedures, policies, etc. Make it as easy as possible to have things done the way you want them, and as difficult as possible to do it differently or wrong. The path of least resistance is your friend.

You should make a post about RIAs - all the javascript, AJAX, Flash, Silverlight stuff coming out - is it really improving user experience? That’s propably one of the most exciting questions to answer. When is this sort of stuff too much, and why can a plain site be so popular? So does ‘RIA’:s matter?
Jeff you propably don’t like javascript (or JQuery) and certainly not Flash and the Silverything. You like more coding with vb and sql - am I right? Sql coders don’t like UI programming, that’s a fact.