From the perspective of an end user, what makes a software great rather than just good or functional? What are some fundamental principles that can shift the way a software is used and perceived? What are some of the little finishing touches that help put an application over the top?
I'm in the later stages of developing a web app and I'm looking for ideas or concepts that I may have missed. If you have specific examples of software or apps that you absolutely love, please share the reasons or features that make it special. Keep in mind that I'm looking for examples that directly affect the end user, but not necessarily just UI suggestions.
Here are some of the principles and little touches I'm trying to use:
Keep the UI as simple as possible.
Remove absolutely everything that
isn't necessary.
Use progressive disclosure when more
information can be needed sometimes
but isn't needed all the time.
Provide inline help and useful error
messages.
Verbs on buttons wherever possible.
Make anything that's clickable
obvious.
Fast, responsive UI.
Accessibility (this is a work in
progress).
Reusable UI patterns. Once a user
learns a skill, they will be able to
use it in multiple places.
Intelligent default settings.
Auto-focusing forms when filling out the form is the primary action to be taken on the page.
Clear metaphors (like tabs) and
headings indicating location within
the app.
Automating repetitive tasks (with the
ability to disable the automation).
Use standardized or accepted
metaphors for icons (like an "x" for
delete).
Larger text sizes for improved
readability.
High contrast so that each section is
distinct.
Making sure that it's obvious on
every page what the user is supposed
to do by establishing a clear
information hierarchy and drawing the
eye to the call to action.
Most deletions can be undone.
Discoverability - Make it easy to
learn how to do new tasks.
Group similar elements together.