Context Error Reporting

One of the biggest mistakes I see programmers make when writing an error message is to forget to include details about the context into the message.  The message effectively “assumes” that the reader knows the context, but that assumption is not always valid, and the error message can fail communicate. Continue reading

Advertisement

Usability is like the Flavor of a Meal

We talk about usability of software as if it was something separate from the software itself.  There are usability experts, and there are programmers who openly claim to not be very good at user interface.  And yet, usability is affected by many deep aspects of the software, and it is important that all programmers on a project be aware of the usability goals of the entire project. Continue reading

Not-So-EasyChair Hints

There is a conference management system called EasyChair which many of the academic conferences use to manage the submission to the conference, the reviewing of the submissions, and the selection of the papers to be included.  It is tried and true, but it has one of the worst user interfaces you are likely to ever experience.  This post is the result of my struggle to get it set up for an event. Continue reading

Usability Means Not Jumping Through Hoops

The image of being forced to jump through hoops is one of being required to take arbitrary actions in arbitrary orders just to satisfy some goals that are either unseen or at least not in the interest of the user. Some software is like that.  You have to perform functions that you don’t want to do, that you know you are going to get rid of, in order to satisfy some internal constraint of the software. Continue reading

Usability Means Well-Behaved, even when the User Isn’t

Users of a program found that sometimes, when they went to log in, they did not get a place to enter the username & password.  Instead of the normal login prompt, they got a blank screen, and it was completely impossible to login. Sounds like a bad bug that needs to be fixed immediately, but the development team response was even more surprising: this was the user’s fault! Continue reading

The Purpose of Error Reporting

Error messages are part of every user experience, but too often these messages are poor, cryptic, and insulting.   Too often programmers do a half-hearted attempt at writing error messages, mostly because they mistakenly assume that users will never see them.  Too often programmers misunderstand the potential that results from writing correct error message.  Error messages can be the key to usability.  Error messages can help train users, and guide administrator.  All you have to do is understand the purpose of error reporting. Continue reading

#32 Don’t Disable UI Elements

The concept of “disabling” a user interface element seems like a good idea to let users know that a particular action is not available. The problem is that most implementations made a disabled element completely dead and unreactive.  This is a problem for any user learning to use the program.  The dead element gives no indication of why it is dead.  There is no way for the user to find out!  The user just has to “just know” why it is dead.   The most important aspect of a good user interface is that it help people learn how to use it, and that means eliminating things that users have to “just know” ahead of time. Such elements should never be completely dead, instead, they should produce a message explaining why the function can not be used at that time.  Continue reading