Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are some really common usability errors in everyday software we used; errors that result from the ways the particular programmer has learned without learning of all the other ways there are.

For example, talking about Windows software in particular, the following common flaws come to mind:

  • Failure to support multiple screens. For example, windows centered in the virtual desktop (instead of a specific screen) and hence displayed spanning the monitor boundary in a dual monitor setup.
  • Failure to support serious keyboard users. For example, utterly messed up tab order; duplicate or completely missing accelerator keys.
  • Alt+Tab order mess-ups. For example, a window that doesn't go to the end of the tab order when minimized.
  • Subtle breakage of common controls that were reimplemented for one reason or another. E.g. failure to implement Ctrl+Left/Right on a textbox; failure to add an Alt+Space window menu to a skinnable window, failure to make Ctrl+Insert copy to clipboard, etc, etc. This one is a huge category in its own right.

There are a gazillion of things like this. How can we ever make sure we don't break a large proportion of these? After all they aren't all written down anywhere... or are they?

share|improve this question
    
There's a checklist at the end of this document on WinForms layout: windowsforms.com/Samples/Go%20To%20Market/Layout/layoutGTM.doc - it's the right spirit, just need way, way more of these! –  romkyns Oct 12 '10 at 0:00
add comment

2 Answers

up vote 1 down vote accepted

I'm not aware of such a list (perhaps you could create one?), but there is a way to solve this:

Beta testing

If your community is large enough, release a beta version. Even if its not large, just ask people to try it out and see what they think. Tell them they don't have to use it after their done, just that you want their opinion on it. They'll try.

Beta testing allows you to see if your program meets the general consensus. Beta users are more likely technical people, so things like simplicity are going to be hard to test for since technical people know how to work around software like that. However if even the beta testers can't figure it out, then you have a serious problem.

Other things like dual monitor support, keyboard shortcuts, integration with their OS, stability, etc can be easily tested for with beta software.

share|improve this answer
add comment

I think one thing to keep in mind is to remember the source reason for most software usability problems — usability is a human issue, and as such, is difficult to define with a set of rules. This is totally at odds with the rules-world that most programmers want to live in.

Because of that I think you need to throw out the belief that a checklist of usability problems could ever be helpful. Believing that is thinking like a programmer and will only result in more usability problems that you simply hadn't thought of (or that are the result of sticking to a usability "rule" that never really should have been a rule).

  • One of the biggest differences can be made by designing first (read Alan Cooper's The Inmates are Running the Asylum).

  • Second, make sure your software goes through usability testing with real users.

  • Third, don't think like a programmer. The possible idea in your question is a perfect example of why this is important to remember. Even good ideas (avoiding non-standard controls) are not always going to hold true. Those controls may be faulty themselves or may be used for something they shouldn't. The perfect solution for your form or user input may not have been invented yet, or may simply be not widely used or implemented (the iPhone is a great case study for this).

As another illustration of the problem with "usability checklists", the list you presented may well be common to you, and I agree they are problems, but I hadn't really thought of most of them prior to reading your list. On the other hand, I've experienced tons of annoyances with Windows since being given a PC for my day-job:

  • (Windows 7) Mousing over a task bar button and then over a Window thumbnail drops all other windows to just outlines. I've done this by accident a number of times and had what I was reading simply disappear.

  • The Alt+tab pane can now be moused over to temporarily bring the window to the front. However, when you let go you think it's going to stay there, and it doesn't.

  • (MS Outlook - I know, sort of a cheap shot) If I open a new email and then close it, even if I haven't added any text it asks me if I want to save the draft. Then if I say no, it moves it to my deleted items folder. As an unread email, leaving me with a big blue "(1)" until I go delete it or "read" it.

share|improve this answer
    
I think you are thinking more about the somewhat more advanced kind of usability. You know, there's "this product is intuitive", which is really quite hard. And then there's the "this product's TAB order is randomized", which should just simply never happen. –  romkyns Sep 21 '10 at 23:39
    
"but I hadn't really thought of most of them prior to reading your list" - which is exactly why we need such lists! –  romkyns Oct 12 '10 at 0:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.