Workfront - Design System

Workfront is a modern work management platform designed to connect people to work and accelerate organizational success across the enterprise. Our mission is to make businesses work better. 

During Summer 2018, I was given the opportunity to work at Workfront in Lehi, UT as a UX Design Intern. During my time at Workfront, I was able to integrate knowledge and theory learned in the classroom in a professional environment.

 

ACCOMPLISHMENTS

  • Built a rich text editor, drag and drop pattern, and an updated date picker for the design system

  • Learned how to build microinteractions

  • Learned how to use Principle, an animation tool

 

 

During my first month at Workfront, I worked with a senior UX designer on building and defining new components for the design system. I helped build 3 components: rich text editor, an updated version of the date picker, and drag & drop.

 

THE PROBLEM

Currently, Workfront does not have a unified design language. With the design team growing rapidly, there are many inconsistent styles and components within the product. 

THE GOAL

The goal is to build a design system for Workfront. With a design system, we can improve usability and create a unified design language. It helps increase familiarity with the users due to the standardized components used throughout the whole software. In addition, this can help designers prototype faster. 

 

DRAG AND DROP

THE PROBLEM

The drag and drop component occurs in many different places and for different objects. There were many inconsistencies of how the drag and drop component worked. I was tasked to redesign it using our new design system. 

 

TABLES

I explored other drag & drop components.

 

MICROINTERACTIONS

After some exploration of the drag and drop components, I did some research on microinteractions. I learned more about the components that are critical to building a successful microinteraction.

The components are defined as: 

  • Trigger: what initiates the interaction

  • Rules: defines what happens after trigger is performed

  • Feedback: the signal to the user that their action has been acknowledged

  • Loop: determines the length of the microinteraction or if it repeats

 

Then, I defined the components of the drag & drop interaction.

01 TRIGGERS

  1. Mouse component

  2. Knurling appearing when hovered

02 RULES

  1. User can rearrange column headers in a table

  2. User can rearrange rows in a table

03 FEEDBACK 

  1. Mouse components

  2. Knurling appearing when hovered

  3. Additional border color

  4. Object pops out

  5. Drop line appears

LOOP

  1. Interaction does not repeat

 

I made a story of how the interaction worked all together after defining the components. 

  1. Hover over object, a “grabbing” hand and a knurling icon will appear as a visual cue to let the user know they can take action

  2. When clicked and dragged, the object will pop out and go into a new state (“current state”), users will see a “previous state” for the original position

  3. A drop line will only appear if the object reaches the midpoint - showing feedback on where the item will be dropped

  4. Users can release the mouse and the object will be moved

  5. Drag and drop interaction is complete

 

 

Then, I made two different iterations of how the drop line interaction would work.

Drop Line:

Shifting Rows:

Idea 1: line will appear to show where object will be dropped

  • Simple, easy visual cue to show where object will be dropped

  • Clear, quick feedback to the user

Idea 2: the rows will shift as you are dragging around the row

  • Too much visual interaction happening at once

  • Can cause confusion to the user

 

Now that I know more about how microinteractions worked, I explored some more.

 

I iterated on 3 versions of the current states and received feedback from the UX designers.

The gray color blends into data table, can get lost easily.

This has enough color so it grabs the user's attention.

Too much blue can be blinding to users.

 

The drag handle indicates that the row is draggable. Displaying a drop line indicates the specific position of where the object will be dropped. Having a "previous state" reminds the user where the original position of the element was while it is being dragged. 

 

I created the microinteraction on Principle, and then I went around and asked for feedback. Some people stated that the words shifting around was choppy.

After receiving feedback, I created another version of the microinteraction.

 

FINAL

 

RESIZING

resize.png

Having a drag line appearing allows the user to know which column they are resizing. 

 

DOCUMENTS

Exploration on drag and drop document patterns. 

 

I created several iterations and went around the team for feedback. 

 

Having a previous state and and a “drop” state allows the user to know that the files they are dragging are in the drop zone.

 
 
 

CHALLENGES 

  • Need to a better way to communicate which elements were done or updated, which old elements shouldn’t be used anymore, etc

  • People keep rewriting the master file

WHAT I LEARNED

  • Components may not always work for certain use cases and can be limiting

  • Design systems must be maintained and updated often as the product evolves or when other challenges arises

  • Design systems bridges the gap between UX and engineers

 

WHAT I LEARNED AT MY INTERNSHIP

  • The rotation program at Workfront exposed me to different areas of the product and allowed me to gain a better understanding about Workfront and how it functions. I was able to contribute to multiple projects in a cross-functional environment (UX/PM/engineering).

  • Get feedback often. Collaborate with everyone in team. Have brainstorm sessions with PMs, engineers, and UX. Test and validate your designs.

  • I was able experience what it was like to work in a company that truly values design and to be treated as a full time UX designer.

  • I was able to present my design work to teams and managers for review, and I learned to iterate on feedback.

I wrote more about my learnings here. Feel free to check it out.

I’ve also written a short article about design systems here.

 

OVERALL CHALLENGES

  • Understanding how an agile environment works

  • In school, you're told what you should be doing, but at a real job, you lead your own design process

 

IF I HAD MORE TIME...

  • Create a version for an overflow toolbar for the rich text editor

  • Work more on the drag and drop component - there are more use cases I did not define such as bulk selecting rows

  • Error states