OK.. first a disclaimer. This post is generated off of software I am evaluating and has nothing to do with anything I’m currently working on (just in case any of my clients read this )
So, I think we all believe we right quality software. Shoot! Even when I got my first job, I was convinced I was writing good stuff…until I looked at it six months later. And sure most of the time, my code worked.. if you used it the way I used it. But, we all know, it’s the details that make the difference between good software and crappy software. So, here’s a check list:
1) If you had to, could you use a keyboard to navigate your program and would it make sense if you did? Can you tab from one field to another in a logical sequence?
2) If you have dialog boxes in your application, is the default button implemented? Can you press the ENTER key and have it automatically “click” the default button?
3) Again, on dialog boxes, if you press the ESC key, does it “click” the cancel key or the “close” button?
4) Does the screen work on the various screen sizes and various fonts? For .NET Windows forms applications this would mean implementing the various layout managers (Table, Flow, etc) and making the lables “auto size”)
5) If you allow the user to resize the window, do the controls in them stretch or move with the window appropriately?
6) If you use colors as an indicator on the screen, are you using a system color? Or will the item disappear if the user decides to use a different color scheme than the Windows default?
7) If you use colors as an indicator, do you also provide an icon for those of us who are color blind?
8) If you allow copy/paste, do you allow it via the keyboard (using STANDARD keystrokes) as well as the main menu and a context menu?
9) If your system will only allow fields of a certain length, do you prevent the user from even entering a string longer than that length in the input form? This assumes, of course, that you are validating your other inputs. But this one gets missed a lot.
10) Have you limited the text on the screen to necessary prompts and put any extra information the user may need in a tooltip?
11) Assuming you have validations in place, when there is a problem with what the user entered, do you tell them as well as you are able, what they did wrong?
12) Do you do any error checking at all? Or do you expect the user to use the program perfectly each time?
Well, that’s twelve I can think of right off the top of my head from two separate programs I know about. What’s you list? Tell me in the comments.