If it can’t be seen, it won’t be used.
This is true for all apps that should be quick to use. ie, a search page should not encourage lots of clicks to reveal lots of options and therefore loads more clicks. My professional experience comes directly from implementing facetted search systems. Search facets tend to take up a lot of space and can be overwhelming for a user if not well designed. For this reason most businesses make the mistake of collapsing the facet and letting the user reveal the facet options on demand. This of course means that the user doesn’t know what options they have until they expand the facet. This results in the average user ignoring it completely. Apps that require more time on a page or careful configuration like an advanced options list or settings page can get away with hiding/minimising some things….
A good example for resolving the above problem is by leading the user. The google search page displays (currently) 6 additional search categories on the left side bar and then a ‘More’ button. Most users will ignore this area and never click the More button but the more adventurous users will read the first 6 options and be keen to see what other search refinements they could make. They have learnt what value that area brings without much effort and are keen to see what might be hidden.
This one’s rather obvious but I thought I’d mention it anyway. Don’t give the user too many options at one time. Limit the actions to 3 at once. A user could decide between clicking 3 different things. In terms of the google search image above, choosing a search category or refinement is 1 action. Choosing to refine the text query is another. I don’t even see the advanced search options link anymore. In a standard single page view, I have 2 actions I can take/see to modify my google search.
Setting good defaults.
Perhaps the most important lesson I’ve learnt which is based on the premise that users are lazy and dumb. Your default settings need to be the most visually engaging and functional. For example, I worked on a timeline tool that had 3 view modes. These were called ‘zoom 1’, ‘zoom 2’, and the cleverly named ‘zoom 3’. The concept was that the view or zoom mode corresponded to the amount of time data (results) that could be viewed on the timeline canvas. Starting at zoom 1 seemed to make a lot of sense to us at the time because that’s the best overview mode that would show the longest time frame and therefore the most engaging data set. This however proved to be a disaster as no user could understand the zoom function and found it time consuming to interact and view results in zoom 1. We eventually set the default to zoom 2 that provided more of a text based summary overview of the results which lead to instant engagement and understanding. It was the most flexible view mode that worked for the largest user group. Advanced users would be able to find and play with the zoom mode as desired but the average user could still use the basics of the tool without feeling like the tool was too complicated.
If you take the approach that the user won’t change any settings, click any boxes or use any search filters then you have your average user and therefore your starting point for deciding on the best defaults.
Left: a snapshot of the 1000+ permission combinations for Drupal and each user role. Having the wrong defaults in this case would not only be a massive security risk but also a 5 hour headache in resolving them. Defaults related to the user interface are just as important.
For further reading I found a nice discussion on displaying system settings and the complications involved when breaking up basic and advanced settings. The end conclusion, set good defaults!
Advanced options are bad, intelligent code is good.
I’ve come to the sad but happy realisation that users have high expectations. I don’t blame google for their clever web apps or search systems. I think this problem has always been around since someone said “Technology will solve everything”. I have built many different web apps and made many customisations to complicated search/filter systems and the one thing I’ve learnt is that it’s not always worth the money. A good example of not having advanced options but rather intelligent code is the google search and map systems. They have exactly 1 search input to handle any search. Google maps could quite easily have 3 text inputs: query, location and category. Instead they intelligently understand from a single input what might be a location, query or category and even the semantic relationship between all 3. This is what users expect these days. The computer should know what I’m thinking. Why do I have to tick boxes and fill in lots of form data? The computer should understand my habits and make useful recommendations or make suggestions to improve my experience.
Get feedback from real people!
Obtaining useful feedback early on and throughout a project is by far the most overlooked and undervalued process in the web/software world. By real people I mean NOT your programmers, not your business directors and not anyone that is not the average user or has conflicting interests. Any usability expert will tell you that you need to segment your user base and understand their needs properly. One doesn’t have to go down the path of ‘scientific usability testing’ but the simple method of asking friends and family (the real users) can bring a lot to the table. 90% of critical design changes have actually come from my (now) fiancee. She’s not afraid to say “it’s crap” or “I don’t get it”. As I’m usually too close (and speaking as a developer) I often retaliate on these remarks and try and prove the past decisions to be good ones. After crossing the “oops, she’s right” threshold, it’s easy to see the flaws. It’s amazing how many poorly constructed interfaces are out there that constantly annoy the user. A lack of respect for your user and their honest feedback means poorly designed interfaces (and functional systems) and therefore frustrated, angry users.
If “peace on earth” was my next project I’d start with getting feedback from those that actually have a vested interest in the planet and it’s future. Politicians, business men and banks are all in un-biassed positions to provide useful feedback.