Universal Directory for enterprise

As the design lead for Directories, I found myself constantly making small tweaks to the Universal Directory UI due to numerous performance issues. After conducting further research, it became clear that the Universal Directory product required a new conceptual model that could meet the ever-growing needs of enterprise customers and their scalability requirements.
the team

1 PM director, team of engineers, 1 researcher, 1 product designer

MY ROLE

Product design lead

TIMELINE

2021-2022

Problem

The Universal Directory EPD team was reactive and had to create design band-aids due to all the performance issues with the UI for customers with hundreds of thousands of users. Some customers were churning or having to build their own solutions with the APIs.

While the design fixes were helpful for unblocking these customers, they weren't enough to make Universal Directory ready to support customers with a large number of users. To address this, I spearheaded a generative research study to better understand how we could redesign the experience to be more scalable.

Background

The Universal Directory service provides a centralized location for businesses to manage user identities and access to resources, including applications and APIs, in a secure and scalable manner. It is designed to simplify identity management, reduce IT burden, and increase security.

Current experience

Understanding

Generative discovery research

I conducted a generative research study to better understand performance issues and customer needs.

Eng conversations

Initially, I talked to the ENG team to understand all the performance issues. Here are the findings:

  • The user count on the filters is expensive and is a big reason for the timeout issues.
  • The search paradigm is also causing timeout issues because we start searching after the user types three characters, and we search six attributes for every single character. This is especially problematic for group admins, since we have to look at all the users, then look at the groups they manage, and only show those users.
  • Elastic search has limitations and can't provide the actual number of pages for pagination, giving a misleading number of pages after the job times out.
  • According to Splunk data, the people page fails to load for 8% of our customers.

Survey

The information provided by the engineering team was insightful, but I also wanted to understand how our admins use our product and what their pain points are. To gather this information, I conducted a survey and received 30 responses.

Search

According to the survey results, the biggest pain point for our customers is the search functionality.

“I find it hard to use UD as a replacement for AD just because of how it’s impossible to search for users”
“search needs improvement. Search doesn't include all users. Add filters, sorting options, search by all characters not just by first three letters”
“The search bar in the UD page does not handle search at scale”
“to be honest, we don’t even look at the initial records since we are there to search and therefore it seems to be a waste of search cycles and data transfer to even list the initial batch of users”

Filters and bulk actions

They also asked for more granular filters and better bulk actions:

“Not all statuses are easily filtered by the criteria on left. Would be fantastic to have filtering based on what system a user's profile is mastered by”
“Users created in the past x days, users deactivated in the past x days or show deactivation date for deactivated users.”
“Being able to perform bulk actions the same way as actioning under an individual person record.”
“Bulk actions are useless, I still have to search one by one then perform the action, instead of a better search to narrow down the list of users, then perform the bulk action”

Pendo metrics

To understand user behavior, the next stage of my research was to examine Pendo metrics.

71% search for users, after searching 83% of admins click on a user, 11% navigate to other parts of the product, 2% clear the search, 3% drop

Research analysis:

  • Better search -> 71% searching is the first interaction
  • Search doesn’t work -> We are querying 6 attributes/columns after 3 letters
  • No granular filters -> 0.1% click on filters -> Count is expensive
  • Bulk actions are not useful -> 1% click on bulk actions
  • I have to build custom pages with APIs -> API supports granular search

Defining

Based on the research, it was clear that we needed to fix our search functionality, not only because it was causing performance issues, but also because it was the main action admins took when landing on the page.

The PM and I met to discuss our findings, and we realized that we already supported many advanced filtering options in the API.

  • Since 71% of users rely on search as their first interaction, and the APIs already support granular (user profile attribute) filtering, it would be low effort but high impact and value to build a front-end for advanced search.
  • Given that filters and counts are only clicked 0.1% of the time and the current filters don't meet customers' needs, we can rethink the pattern.

Less than 1% of users clicked on bulk actions, and customers mentioned that bulk actions are not useful because there is no way to narrow down the list. Including advanced search for bulk actions might solve that pain point, as admins can search for specific users and then perform bulk actions.

User story maps

To fully understand all the lego pieces that we need to move, I suggested creating a user story map to identify all the steps and different options. This will also help us map the new experience and compare different flows.

Initial concepts

The PM and I wrote some user stories, and I used them to start mapping wireframes and possible ways of redesigning this page. Some of the concepts included:

  • Faceted search,
  • visible in-line search,
  • hidden in-line search,
  • flexible filter.

Designs

Search

After internal testing, we found that the most scalable pattern for our needs was flexible filtering. I experimented with having it in-line and in a drawer, but we did not have a drawer component at the time, and adding one would have increased the scope of the project. Therefore, we decided to abandon that concept.

Bulk actions and filters

Initially, we thought we could simply add the "advanced search pattern" and call it for bulk actions. However, after mapping a quick information architecture, we realized that we would have to implement the advanced search eight times. The ENG team was concerned about the increase in scope.

Using this information, I proposed a different approach and decided to bring bulk actions to the main people page, and the actions would be displayed based on the user's status. ENG approved this design since it was significantly easier to implement, and the advanced search only had to be implemented once.

End-to-end

Testing

We conducted an unmoderated usability tests on the new model during Oktane, and the feedback was very positive. Participants were able to complete tasks and commented on how familiar the experience felt.

“Simple and easy to navigate”
“The search is a huge improvement”
“The new bulk actions design is going to save me hours every week“

Results

For phase 1, we only implemented the advanced search in the people page since there were some dependencies on the bulk actions.
Some of the results after launching the Advanced search:

  • Search performance increased 78% - reducing the customer support tickets and people page blackouts
  • filter count performance was reduced to 1/8th - significantly improving the page performance

Learnings

  • When developing a product, it's important to use both qualitative and quantitative data. This approach ensures that you have a well-rounded understanding of your target audience and their needs. Qualitative data provides insights into the human experience and can help you uncover problems or opportunities that quantitative data might miss. Quantitative data, on the other hand, provides statistical information that can help you understand trends and patterns. By using both types of data, you can make informed decisions that will lead to a more successful product.
  • When designing a new design pattern, it is important to think holistically.