Together with the rest of the LiveDataset team, we continuously enhance LiveDataset, releasing new features, improvements, and bug fixes every two weeks. At regular intervals, we need to stand back and rationalize features that have been improved with several incremental additions.
We always try to strike the right balance. On the one hand we want to add useful features. And for usability, we want simplicity as discussed in Less is More.
Search is a good example, where we have added several different ways for people to find data. Each method is useful individually, but having so many different methods to choose from makes the user experience too complex.
Too Much Choice
To ‘search’, you can use:
- Home page to find a dataset.
- Top bar to find a dataset including ‘recently used’.
- ‘Find’ to look for data in any column in a dataset.
- Filters to match column criteria in a dataset.
- Personal views to save and reuse filters.
- Predefined views for advanced filters.
A consistent theme in user feedback was that people “just wanted to be able to search their data and not worry about filters and settings.”
This is how we went about improving and unifying the search user experience in LiveDataset, to:
- Search for datasets and data inside datasets.
- Search for data across all the datasets the user can access.
- Be available from anywhere in LiveDataset.
- Simplify the search user experience.
Where to Start?
LiveDataset has many active users across several applications, which we need to continue to serve while we make regular upgrades to the code. Considering this, I took an iterative approach to designing and implementing the changes.
With no existing global search facility in LiveDataset, it was difficult to know where to start. I looked over what we currently had, to identify some options.
One candidate was the ‘search’ on the home page that filters the list of datasets on the home page. This is a prime location but it’s limited to just this page. So this could not be a global search and would have to go.
In the top bar, there was an open dataset feature hidden behind a magnifying glass icon, which was trying to be some kind of search. This was quite limited functionality and the usage stats told me that this feature was used only occasionally. This is also a prime location and appears on every page. Instead of removing it, I chose to try and make it better and fulfil the desire to have a global search.
We also had to decide what could realistically be implemented in a short space of time. I realised that being able to easily find datasets and views from anywhere and jump straight into them could add some short-term benefit. We could do this to buy ourselves time to engineer the back-end code to support a deeper search.
Searching for Data
Our clients were asking us for the ability to search for data deep inside LiveDataset and get to what they needed quickly. Data in LiveDataset exists inside entries. As there can be a massive number of entries inside a dataset, searching entry data can take a while. This would be an important challenge to address.
We needed to manage the time lag between requesting and retrieving search results in a way that felt natural to the user. We decided to adopt a two-stage approach, so that users could get some immediate feedback showing matching datasets and views before diving deeper into an entry search.
Indexed Columns
The thinking was that once someone has positively committed themselves to a deeper search, they could tolerate waiting the few seconds it might take to get some information. Additionally, we were searching datasets, views, columns and entries and had to be clear where matches lay without overwhelming the user.
Coming Soon
The initial set of changes have been made. I’m happy with these improvements and client feedback has been positive. These changes will be gradually rolled out, after carefully assessing the impact on accounts with large datasets.
No doubt our search feature can be improved and we will develop the functionality further. And as we work in the real world any decisions we make will be based on feedback, statistics and commercial reality.