Navigation Refresh

.

Top Hat – 2022

.

Top Hat is used by millions of students to access engaging course content both inside and outside of class.

The surface area of Top Hat's platform has grown immensely in recent years, but the primary navigation for getting around was struggling to keep up.

I took stock of what needed to change and worked to ship a new implementation of the navigation. Along the way, I had to account for many potential states, our own user's "muscle memory", and building for future features.

Selection of images showing the final navigation design.

The Existing Navigation

It's easiest to think of Top Hat's platform as having two "sides":

  • Instructor-side: where professor's organize their course content, assign it, and (later) grade student's work.

  • Student-side: where students can access their course materials and complete assignments both in and out of class.

The current navigation was effectively completely different for both of these areas, despite having a lot of common elements. This created a number of usability issues:

Two images showing the old navigation. Callouts various issues and inconsistencies.

Additionally, many years of feature development had evolved the platform significantly. The navigation didn't always keep up with this, leading to a large volume of inconsistencies across views.

Selection of images of the old navigation showing additional inconsistencies.

Beyond user experience, Top Hat as a business was also starting to feel strain from the navigation:

  • Expansion: finding places for new offerings that didn't quite fit the mold was difficult.

  • Technical: the implementation of the existing navigation code was expansive, brittle, and difficult to work with.

All of these issues motivated our team to re-think the navigation from scratch.

Mapping it Out

After spending some time gathering a deep understanding of the various states, exceptions, and edge cases the navigation can be in, I started my explorations with a site map.

In the early weeks of the project, I was really focused on seeking simplicity. I tried to radically reduce the number of items supported by the navigation.

A visualization of a potential site map for the new navigation.

An early attempt at a new site map. In retrospect, this one was naively simple. More complexities would emerge.

This became an essential document for discussing options with  stakeholders and helped me gather more requirements.

These resulted in a new information architecture for both sides of the platform that was clearer, but handled all the possible states that needed to be supported.

Arrangement of images showing the final site maps for the instructor and student sides of the platform.

The completed sitemaps: less "simple" than I had idealized, but accounting for everything needed

There were a few big principles I wanted to make sure were built into the new system:

  • One navigation: regardless of what "side" of the platform you're on, the navigation should look and function the same.

  • Patterns for scale: ensuring the interface I constructed didn't make too many assumptions about the future of the platform. Future features I didn't know about yet should have a "place".

All of these ideas informed my final implementation.

Focusing on the system

My early design work focused on trying to build out a small system for the navigation that offered a lot of options for customization while still keeping a cohesive look and feel.

Images of a draft interface for the new navigation. Labels show how the system might work.

An early draft of a new Navigation System. This helped build consensus with teams (how their domain 'fit')

I decided early on that the design exercise here was more about evolution than revolution. With literally millions of potential users that would access it, I knew I had to be intentional about what would change.

Testing to Build Confidence

As aspects of the navigation system began to"lock-in", I started clarifying what parts had a lot of uncertainty around them.

I choose to run a small unmoderated usability study where I had 15 Top Hat power users complete some navigation tests to see if I was on the right track.

Test A: Getting between courses

Exiting and entering different courses is an essential user flow in Top Hat. Although the placement was roughly the same, the presentation, naming, and other details were quite different:

Image of the new navigation - a caption highlights he new breadcrumb / stack pattern.

Heat maps from the study showed that the vast majority of users were able to navigate this change easily. Often doing it in mere seconds:

Heatmap of the test results show a successful result.

Quick note: the "heat" around the folder was attributable to a confusing word in the test instructions; not a usability issue.

Test B: Find adjacent functionality

I had made more dramatic changes to where users would find some of Top Hat's more "adjacent" pieces of functionality.

In the old navigation, how these features were accessed was varied. In the new design, these features had been folded under a single "user menu" in the top right:

Image highlighting the new right hand menu

In testing, I asked users to navigate to a feature called "Catalog" that was now in this menu. As the heat maps show, nearly every user failed to figure this out.

Heat map of the test results shows a failed result.

Optional comments on the test also brought this placement up as "confusing" and too far from the previous experience.

It was obvious this part of the experience needed more work.

Evolving Menu Placement

I decided to split the "user menu" into two separate menus to create a more obvious distinction. The challenge was finding the right place to put it:

Selection of images showing various experiments in locations for the new menu.

Assorted iterations in "main menu" placement within the new navigation system

After some experimentation, I settled on the two menus being on opposite sides similar to many other products. The new left-hand menu would house adjacent functionality and the right-hand"user menu" would focus only on account functionality.

The Final Approach

A number of refinements after testing led to the final approach that we chose to build:

Overview of the final design system for the navigation.

The final implementation involved at-least 2 dozen distinct configurations of the navigation for different combinations of state, user type, and view.

Selection of images showing the navigation system configured for various use cases.

A small preview of the many final configurations of the navigation.

Designing the system to scale early-on really paid off during the implementation phase. As we inevitably discovered edge cases, we were able to use the various built-in options to quickly find a "home" for them.

Launching in Stages

Even when you're careful, launching a change to an interface literally everyone uses in your app can be scary. Change is hard.

As a team, we spent a lot of time thinking about this. Elements like in-app communication and good support documentation were critical to helping people bridge the gap between the new and old navigations ahead of Fall classes.

An image of an in-app pop-up and a support article for the new navigation.

Collection of artifacts supporting the launch of this new navigation

Beyond these in-app elements, we also conducted a large staged-rolled out of the feature. Giving time between each to respond to any issues or feedback that emerged.

Thankfully, the final rollout went relatively smoothly with minimal issues or friction for most users.

Epilogue

Personally, this was an intimidating project. Navigation changes can often be some of the most divisive for users. This is compounded when potentially millions of users will experience the change all at once.

This project taught me to focus on taking actions that can reduce reduce your uncertainty for a given decision while avoiding analysis paralysis.

Since shipping, it's been interesting to watch our navigation continue to grow. The system has held up overtime with new use cases, but requires some vigilance to maintain the integrity of the overall patterns. A forever challenge with design systems.

Acknowledgments

This project wouldn't have been possible without the help of many people at Top Hat. Thank you in particular to my Engineering Manager, Shawn Drape (+ his team), for making the space to do it and being an amazing collaborator(s).