Improving Software Usability?
kevin_conaway asks: "Software usability is one of the hardest things to get right. Writing good, usable software is the holy grail of software development, yet few developers give it more than an afterthought. As a professional developer, I delight in writing software for other developers but shy away from writing an interface that the end users will see. What resources/books are recommended for improving your Human Computer Interaction (HCI) / software usability skills?"
http://developer.gnome.org/projects/gup/ This is definitely worth a read. Many people who are good programmers aren't necessarily good at user interfaces, or worrying about how people will interact with the software. That is an area that open source software really needs to improve on, both in efficiency in usability, and in aesthetics.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
The best resource for making sure your software is usable is to watch people use it. While large companies can afford professional UI designers and formal usability studies, even a humble F/OSS developer can do some simple UI testing. ...?" and it's a good way to start finding bugs that only a user will discover.
When I'm working on software that is intended for users who are not developers or otherwise computing professionals, I usually try to get a regular user to sit down with my software for a half-hour or so and I watch them use the software. Generally, I just say something along the lines of "hey, wanna do me a favor? play around with this program for a bit and tell me what you think". Then watch over their shoulder. Generally this is a good way to get a list of what sorts of things are poorly placed "how do I...?", things that are confusing "what is this?...", features that users will like "can I
A few tips that I've found doing this include
If any option is unavailable then it should be obvious WHY it's unavailable.
No matter how obvious your icons are, they should ALWAYS have text with them.
Avoid dialog boxes as much as possible
If you make your program look too much like another program, then you better make sure it looks and works exactly like that program. In other words, either stick completely with the standard way of doing things, or do it completely different. If you take some common UI element and tweek it, then you'll just confuse users. Menu bars tend to be the most common violators of this.
Understand color. A lot of applications throw colors around willy-nilly, if you are going to use color then study up on color theory and learn what colors go together, what colors are calming, etc.
Famous Last Words: "hmm...wikipedia says it's edible"
I recently read "About Face 2.0" I found myself dis-agreeing with some of the details and felt there were a few ommisions but the definitions of software was sound
Also Joel on software has a great book excerpt online to get you in the mood
About face link
Joel book excerpt
Designing from Both Sides of the Screen. Worked really well for the project I worked on, and it's a great process and implementation book.
It's not that I'm asking the big questions, it's that I'm asking lots of small ones.