|"A harrowing tale of one man facing his search daemons" Sergey Brin|
9 out of 10 technical projects which fail is because of badly thought out and executed search. Okay, that number is a piece of fiction; but, my hopefully empathetic friend, that is how I feel; because yet again I am fighting the same old user experience battles when it comes to designing search.
I think the root cause of search atrocities is, like most heinous and tyrannical acts, due to ignorance combined with wild ambition. Let's stuff everything cool we've ever seen on any site that I've ever dun a search on and then it should be wickid, yeah? No. What about fuzzy.. No. What about nice mix of facetted did you means? No. What abou... No. No. No.
Now, before I cast myself in a dubious light of technological pessimism and creativity bashing egotism, let me take you down the river on a journey of exploration and discovery into tech rash's top dos and donts when designing and building search.
Don't try make it too simpleDon't get me wrong, sites which automagically work out what the user is looking for and then display results tailored to your personal needs are super. I can actually only think of one search engine which comes close to that Utopian dream but that is what they do-ogle.
In most cases, generic search fields which work out what the user wants to search against end up being confusing to the user and some times impossible to build.
Even the mighty Amazon make the user select what they want to search for.
Don't try make it too cleverOften search tries to be too clever in an attempt to compensate for the poor user who couldn't find a piss up in a brewery. Fuzzy logic rules are added to make decisions for the user and bring them back those precious results he or she craves. Often this ends up confounding the simple minded cretin and they see results appear which don't seem to have any bearing on what they entered in the first place.
A search crime which has some of my DNA was to expand the search radius on a location based search if no results were returned. This just didn't work because the world is a big place with things scattered all over it in different patterns. From the users perspective they would get wildly different results depending on where they searched. To exacerbate the users frustration the search results page didn't have a map view or a radius picker.
This leads me onto my next tip:
Show the user what they've searched forIn the example above, a map and a radius picker made the original intentions of the search known to the user and allowed them to override any default selections. An empowered user is a happy user.
Don’t mix your metaphorsThere are a number of different techniques to assist users in narrowing their search results. In search two main approaches are called ‘drill down’ and ‘parallelism’.
Drill down is when a user executes a search and gets a list common facets next to their search results. The user can then select one facet to further narrow their results. Amazon, for example, use this drill down approach.
Paralellism is when the user is presented with a number of filters they can apply simultaneously to the search. These are often seen on flight/holiday booking or property web sites where the customers need to be able to select varying combinations of values. In the property example, price range, number of bed rooms, locations etc are all attributes that could have a variety of combinations.
Mixing these two metaphors is fraught with complexity and generally a nightmare to build.
This article details the pitfalls of mixed search metaphors.
To sum up this point, mixing your search approach is treading on thin ice!
You can only search what's thereSometimes I've seen wire-frames where the search had awesome auto suggest features and amazingly juicy data sets you can pick from and harvest a bumper crop of results. Every now and again, this may have as well have been auto suggest made out of unicorns and filters made out of network administrators who don't like metal. E.G. I.E. not effing possible.
This rule here is simple: check what data you can search for before you design your search experience.
Performance AnxietyThis tip is squarely aimed at tech. Searching for stuff can be resource expensive. Add load onto that and poorly designed search could end up crippling your site. Make sure you do proper load testing if there is any doubt about how your search will perform under stress. Otherwise, we will see how you perform under stress.
And finally ...
Don't forget about the little thingsRemember the little things like sorting, paging, what happens of 0 results are returned and number of results to display in a result set. These things have an impact on both the user experience and the tech build.
That's it for some common crimes I've been privy to and learnt from. On reflection much of these have made it through to the build phase and slipped past my defences. And that makes me culpable.
So this is really all about me and expunging my own sins on search gone wrong in the past.
Just like General Kurtz in Joseph Conrad’s ‘The Heart of Darkness’, this journey has forced me to confront my own deamons.
But I won't let it drive me insane. Next time I will just whinge a bit louder.