“How might I provide users with more control over their indexing settings without slowing down the performance of the application?”
Introduction
Indexing settings allow the user to customize how files and directories are indexed by ArcGIS Pro. Indexing is crucial for search; if ArcGIS Pro does not index files and folders it will not be able to perform search by keyword, file type etc. However, indexing can directly affect performance of the application. Thus users may want to customize options in order to limit performance or focus on indexing files in a specific way.
Team:
UX Designer (me)
Product Engineer
Developer
Complexity:
Short turnaround time
A new design pattern for the app
Highly impactful to performance
My Role:
Design Research
Workflow Definition
Information Architecture
Wireframes
Visual Design
Problem Overview
Indexing settings in the Options dialog
The current state of Indexing Options (settings) did not provide users with too much control over indexing their items. These were some of the known functionality issues:
Users had limited control over when and how indexing should occur.
Users did not have a way of knowing how many items were indexed or how many were left to be indexed.
Users could not control which files or directories were to be indexed or where they would be stored.
Research
User Feedback
After studying the product help documentation to gain domain knowledge, I read through the user feedback on GeoNet (user community forum). I learned about all the varying (and conflicting) user needs with respect to indexing:
Some users that did not want indexing at all, because they worked with projects having very few items.
Some users that wanted to index their project items only, and not their local drives. They were likely schedule indexing to happen at a time when they were not working on the application.
Users that did not want to index project items, but only the local drives. This was because their project items were largely organized in the same way across the board.
Users that did not have control over their indexing schedule, as it was for their organization's administrator to set up and run.
“I realized that we needed to introduce much more flexibility in terms of scheduling and directories to be indexed.”
Design Requirements
I used the research to develop a set of design requirements:
Provide options to initiate a rebuild of the index manually.
Provide an option to let users add new items to the index immediately.
Provide information about the indexing status:
The number of items indexed
Rebuild of index (reindexing)
last start time
last duration
Incremental updates to the index
last start time
last duration
The indexing schedule (when it will run next)
Define specific folders/directories to be indexed.
Design Solution
Design Concept 1 - Dashboard View
To show multiple locations and items to be indexed along with their settings inline, I created a table to provide key information in a concise way. There is also a list of directories to exclude from indexing. I added a toolbar at the top of the table to include commands for indexing (shown on the right of the dialog).
Feedback:
The dashboard created confusion, in trying to be concise.
Scheduling was also difficult to understand, as it was not clear what the status read with all the jargon (manual, recur, reindex).
This concept sparked important discussions and helped us uncover developmental constraints as well as fine-tune the requirements. Two additional requirements added were:
There should be a set of general options for indexing and a set of specific options pertaining to indexing each folder/directory.
Promote best practices by educating the user on the trade off between quality of indexing or performance of the application, based on the duration of indexing.
“In trying to accommodate a lot more complicated settings, as part of the added requirements, I encountered that my biggest constraint - lack of space.”
It was almost impossible to include all the settings with their branches of ifs and thens without cluttering the dialog. I went back into UX pattern research, when I found that Microsoft Outlook's Settings page had a page takeover interaction. This worked in the context of ArcGIS Pro since both the Options dialogs are similar in design.
User clicks on the Edit button (pencil)
Page is taken over with the Edit workflow (with buttons for Save and Discard at the bottom to return to the original screen).
Design Option 2 - Page Takeover
Following the design pattern from Outlook, there is now a clear divide between general options (indexing properties), and scheduling options for each directory.
Add Location button takes user to the next page
Page takeover with additional settings
The info tips and default values would help set the optimal indexing options and promote best practices. The status at the bottom would also be an indicator of how the user could change the settings over time.
Feedback:
While the page takeover cleaned up the UI significantly, there was still some confusion around the general vs. specific settings and how the user would know to organize them. This led us to come up with two more design requirements:
Indexing properties (general settings) should be applied across all folders and should not be available at the location level, so as to remove redundancy.
The scheduler should be able to accommodate more use cases. We found that there were clients who wanted to index their projects once a year, twice a month, block off during work hours, or every few hours.
When tasked to design a complex scheduler, I took my designs to the weekly UX team demo to seek some ideas and inspiration from my colleagues. I discovered that there was a concurrent project where another functional team was looking to add a scheduler experience for their tool. We turned it into a cross-team collaboration to ensure that both designs were consistent across the app and found a solution.
Indexing Options - in Beta!
Design Concept 3 - Page Takeover with Scheduler
This was the final design which is currently in development (slated to be released to public in January 2021). Note the improvements from the last design:
Included scheduler dialog from cross-team project. Based on your first selection for recurrence, the scheduler content is populated with corresponding form fields.
Tweaked language in the UI (ex: “Add” items is replaced with “Update” items).
Two page takeovers added - one for general indexing settings and the other for each location’s specific settings.
Scheduling best practices show up with a warning icon, if user sets something that will either affect the quality of indexing or the performance/speed of indexing.
Impact
This design was shared across multiple teams and brought to a Product Integration meeting (when any new pattern is introduced to the product, it goes through a rigorous design review with the product leads). Product Owners, Product Engineers and Developers across the board said that this was a huge step up from the indexing options before.
“I use a lot of products with indexing and this experience makes it more usable than any other application I have seen.”