Tide: Portal Design System

Creating scalable, flexible and modern design tooling

My role
Design/Strategic Lead

Date
Summer 2020-Apr 2022

Tools used
Figma
Figjam
Zeroheight
Confluence
Invision

Team
Oscar Wong, Lead UI Designer
Alex Frewin, Head of Product Design
Liam Thomas, Product Designer
Katie Hayward, UX Writer
Tarunya Varma, Product Designer


Context

Problem

In Autumn 2020 Tide’s web and mobile engineering teams were planning to execute large-scale codebase migrations. I was approached separately by both, to provide new design components for them to use.

The DS we were using had a number of issues:

  • Hard to navigate and locate components
  • Not using newer Figma features
  • Inconsistent naming conventions
  • Lots of legacy assets still present
  • No components available for the web app
  • No documentation for either platform

Solution

This was a massive opportunity to modernise our Design System and create efficiencies within our own workflows.


Research & Discovery

Survey

To better understand how the wider business works with the DS day-to-day, I sent a survey to all design, product and engineering teams.

94%

interacted with the DS often
(44% did so every day)

88%

strongly agreed ‘the reason we have a DS is clear to me’

81%

strongly agreed ‘we should adhere to the DS where possible’

51%

disagreed ‘if I think a component needs updating, I know what the process is’

43%

agreed or strongly agreed ‘there is a clear connection between our design components and codebase’

44%

strongly agreed ‘I know which components should be used for a particular task’

Proposal for further exploration

I set up a meeting with heads-of from engineering, product and design to present our findings and propose our plan of action.

This was received enthusiastically, so we started right away with our discovery phase: auditing the existing DS and researching best-in-class DS examples.

Time/effort estimates

4 weeks of discovery, then 8 weeks of component design, split into 4 sprints of 2 weeks each

Existing components

Catalogued, categorised by function, then prioritised into the sprints

Governance

Specific objectives for project success and a RACI for all involved stakeholders

Roadmap

Higher-level plan for incorporating some of the new UI into our existing apps, ahead of migration

Objectives

I felt it was important to align the project to more vision-based objectives, rather than simply focus on deliverables.

We want to…

Create a universal language between design and engineering

Build a more logical and better constructed toolset

Write better instructions/guidelines of when and how the components should be used

Pave the foundation for the success of future experiences

Introduce a model of governance for how we can continue to evolve the Design System, and how others can contribute to it

Create templated flows for generic interactions to speed up design and product thinking

So that we can…

Spend less time designing simple customer journey UIs

Focus on the areas where we can engage users

Speed up MVP build for idea validation

Provide a much needed update to UI

Create consistency for our fundamental journeys

Speed up our users’ workflows

Audit

We began by doing a full audit of our existing asset library, using the following criteria:

  • Global Assets Library (atomic elements)
  • Consistency of component naming
  • Structure, organisation & navigation
  • Accessibility
  • Guidelines & documentation
  • ‘System layer’ & cross-platform consistency
  • Fonts
  • Handling of common flows (Load, Delete, Validation)
  • Maintenance & governance principles
  • Keeping things lean

Design

Cross-platform approach

Initially we had planned to keep the two platforms (web and native app) separate.

As our discovery progressed this made less sense, especially as the web platform was going to be fully responsive to three breakpoints.

Why have two components in a library when one can work across both?

This cross-platform foundation allowed us to create a single component library that supported both platforms, with 60% fewer components than before.

Creating components

Liam and I started working on the components I had outlined for each sprint. We had a visual direction to work with and I delegated most of the component construction to Liam, so that they would have a sole ‘owner’ and be more consistent. I provided creative direction, and defined the logic of how each new component would be used in future design work.

Examples


Information architecture

The apps suffered from poor IA that had built up over time. When the web app was built it was given a completely different structure to the mobile app, so the location of features isn’t immediately obvious.

Meanwhile, the mobile app had been added to iteratively, with little high-level product direction. Most new features had to live in ‘More’, which research had shown to have a very high failure rate for discoverability – as high as 80-90% in some cases.

As part of this project, we aligned the web app primary navigation to the mobile app, provided a scalable secondary nav component for both platforms, and separated options related to user details and preferences into a dedicated ‘user’ area.

Structural model for web

Large view with sidesheet for displaying items and small tasks; medium view with visible primary nav; small view with expanded user menu.

All breakpoints feature a persistent secondary navigation where required.

Structural model for mobile

Same primary navigation as web. Bottom sheets used to display overflow menus.

Modal views for same purpose as sidesheets. Tab controls and search incorporated into app header.


Documentation

To aid the designers in the team, and answer a pain point from my survey, I personally wrote over 100 pages of documentation for the components. I used Zeroheight, covering everything from correct component usage to writing consistent UX copy.


Maintenance, ownership & advocacy

Contribution model

One key takeaway from my survey was that just over half of respondents didn’t know how to make updates to the DS. Engagement and participation are crucial to adoption; designers will feel much more invested and willing to use the DS if they feel they have a hand in its future.

Once the bulk of the design work with Liam was done, I began to work on the governance aspect. I conducted some research, consulted with our designers and engineers, and outlined a full end-to-end contribution model from initial idea to shipping finished code.

Enabling conversation

Once the DS was active, I started gathering feedback from the design team. The sentiment was positive, although many felt that the comms could be improved.

They wanted to know what updates were being made, how their suggestions were progressing and how they could ask questions about usage.

In response, I created a dedicated Slack channel where we would post all significant updates. I also hosted a weekly 30-minute clinic where designers could drop in and ask any questions or share work.

After two months, around half of the design team had attended at least one session and we had logged nearly ten significant updates to be carried out.

Decentralising and delegating

Alex & I set up a steering committee to establish cross-department ownership. I reached out to seven senior engineers and PMs, and set up a monthly meeting, led by design, to discuss strategic concerns.

I also formalised a working group of two designers and two engineers, who would completely own the contribution process. They would be responsible for managing all component updates and comms to the wider business.

File structure

Finally, in order to ensure a seamless transition from one DS and product file set to another, the team needed a new set of files for the new design work to be completed in.

I set up an entirely new structure for all business areas — we now had clearer and lighter file structures, dedicated spaces for research/workshop materials, and more spaces for working and iteration.


Conclusion

The Portal design system is one of my favourite projects that I’ve worked on. It was deeply collaborative, drove incredible efficiencies and communication within the team and beyond, and helped to elevate my personal profile within the business by giving me dedicated face-time with senior stakeholders.

Tide now has a dedicated design system team with several designers working on it – I am incredibly pleased that my efforts to kick this project off have really taken root and picked up by others.

Personal learnings

The main thing I learned from this project is that for all the talk of design systems, particularly within the Figma community, most of it relates to creating UI. There is very little information around the planning, execution and ongoing maintenance – the latter of which I believe is the most important aspect of design system management by far.

Beautiful UI is great but if your team don’t know how to use it, or feel that they can engage with it, then the whole thing will wither and die. Design systems need to be treated like products within themselves, with continuous ongoing development and input.