Photo: Dina Badamshina

Photo: Dina Badamshina

Photo: Dina Badamshina

Role:

design system manager

component architect

engineering liaison

workshop facilitator

Outcomes:

launched v2 of Corvus Design System

refactored all design components to be responsive and follow auto-layout

delivered on design-team initiative to make component documentation accessible across the tech org

I managed the Corvus Design System as one of my core responsibilities at Corvus.

It was as much about managing the system as it was managing collaboration.

Corvus Design System_

Corvus Design System_

Corvus Design System_

Corvus Design System_

Corvus Design System_

When I joined Corvus, CDS (Corvus Design System) was in its first iteration of maturity. As the team grew from three Product Designers to seven, I took on the role of leading the refinement and management of the system to take it to the next level and scale appropriately.

Change management and planning

I put together a 12-month plan for the entire team to rally around.
The project was broken down into three phases, many parts concurrent - development, governance, and change management.

As with any long-term project, timelines got moved over the course of the year - but the roadmap kept us on track for the most part.

I revised this 12-month plan with the head of product design a few times, and then socialized it with the rest of the design team.

Discovery and research

Discovery and research

During the 4-week discovery and research phase, I took the design team through weekly workshops to align our vision on what we wanted to do and how we wanted to get there.

Looking at existing systems out in the world also helped us to have meaningful discussions and identify what made sense for our design team.

We took the most effective and logical elements from these established frameworks to reconstruct the foundations of our own, ensuring it would be both informed by best practices and tailored to our unique requirements.

A shortlist of design systems that felt the most relevant for us - ones that aligned with our organization's scale, design system maturity level, and component use cases - would go on to serve as guides and a reference point during our ongoing work on the system.

Foundations development- next I restructured the foundations of CDS from its previous version with a few goals in mind.

1.

To establish a clear, logical structure for how we communicate purpose, concepts, and usage of CDS

2.

To assess gaps in the system

3.

To address redundancies in the system

Next I restructured the foundations of CDS from its previous iteration, with a few goals in mind.

An outline of the Foundations structure.

I had designers pair up to tackle specific sections of CDS as we moved through documentation.

I had designers pair up to tackle specific sections of CDS as we moved through documentation.

We created a documentation structure that we felt contained essential guidance for designers.

The litmus test was - "if a new designer joined today, would they be able to look at this doc. and understand how to best use the component within our application?"

We created a documentation structure that we felt contained essential guidance for designers.

The litmus test was - "if a new designer joined today, would they be able to look at this doc. and understand how to best use the component within our application?"

I also spent time teaching junior designers about design tokens.

I felt that including this in the baseline of system literacy would help our designers in their mental model of what CDS is.

I also felt that it could serve as an early bridge between design and engineering.

I spent time teaching junior designers about design tokens.

I felt that improving their system literacy would help strengthen their mental model of CDS.

It would also serve as an early touchpoint between design and engineering.

We took a deep-dive into naming conventions for our SASS variables (tokens).

Our evaluation revealed that the naming system of our SASS variables was inconsistent - a mixture of semantic and literal naming, as well as the usage of modifier-first naming (value-property) instead of property-first naming (property-value).

I then worked with engineering leads to revise the naming conventions to property-first for scalability, discoverability, and an overall better mental model for SASS variables.

@function lightest-color($color) { }

@function lightest-color($color) { }

>

@function color-lightest($color) { }

@function color-lightest($color) { }

Example: naming changed to be more modular, scalable, discoverable

Finally, the revised SASS variables were centralized on zeroheight to establish a single source of truth.

We took a deep-dive into naming conventions for our SASS variables (tokens).

I refactored the architecture for all of the Figma components in the system.

(Because why should anything not following auto-layout?)

I refactored the architecture for all of the Figma components in the system.

(Because why should anything not following auto-layout?)

I also took on the task of modernizing the component library by implementing auto-layout properties, often having to recreate them from scratch.

I also implemented Figma variables (late 2023) where it made sense.

This update involved analyzing over 60 existing components and establishing a consistent layout hierarchy, refactoring each component and its variants to respond to auto-layout behaviors.

This resulted in a more maintainable, flexible design system, but it also drastically improved the usability of Figma components in day-to-day work.

It also made our architecture more consistent and established a distinct philosophy for how we build components in Figma at the organization.

I worked closely with senior engineers to develop a hand-off process between Design and Engineering.

To put it simply, we aimed to make sure we were "speaking in the same language".

We also took the opportunity to work out our ideal tech-stack.

After several reviews with the engineering team, the above became our go-to model for design component hand-off.

I worked closely with senior engineers to develop a hand-off process between design and engineering.

We aimed to make sure we were "speaking in the same language".

We also took the opportunity to work out our ideal tech-stack.

We took a dual-platform documentation approach, one on Figma and one on zeroheight.

We debated this a bit, because it meant creating synchronization overhead and potential documentation drift.

Ultimately, we decided that it was worth the effort to address the unique needs of the design team and the broader organization.

Figma documentation: designer-centric

Figma documentation was placed adjacent to components, providing designers with immediate access to usage guidelines without leaving their workflow or exploration of the component architecture. This documentation was specifically tailored to designers' needs, including:

  • Description of design intent

  • Usage guidelines, do's and don'ts

  • Usage examples (actual examples in CrowBar)

  • Variants and properties

  • Auto-layout considerations

  • Any Figma-specific implementation notes

zeroheight Documentation: Organization-Wide Resource

I also mirrored this documentation in zeroheight for the entire organization, intended to be more accessible to non-designers. The documentation here provided:

  • Higher-level component overviews

  • Implementation principles across platforms

  • Developer hand-off guidance

  • Real-world application examples

  • Usage guidelines, do's and don'ts

We took a dual-platform documentation approach, one on Figma and one on zeroheight.

We debated this a bit, because it meant creating synchronization overhead and potential documentation drift.

Ultimately, we decided that it was worth the effort to address the unique needs of the design team and the broader organization.

Results, reflections

Results, reflections

As much as I'd love to be able to rattle off efficiency gains and hard metrics around the adoption of CDS, the truth is that the majority of the design team (including myself) was laid off shortly after the acquisition of Corvus and this project came to an abrupt halt.

With that said, leading and managing the redevelopment of the design system was probably one of my favorite projects during my time at Corvus. Primarily, it gave me a chance to open a dialogue with engineering counterparts about how we can better communicate with each other, a practice that is often under-exercised.

With the design team specifically, it gave us a chance to get on the same page on many aspects - from our shared knowledge about the system, to consideration and application of the newest developments in Figma, as well as our design philosophy as it relates to the system that we continued to build upon.

And if I were still at Corvus managing the design system, I would look to these metrics:

Usage satisfaction metrics (designer)

Usage satisfaction metrics (engineering)

% change in component usage over time

% change in component usage frequency

% reduction in component detachments