Edge cases are the little pieces of a project that make or break a user’s experience. You’d be surprised how much of an impact the way you handle a 0 results found situation has on customer retention. Nevertheless, most designers I work with don’t really give edge cases any attention.
An edge case is a problem or situation that occurs only at an extreme (maximum or minimum) operating parameter.
In my experience, designers only create layouts for the best case scenario. After that, they just ship off the designs for development to figure out all the unpleasant edge cases. The problem with that approach is things get lost in translation, and it generally leads to a recursive (and sometimes costly) cycle of design/development review.
Example: No results for a search query
When designing a search page, it’s common for the design team to only consider how things will look in an ideal scenario – that is a search that actually returns results. What happens when no results are found is usually left for the development team to figure out, and thus the cycle begins.
Default behaviour for a search query is an if/else condition with the results: if found, show results, otherwise, show some sort of no results found message, if for no other reason than to confirm that the search works and it was performed. It’s not obtrusive to the codebase, so it’s implemented as the default fall-back for a failed search.
A simple no results found message is a pretty weak user experience. It’s not a very convincing method to convince the user to search again. A better experience would be to try and salvage a failed search: Show the no results found message, but then suggest alternative search terms or present alternative content, like reading one of the top 3 most popular articles on the site. The design team will put together some mockups.
Tracking search results and content popularity is outside the initial scope. While technically possible, the suggested ideas don’t happen, because deadlines and budgets were set under the premise of a basic search experience.
Design and development teams eventually reach a compromise to display a softer-toned, and visually appealing, no results found message, encouraging the user to try another term and presenting the search box as the single action item on the page. An auto-populated category list is offered underneath the search box as an alternative to a new search.
Rinse and repeat for pagination.
Avoiding the headaches
The majority of what was outlined in the example above can be avoided by putting the onus of handling edge cases on the design team. By designing layouts that address both the minimum and maximum scenarios, design teams will create accurate representations of needs and limitations.
The end-user benefits with an engaging user experience. The development team benefits by receiving a clearly defined project scope, eliminating hidden functionality that otherwise wouldn’t be discussed until after work had begun. And, the client benefits by all the timeframes and budgets being made based on an accurate scope of work.