Sunday, January 25, 2009

What do You Suck At?

In my humble opinion, this is an important questions that you need to keep asking yourself. My current day job is very political. I've actually been spoken to by my management for saying things like "we suck at this", or "we don't do X very well". Their response is typically..."don't say we suck--say we have opportunities". Don't get me wrong, I understand the need to stay positive (particularly in the management role that I'm in). However, if something needs to be changed, you need to create a sense of urgency to make that change. Otherwise, it will just fester waiting for somebody to take the "opportunity" to fix it. So what do I suck at (and when I say "I", I'm referring to foodfinder.net.

I SUCK as search. It's a strange thing to have to admit, because I have tons of experience with many different types of product search ranging from the travel industry to retail. Anyway, I really dropped the ball with FoodFinder, but luckily, I have a plan to rectify this.

Lets take a look at how search works now:

  • A user enters a location and optional keyword

  • The address is resolved to a longitude/latitude and the user is shown restaurants within a 5 mile radius of that point

  • If the user enters a keyword, a LIKE operator search is applied against the appropriate fields

  • The user is brought to a page with a list abbreviated results of restaurants and menu items (6 of each) that meet the search criteria. At that point, they can click to choose which they want to see (there is no paging on this page)

  • Once they choose, they get expanded results and paging. They also get a refine utility that allows them to filter results by price, rating, keyword, distance, and rating status. They can also rate the inline and load menus inline.

  • All search logic is done via AJAX calls from the browser.


When I wrote this, I had many factors in mind that I was trying to address. How do I let the users search both restaurant and menu items with the same input form? How can I get users rating food and restaurants as soon in the experience as possible? How can I make the results as fast as possible with current hardware limitations? I address all of these concerns, but the final result was search tool that gave a piss-poor (almost unusable) search experience.

Since the initial launch, I've had to go back and revisit several key areas of the site. I've got a long way to go, but I finally have a vision for resurrecting FF's search functionality. My plan is as follows:

  • Get rid of the AJAX. This will help with users who navigate with the back button (like I often do), and give them bookmarkable query strings

  • Integrate "Intuitive Location Filtering". If a user enters "1 main street, san diego ca", they're probably interested in seeing what's near them (in which case, the current model is probably fine). If they enter "San Diego, CA", they probably want to see the entire city. I will be crafting a routing that tries to determine what the user really wants by their location query and filter accordingly.

  • Enhance the keyword part of the search. Right now, if you enter "Ruths" as your keyword term, you will not get see "Ruth's Chris" because of the apostrophe. The new algorithm breaks down the keyword phrase and evaluates the individual terms with inappropriate punctuation removed to treated as word boundaries.

  • Add a search summary and advanced options in an obvious place when a search is completed. This will allow folks to see exactly what they're looking at (particularly important with the intuitive location algorithm) and how to modify those options.

  • Get rid of the multi-state. It's confusing. One state will exist for search and users will need to click through to a restaurant to get interact with the data.

  • Leverage the work Google has done. Google is the undisputed kings of search. They have already trained the community to deal with different types of data consolidated within one result set. Why not take advantage of the "training" that they've already invested in?

  • Let the users sort. Duh. Users can only filter (if they can figure out how). Let them sort the results to better aid them in what they're looking for.

  • Add support for tags. Tags are a great, free-form organizational tool. Sites like http://delicious.com/ have done some amazing things with tags (there are also sites that haven't figured it out yet). For me, relying on the community for restaurant meta-data, I really need to make tags more powerful. Don't worry, I'm on it.


Well, that's it. It's a lot to bite off, but I really think it will be worth it. Plus, the work I'm doing on search (and have done of the restaurant page with menus) will set me up for a mobile implementation.

So, what am I missing here? I'm sure there are several things. I'm also sure that these changes will be an exponential improvement over the current search experience. Any thoughts?

3 comments:

Matthew Marksbury said...

This sounds like a great opportunity! :)

I think it will make the FF experience much better and I look forward to checking it out.

One suggestion...consider auto-complete. I originally didn't like it when Google added it, but I've found it quite useful as of late.

Good luck!

jkody21 said...

That's a good point. Another thing I'm going to do is if a user result set has 1 restaurant result, take them right to the restaurant page (similar to IMDB).

Mike McC. said...

Have you considered software to resolve a requestor IP address into regional info? I don't know that there are any freebie's out there (because the products rely on regularly updated data repositories). But depending on cost obviously, you could refine your initial search criteria to the user's geographical location by default?