This week I gave a talk at Ignite Melbourne (Slides are below), the topic of which is how to beat google at relevancy. My opinion is that with a small team of dedicated and passionate people it is possible to build a search capability that can rival Google.
Let me first say I’m not talking about web search, at the moment Google has that market pretty much sewn up and it will take a new level of technology (possible the semantic web) to better them, however I firmly believe that if you focus on a market segment or consumer niche you can build a more relevant search experience (Step 1).
Once you have defined your niche, understand why users are searching your site, what is their goal. Users don’t search because they have a spare 10 minutes over lunch, they have a problem they need to find a solution to, search is a mechanism by which they can select a supplier to solve their problem (Step 2).
Next consider the context of the searchers query. What do you know about the searcher, the intent of the search, the device they are searching from, their location, the language they use, even the time of day they are searching, all of this information can be used to deliver an individualised search as opposed to a generic search for the masses (Step 3).
Once you understand the context of your user, think about their end goal and identify what information would allow them to compare and contrast between the results you return (Step 4).
Finally build you search algorithm so that it can dynamically take the context of the user, their intent and the content that can support the compare and contrats process and deliver results based on all of this information (Step 5).
So my 5 step process to beat google is:
1) Pick your niche
2) Understand your users goal
3) Consider all of the context you know about your user query
4) Identify the information that allows a user to compare results
5) Build an algorithm that considers all of the points noted above.
Even if you don’t want to beat Google, using the process I’ve noted you can improve on the user experience that you deliver to your users and this can never be a bad thing.
This is the video of my talk at the Lucene revolution conference in San Francisco. If you don’t want to listen to my voice the slides are availble on slideshare..
Search, APIs, capability management and the Sensis journey Presented by Craig Rees, Sensis from Lucene Revolution on Vimeo.
I’ve always thought that managing an internal capability or technology platform requires the same processes, artifacts and resources as you use in managing an external technology product such as Websphere or Vignette.
6 months ago, a couple of colleagues (Craig Lonsdale and Pete Crawford) and I were discussing our plan for improving search within our company, we wanted to document our progress as well as define where we were on our journery and where our target for the future was. I had used the CMMI framework before to quantify how well organisations delivered projects and it felt perfect to try and use the same framework in defining on well an organisation managed their search capabilities.
The Search Capability Maturity Model that we came up with looks to quantify the stages an organization goes throught as they become more mature in managing search as a true capability as opposed to just installing it and hoping it works.
Organisations move through the different levels as they grow and become more adept and knowledgable, fundamental to the model is that it’s very difficult to jump levels, I know this from experience, especially when you look at the upper levels of the model such as utilizing external collaborators.
I have worked in a number of organisations and they rarely get past the adhoc level unless you are talking about the Google’s of the world and because of this they don’t get to see the huge benefits a good search capability can deliver (to be honest this model can be taken beyond search and can be used to track the management maturity of any type of capability).
Search is a capability that changes over time, search patterns change as user experience changes, language moves forward or content is updated all of this means you need to dedicate resources to managing search.
Start off easy, set up a reporting program in order to quantify how well your search is meeting user expectations. Simple things like zero results can point you in the direction of big problems. Once you have identified the obvious issues you can start to use path analysis to pick up commons search types. Focus on these and you will see your user satisfaction soar. Then in the words of agile development, lather, rinse and repeat.
When it comes to your site, I’m sure you spend a lot of time working on your UI to make it look good and ensuring functionally works but how much time do you spend on the content you publish, how do you enusre it is fit for purpose, as you roll out new features do you think about how those features will look / work when you don’t have content depth to support them.
For information rich sites the content you publish is just as important as the features you have on your site, in fact at times it doesn’t matter how great your interaction model is, if the content isn’t there you are off to a losing start.
In my opinion you have to understand what the needs of your users are and how your content will support those needs in ordre to have a chance of success. To do this you need to define a framework by which you can qualitatively and quantitatively measure whether you are meeting those users’ needs.
Path analysis, satisfaction surveys, competitor analysis can all be used to define the needs of your consumers (or your perspective consumers if you haven’t launched yet), once you have identified the primary needs you can then identify the types of content you need to publish to support those needs. Once you have defined the needs of your users you can quantify how well you currently meet those needs, where the gaps are and what you need to fill those gaps. You now have a framework by which you can monitor and track your improvements.
Now its all about prioritizing your content roll out plan and away you go.
I was at a talk tonight orgainised by CHISIG that was titled Agile or Fragile, practicing UCD on Agile development projects. A number of experienced speakers took part (all from a UX background), what was interesting to me was the types of phrases that came out of the discussion were very similar to the phrases I have heard from the development arena when they first start to use agile processes, mainly that they need to spend time up front getting their ducks in order prior to engaging with other disciplines. This makes sense, designers want to define user experience frameworks and Information Architectures as well as conduct high level research, Developers want to define architectural frameworks and data models. For me this can lead to projects that have a kick off phase of 3 months where each discipline does what it has to in order to “start up”. Everyone wants to kick off a project well, but sometimes its best to minimse this kick off period and jump in with both feet and iterate as you go, obviously tools, patterns and frameworks can aid in this process.
For me the biggest disappointment of the night was that no one had come up with a true implementation of an agile design/development team, most of the examples discussed had staggered iterations where design work was handed over to developers in a subsequent delivery phase. To me this is not a fully collaborative team environment, someone always feels left out of the decision making process – Perhaps this is as good as its gets and we won’t ever see full multidisciplinary teams working collaboratively in a combined sprint, personally I hope this is not the case as we gain so much more from bringing together different view points even though the process can be extremely challenging at times.

