It’s amazing how the ‘little things’ can often make the biggest impact on the end user experience. Example: when you ask your software to do something, you want a visual indicator or feedback dialog to let you know how that request is being processed.
Imagine submitting a order request on your favorite shopping website and not getting a response back. Did they accept my order? Will I get my book? Did they take my money?
It’s no different when you push a hard button in a software program. If a transaction is processing, show me a little throbber that work is actually being done.
If you are re-establishing a connection, show me that you are doing so (thank you LiveMeeting for doing at least one thing correctly.)
These interfaces add warmth to the user experience. It’s really hard to measure the impact these features have in terms of productivity gain, but I believe they do add a lot of confidence and trust with the end user.
Ok, so why aren’t these always available then?
Have you ever read a Marketing Requirements Definition (MRD) or a System Requirements Specification (SRS)? If you’re not a software engineer, these generally dictate the needs you need to fulfill with your widgets/programs/solutions. They go into great detail about what happens when someone does ‘X’ or how wide an input form should be. They rarely dictate how the user interface should make the user experience an awesome fun time.
So the developers concentrate on the mechanics and functionality (which is good!), and then this kind of stuff sometimes gets left for later. Priorities have to be set when you have limited resources. And EVERY project generally has limited resources.
I think this is one aspect of software design that deserves more attention.
Disclaimer: I’m not calling out any particular piece of software.