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?
How do you ensure your product meets basic usability guidelines?
experience;development process
I'm not aware of such a list (perhaps you could create one?), but there is a way to solve this:Beta testingIf 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. 