Putting Users in Charge

Just behind "user-friendly" in the nice-but-useless terminology stakes is the expression "user-centered." What does that mean? Well, unlike "user-friendly," it does have a meaning, albeit a rather vague one. A system is user-centered if it always responds to the users' requests and never imposes a specific method of working.

This principle is perhaps easiest to understand by way of an example. An acquaintance of mine, a developer for whom I have a great deal of respect, described his method to ensure that users enter data in the order most convenient for the system. He locks all the controls on the form except for the first one; once data is entered in that control, he unlocks the second, and then the third, and so forth.

Not only is this technique as far from user-centered as one can get, it's not going to work. Users often have good reasons for not entering data in a specific order—it might be unavailable or inconvenient to enter at the moment. If you force them to enter something, they will. They'll enter any old garbage that the system will accept. So you've offended them, imposed on them, and ultimately accomplished nothing.

We'll look at this issue in some detail in Chapter 16, when we discuss data integrity. Artificially enforcing data integrity is the primary way database systems try to wrestle control from users. The second way is by being obsessively modal. A mode is a system condition that limits users' interactions. The classic modes in database systems are add, edit, and view. A system that requires users to return to a main menu before editing the record they've just been looking at is ridiculously inefficient. Requiring them to choose a menu item or click a button before editing is not much better.

Unfortunately, many designers use this kind of modality as a matter of course. Perhaps in a mistaken attempt to protect users from accidental changes or because the use of Add, Edit, and View menu items was conventional 20 years ago, they perpetuate the paradigm in the Windows environment, where it is inappropriate. I strongly recommend that you assume the users know what they're doing. If they want to change a record, let them. They shouldn't be forced to ask permission to do so.

If you're going to allow users this much freedom, you must give them safety nets. Multiple levels of undo are easy to implement in both Microsoft Access and Microsoft Visual Basic. You might even want to include a Revert To Last Saved menu option to allow a user to discard all changes to the current record.

I don't like asking users to confirm changes before saving a record, although in some situations it might be justified. The whole idea of "saving" is foreign to most users. Remember the users' mental model. They've just made a change, and now you're asking them if they want to make the change, which is very confusing. Once they sort out what it means, most people just get in the habit of choosing "OK" every time the confirmation dialog box appears anyway, so the dialog box doesn't do much good.

Confirmation messages of this type are another instance of imposing on users without accomplishing much. In the few instances when I have implemented confirmation messages (usually at the insistence of the client), I've provided a mechanism for turning them off (generally in the Properties dialog box).

However, some extensive changes can't be undone, or at least not easily. Accidentally changing a field on a record can be easily fixed. Accidentally deleting all the records in a table can't. If you allow users to do things that you consider really dangerous, the best option is to provide a method for undoing the action. If that's not feasible, then by all means get them to confirm the action.

Just be sensible about how you define "really dangerous" and give your users useful information about the implications of their actions. The message box shown in Figure 12-1 will only scare them.

Figure 12-1. This is a spectacularly unhelpful message box.

The message box shown in Figure 12-2 is much better. Not only does it explain the situation in the users' terms, it also provides them with options besides OK and Cancel (which the average user interprets as "I am an idiot" and "I am an idiot. I offer my most humble apologies.")

click to view at full size.

Figure 12-2. This message box explains the implications of a user's action and gives her several options.



Designing Relational Database Systems
Designing Relational Database Systems (Dv-Mps Designing)
ISBN: 073560634X
EAN: 2147483647
Year: 1999
Pages: 124

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net