Design System

StashAway had a large catalog of mobile components, but it hadn’t kept pace with new Figma functionality.

Here’s how we updated the design system to work more efficiently for us.

A sampling of my contributions to the design system

TL;DR

 

Problem statement: How might we make the design system more usable?

Impact: (Estimated) 10% faster workflow for 7 designers using new components built with Auto Layout.

My role: Planned and project managed the design system migration; redesigned and reviewed existing components.

Learnings: Estimation based on capacity is important to manage expectations and energy. Invest early in team-wide tools. Promote collaboration at every chance.

UX Design Skills

  • Design System

  • User Interface Design

  • Prioritisation

  • Consensus-building

  • Project Management

  • Process Improvement

  • Rapid Iteration

  • Giving and receiving feedback

Context

When I joined StashAway, it already had a structured design system (DS) that clearly specifies:

  • Colours (across 3 themes: light, navy and black)

  • Spacing

  • Typography

  • Iconography

These building blocks were combined to form the various mobile app components. See below for visuals to get a sense of what the design system looks like. (Shoutout and kudos to Alvin our awesome OG designer)!

The design system is collectively owned and maintained by all the designers.

Pain Points

While the catalog of mobile app components was extensive, it wasn’t always easy to find the desired component among the choices. Discoverability 🔍 could be improved in both the naming and the layout onscreen.

Our components had been created before Figma released Variants and upgraded their Auto Layout features. This meant that designers still had to do annoying little manual adjustments to adjust for text length or alignment on components that really took up time. 😱

Secondly, the components had also been created with static colours that, while visually correct, weren’t able to be picked up and converted dynamically by our theme-switching workflow. This meant that it was again manual for designers to switch colour themes between light, navy and black. 🎨

Furthermore, the design system was not completely in sync across Product Design and Tech: there were small discrepancies in implementation and naming 🔥 when comparing the design system and codebase. We needed a solution to ensure a single source of truth from design through development, to work more efficiently together.

The extensive but not exhaustive catalog of mobile app components

Ready to take action against design debt!

Everyone on the team of product designers knew that it was inefficient to continue using the current components as-is. The pain points that we faced would compound as we continued to add to the design system, and it was silly not to make full use of available Figma functionality. However, we were all pretty busy with our individual work. I myself had returned from maternity leave not long ago and was trying very hard to juggle all my responsibilities.

That said, logic prevailed. I knew it was time to bite the bullet and update our mobile app components. In the absence of a designer solely focused on maintaining the design system, I was confident that with teamwork we could still make the leap. We had a great team and a slow and steady approach would get us to the desired outcome. I just needed to step up to get the project moving.

(i promise we were more excited than we looked!)

My Role

I led the product design team of 4 (including myself) on this project. The team has since grown to 7 designers.

I planned and project managed this design system overhaul alongside my other feature work (e.g. StashAway Plan for financial planning tools, Habits, etc which you can check out as case studies.)

All the designers including myself were involved in working on components and reviewing other designers’ contributions to the design system.

Timeframe

The project from the initial planning to publication of the new components took approximately 6 months. All the designers were juggling design system contributions alongside squad-level feature delivery work, so we were generally devoting 5% to at most 10% of our individual capacity to this.

This project is still ongoing since we are always adding to the design system when there are new use cases.

Project Planning

How to approach a big project? I began by creating a rough project plan and breaking down the approach into 4 stages.

  1. Information architecture and naming of components

  2. Convert existing components to new auto-layout and variants

  3. Update working design files & master files

  4. Updating patterns in Design system guide

Carving up the project into chunks helped me work backwards from the desired outcome for better estimation. I was also better able to manage the team’s expectations about what was in store.

Project planning to see how long the best case scenario might take

Moving from an overall spread, to a paginated approach

Information Architecture

After I shared my high-level project plan, the team was pretty excited to get going. However, I wanted to ensure that the effort was organised and would actually address our pain points. Hence, we started from how the components were organised and named in order to be able to split up the work logically.

Discoverability was one of the main pain points for both designers and developers and it made sense to start by relooking the information architecture of the components. I did an audit of all the components and proposed a modified information architecture and naming to the team.

We had also wanted to improve documentation of where and how each component was used. Hence, I proposed that in the new DS each component should have its own page where we would have ample space to compare the variants, and also showcase actual examples. See below for an example page (Badges).

Prioritisation

Since there was a long list of components, I also proposed a prioritisation of which components were High, Medium or Low in importance so that we focused our attention where it mattered most.

In the new DS, one page houses one component (e.g. Badges) and all its variants, as well as actual examples.

Overall project documentation in Notion

Communication

To keep everyone aligned, I created a Notion page for the project plan and documentation. This was the source of truth to keep the team and also any interested parties (e.g. product managers, developers) informed. I also captured meeting notes here in the doc for reference.

I also organised biweekly Design System 2.0 meetings where we could discuss our ongoing work, figure out solutions to roadbumps, or propose process improvements. Since everyone was still working from home, it was good to have synchronous discussions where we could *feel* like we were working on this together as a team and banter a little, share our respective thought processes and challenges. (I enjoyed this the most about this project!)

Asynchronous communication took place through Slack, I also set up a dedicated Slack channel #design-system-2 and created a workflow form to make the review process more efficient. To minimise repetitive questions, I also proposed a design system submission checklist ✅ to help everyone consider standard criteria before submitting their components for review.

See below for the visuals.

Impact

10%

Estimated 10% improvement in designer efficiency through the adoption of more discoverable and more powerful components.

My Takeaways

  • When we kicked off the project, I made a very high-level top-down estimation of how long each phase of the project might take. Even though it was high-level, estimation was helpful to manage the designers’ expectations about the duration and intensity of the project.

    On the other hand, I could probably have been more realistic about the overall project timeline given that the amount of capacity each designer could realistically spend on this project was just 5-10%. Not to mention the impact of context switching and dilution of focus when juggling multiple projects.

    In retrospect, I would also have added in more buffer time to account for seasonal situations like year-end holidays, and more importantly, to add in more time for collaboration and discussion. When our team got together, it was very easy to go deep into the details of particular components!

  • The StashAway design system is one of the first things that I go through during design onboarding for new designers. Naturally, having a clear and extensive design system helps new designers to get up to speed quickly and also sets a high bar for the level of quality and consideration expected in their own work.

    While it might take some effort to maintain these team-wide tools and set up processes to do so, it’s well worth it. We’re far from finished and we’ll keep improving our design system!

  • What I loved most about working on the design system migration was the collaborative aspect and learning from the team. Every designer has his or her own way of looking at the situation and coming up with solutions.

    For example, when we were exploring info architecture and naming, it was great to hear Caleb’s thoughts on how we could apply atomic design principles. Or for the Cell component (probably the most extensive in the design system) we all had our own ways of organising the Properties and some good discussion ensued.

    I think there’s so much value, enjoyment and and learning in working together with other designers, and I hope to contribute to similar team initiatives in future.

Recent Work