April 2020 - UX Design Internship @ Dessa
Designing for the Machine Learning Workflow
In the fall of 2019, I was in an amazing startup called Dessa. I was originally working as a machine learning engineer, but when I realized my passion for design I took the opportunity to lead a major redesign of our two products, Atlas and Orbit.

It was a challenge for someone new to UX design but pushed me greatly in all dimensions of my craft. I learned a ton about designing solutions for enterprises, communicating my design decisions, as well as working in a seasoned team of product managers and software engineers.

The Challenge

The goal of our product, Atlas, was to make the lives of machine learning engineers easier with experiment and resource management.

Atlas was at an alpha stage, with few previous considerations to the user experience - my task was to redesign the experience to be a desirable ML resource in both a consumer and B2B setting.

The Outcome

I redesigned our early-stage products to be simple and comfortable to use, giving it a fresh visual design while supporting different workflows and incorporating new features like the overview page and team functionalities.

As a machine learning engineer, I know first-hand how messy the process can be. I was excited for the opportunity to do a deep dive of our machine learning products and give them a fresh face.

Phase 1

Understanding our users

I first took some time to observe our users - our in-house engineers - to understand better their machine learning workflows and pain points.

The classic workflow - fact or fiction?

Observations

1. Users were extremely varied in the technologies and workflows they used.



Across a wide problem space, different tools (Jupyter notebook, python script) and packages meant that users were creating, evaluating, and testing their models differently.

2. There were a lot of files to keep track of.

Due to the experiment-heavy nature of ML work, a single project could generate hundreds of experiment logs, model files and artifacts.

3. Sharing was hard.

Slack served as the primary method of sharing and logging notable experiment files. When recipients opened others' files, they often had to create new environments or reconfigure their existing environment and packages to be compatible.

Qualitative Data

Interviews

I held 4 open-ended user interviews with our engineers to talk about their needs, potential use cases and general feelings towards our product.

Interview Questions

  • Do you use Atlas? If so, why? If not, why not?
  • What are you trying to do in your machine learning projects?
  • Is feature X valuable to the work you do right now?
  • What do you look for in your experiment results?
  • Learnings

  • Users wanted more ways to directly assess their experiments
  • In terms of workflows, there were some diverging preferences like whether to view all experiments together, or have separate views for ongoing/finished/queued
  • The command line integration was clumsy
  • Organizing Data

    Affinity Diagram

    With the collected data, I created an affinity diagram to understand how to prioritize the desired functionalities and pain points that arose.

    Groups of observed and desired functionalities



    Pain points discovered in interviews

    Constraints

    Stakeholder Requirements

    In addition to user preferences, there were some restrictions and additional functionalities to be designed for in the project scope.

  • The interface should support teams, i.e. be able to comment, sign in, have an account
  • Non-machine-learning experts should be able to understand the project / get a sense of the progress
  • Sketches and wireframes

    Explorations

    I condensed the findings into some initial wireframes and flows, discussed them with the PMs and head of product, and started creating the prototypes. Once the first iteration was developed, I held a design meeting with our machine learning and development teams to gather feedback. I cycled through iterating on the designs and running feedback meetings until we finished.

    Design Iterations

    First iteration

    Working in all the new functionality, some design elements didn't make it all the way through to the prototype.

    The second iteration

    Exploring alternative ways to sort and view experiments.

    The final iteration

    Cleaning up the colour palette and design language, refining hierarchy between labels and content.

    Information Architecture

    Result

    After a few rounds of iterating, I landed on an interface that was much more cohesive and supported the complex use cases that machine learning engineers required.

    Here are the key features of the final design:
    1. An overview page that gives users an instant, visual assessment over their experiments
    2. A new style that better highlights the high important information and lets information of lower priority fade into the background while keeping their presence
    3. Collaborative features like commenting and project descriptions for inter-team functionality

    Learnings and Reflections

    The power of communication

    This experience really pushed the importance of good, regular communication in design work. I think in a startup, it can be tempting to just pump through tasks for the sake of completion, but I realized that establishing a strong cross-team collaboration mindset is immensely beneficial.

    Involving PMs and developers more throughout the process would have helped us avoid bumps like miscommunication about the feasibility of certain features, or the small issues arising that led us astray from the design.

    As a designer I also learned the importance of being explicit when handing off designs - every screen should have a few copies of how they would look on different sizes, and its also important to consider edge cases like really long text boxes or empty states.

    Passion Project

    Student to Student Mentorship

    Connecting student mentors and mentees in a university setting.

    Product Design Internship at Square

    Cash App Support

    Designing for search in customer support, under the global product team.