Our product contained a number of pages that simply listed all of a given type of object. This wasn't particularly performant, and as we tried to fix the performance issues, we realized that we weren't sure why users went to these pages or what they did there. We wanted to find that out so that we could effectively balance user experience and performance on these pages.
We started with exploratory research. We interviewed users about how they used a number of these pages, taking note of the various use cases. We had the interviews transcribed, and grouped user statements into affinity diagrams. We then made a spreadsheet that contained the statements for each affinity group and subgroup. From this we found that:
For a given list (a list instance for an object type), for the item they are trying to find, users tend to need to view one of a small set of datapoints and/or to perform one of a small set of actions.
I saw that there was a disparity between the primary user goal (find a single item) and the primary user action (scroll through a list rather than searching). Looking at our lists, I saw that we did a number of things that discourage users from searching. These included:
To encourage searching and facilitate common use cases without negatively impacting other use cases, I created a design where: