Beacon Design System for USCIS

Beacon design system

Creating and implementing a design system at the U.S. Citizenship & Immigration Services

The problem

The Electronic Immigration System (ELIS) is the case management system utilized by immigration officers for processing immigration benefit applications. ELIS was developed over several years without the involvement of a design team, resulting in inconsistencies in page layouts, UX patterns, and components. As a result, end-users had a frustrating experience, and developers working on the system encountered inefficiencies.

I was one of ten designers on a newly formed team brought in to revamp the system’s UX. However, we faced considerable resistance from developers who did not see the value of implementing our designs. Additionally, senior stakeholders were hesitant to embrace any changes they believed would slow down development.

The solution

I spearheaded the creation of a design system named “Beacon.” The design system included a component library in Sketch/Axure for designers and an equivalent library in AngularJS/React for developers. The system also provided detailed documentation outlining the appropriate usage of each component and easy-to-copy code snippets. Every component was 508 compliant and underwent usability testing before being added to Beacon.

Beacon made it easier for developers to implement our designs, and adoption of Beacon started to grow. Users began to share positive feedback about the improved user experience, and as a result senior stakeholders eventually recognized the importance of incorporating design best practices into the development process.

My role

  • Design system owner
  • UX design
  • UX research

Team

  • 10 designers

 

Tools

  • Sketch
  • Invision
  • Axure

Timeline

  • 2 years

Design process

01 Understanding the problem

To better understand the existing state, I worked with fellow designers to create an inventory of existing UI elements such as buttons, alerts, typography, and more. This inventory helped us discover several problems.

250+ Colors

Because there was no style guide, developers would “eyeball” styles, leading to over 250 variations of similar colors.

Lack of Basic UX Patterns

“Common sense” patterns like red=error and green=success were not followed.

Duplication of Efforts

A lack of documentation meant developers wasted time recreating UI elements that had already been coded.

02 Designing the design system

We needed a way to build consistency across 10 designers and over 20 development teams.

I proposed and led the creation of a design system. I started by building a component library in Sketch (and later Axure) for the design team to use. Beacon took style cues from the U.S. Web Design System, but was customized heavily to meet the needs of ELIS users. I partnered with a content designer to write usage guidelines for each component (such as when to use a yellow warning alert vs a red error alert).

Other designers on the team could contribute changes or new components to the design system by putting in a request on a Confluence page which we discussed as a team at a weekly design system governance meeting.

03 Mirroring the design system in code

With the design team aligned around the Beacon design standards, the next step was to make it usable for developers. I partnered with a development team to build the component library in AngularJS (and later in React), as well as a website which could provide documentation for both designers and developers. The website acted as a ‘source of truth’ for what components looked like, and included easy to copy/paste code snippets.

04 Driving adoption

Development teams had been resistant to change, and did not see the value of design. I put together a roadshow presentation and presented it to each development team. The presentation highlighted the ways that design can make developers’ jobs easier in addition to benefiting users. Some key points included:

  • A single source of truth with easy to use code snippets could save developers from unknowingly recreating a component that already exists
  • Design system components included accessibility requirements built-in, reducing work needed on their end to meet compliance standards.
  • Usability testing reduces the risk of having to rebuild features after launch

Outcomes

I’ve worked with other designers and design teams before and found them frustrating because they came in with grand ideas about design without considering business needs and how people are actually using ELIS. I appreciate that your team understands the business and what people need from ELIS. You bring a lot of value by being involved from the very beginning of new work.

– ELIS Portfolio Manager

You all have been a tremendous addition to the Transformation team, and if this past year is any indication, then I imagine that the USCIS business ops community will continue coming to us to deliver products/solutions to fulfill their business/mission needs. We are going to need  more TUXD resources to effectively scale up to meet those needs.

– Transformation Delivery Division Chief at USCIS