What Makes a Design System Win

Rate this content
Bookmark

How does a design system win over product developers and designers? Everyone wants to ship new features, but they don't know why they should adopt your components and follow your guidelines. Let’s solve this, and turn apathy into excitement. We’ll explore the many ways to attract attention to your design system, elevate its place in your product, and build a thriving community around your work.

This talk has been presented at React Day Berlin 2024, check out the latest edition of this React Conference.

FAQ

Will Klein visited the community event in person because he heard from Tejas that the community had a warm and amazing vibe, and he wanted to experience it himself.

Will Klein faced the challenge of not leveraging the design system in building a crucial piece of UI and UX for the application, which could lead to inconsistency if the design system evolved.

Will Klein addressed the issue by reaching out to the design system manager and proposing to work on improving awareness and adoption of the design system as an internal developer advocate.

Will Klein improved adoption by being helpful and engaging with the community, offering workshops, hosting office hours, and providing clear communication about the release schedule and changes.

The workshops helped developers learn React design patterns and how to use the design system's components, leading to increased adoption and advocacy within the company.

Will Klein's team managed breaking changes by developing code mods to automatically rewrite code to new API versions, making the upgrade process easier for developers.

The Slack channel grew from 200 to over 600 members, becoming the largest UI community at the company, indicating increased engagement and interest in the design system.

Will Klein ensured relevance by hosting regular office hours, engaging in community conversations, and continuously improving documentation and support based on developer feedback.

The team built credibility and trust by being kind, helpful, and welcoming, answering questions in a respectful manner, and creating an open and supportive community environment.

Will Klein's talk focuses on testing and the importance of using design systems in enterprise applications to provide a cohesive user experience.

Will Klein
Will Klein
33 min
13 Dec, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Thank you all for welcoming me here. I am giving a remote talk on testing. The community here is warm and amazing. I hope Marin does well and we hope to see him soon. Six years ago, I joined a big tech company working on improving UX and UI. We released the UX improvement to 60 million users, but overlooked leveraging the design system. Recognizing the importance of the design system, I reached out to the design system manager to address the issue. I proposed solving meeting fatigue and defined my role as an internal developer advocate. Challenges in shipping code for developers and building credibility were discussed. The importance of fostering open communication, supporting users, and expanding workshops was emphasized. Continuing conversations through office hours and release demos improved adoption. Streamlining code updates and celebrating advocacy were key strategies. The speaker now runs a developer tools company called Tool Space.

1. Introduction

Short description:

Thank you all for welcoming me here. I am giving a remote talk on testing. The community here is warm and amazing. I hope Marin does well and we hope to see him soon.

So I want to say, thank you all for welcoming me here. I am actually speaking Monday. I'm giving a remote talk on testing. And I came here just to hang out because I talked to Tejas and he said the community here was so warm, so amazing. This was just such a great vibe that I had to come see it here in person. And I told the organizers, because this happens, in case somebody can't make it here, I actually have this talk that I've just written that I'm really excited about. I hope I don't get to give it, but just in case, here you go. And they immediately said, we need your help. And I actually feel really sad that Marin couldn't be here today. I know he worked really hard on his talk, so I want all of us to just send him some really good vibes right now that we miss him and that we hope he does well, and we hope to see him soon.

2. The Importance of Leveraging Design System

Short description:

Six years ago, I joined a big tech company working on an enterprise application. We focused on improving the UX and UI for our users. Two years later, we successfully released the UX improvement to over 60 million users. However, we overlooked the importance of leveraging our design system, which resulted in a potential failure to provide a cohesive user experience.

And with that said, I have a story to tell. So going back six years now, I joined my first big tech company, and where I joined isn't that important, and what project I worked on isn't that important. This could have been really anywhere.

For context, this is March 2018, and I joined this big company that was an enterprise application. And as you might guess with some enterprise applications, the UX and UI could be a little challenging for some of our users. And the project I got to join was founded to address that specifically for the majority of our users for our most common use cases. So the UI and the UX for this was very, very pivotal. We also got to try out TypeScript full stack for the very first time. So it was a bit ambitious, and we cared a lot about quality. We cared a lot about that UX and that UI, getting that right, making sure that we could deliver value to our users so they didn't have to click around 20 screens just to submit time off. We wanted that to be a lot easier for them.

And two years later, we achieved that. We ended up releasing to over 60 million users. Nothing went wrong. To my surprise. But we were able to deliver this UX improvement to so many people where they could go in and just send some chat messages saying, hey, I want to take today off and be done with it in 10 seconds. Things like that. And we felt great. And by all of our measures that we had going into this, we had achieved our mission.

But there was one thing that really was missing that was pivotal, if you think about it. In building our crucial piece of UI and UX for our application, we were missing something that I think was extremely important, and that was our design system. We had not leveraged our design system to build this. Now, our design system is prescriptive and suggestive and gives guidance to make sure that we're providing a cohesive user experience. That we're following best practices. That when you go from screen to screen, things look consistent and they don't feel like all these disparate applications. And in an enterprise application where really there's something like 100 products all smashed together, shuffled into a deck, that's really important to get that to be cohesive as possible. And our experience was on every single page of the application. It was ubiquitous. For us to not have this, to not leverage this, was potentially a massive failure. And while we were compatible and it didn't look different initially, if the design system were to evolve, we weren't going to evolve with it, because we weren't using it.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Design Systems: Walking the Line Between Flexibility and Consistency
React Advanced 2021React Advanced 2021
47 min
Design Systems: Walking the Line Between Flexibility and Consistency
Top Content
The Talk discusses the balance between flexibility and consistency in design systems. It explores the API design of the ActionList component and the customization options it offers. The use of component-based APIs and composability is emphasized for flexibility and customization. The Talk also touches on the ActionMenu component and the concept of building for people. The Q&A session covers topics such as component inclusion in design systems, API complexity, and the decision between creating a custom design system or using a component library.
Build a Design System with React and Tailwind CSS
React Summit 2022React Summit 2022
27 min
Build a Design System with React and Tailwind CSS
Top Content
This Talk discusses design systems and how to build one using React and Tailwind CSS. Tailwind CSS provides utility classes for building complex layouts without writing CSS rules. Custom colors can be added to the Tailwind CSS config file, and font styles and text sizes can be customized. The entire Tailwind CSS configuration can be customized to meet specific requirements. Base styles can be added to the config file itself using a plugin. Reusable components can be created with Tailwind CSS, allowing for easy customization of size and color.
Walking the Line Between Flexibility and Consistency in Component Libraries
React Summit 2022React Summit 2022
27 min
Walking the Line Between Flexibility and Consistency in Component Libraries
This Talk discusses the comparison between Polaris and Material UI component libraries in terms of consistency and flexibility. It highlights the use of the action list pattern and the customization options available for the action list component. The Talk also emphasizes the introduction of a composite component to improve API flexibility. Additionally, it mentions the importance of finding the right balance between flexibility and consistency and the use of types to enforce specific child components.
Find Out If Your Design System Is Better Than Nothing
React Summit 2022React Summit 2022
20 min
Find Out If Your Design System Is Better Than Nothing
Building a design system without adoption is a waste of time. Grafana UI's adoption is growing consistently over time. The factors affecting design system adoption include the source mix changing, displacement of Homebrew components by Grafana UI, and the limitations of Grafana UI's current state. Measuring adoption is important to determine the success of a design system. The analysis of code through static code analysis tools is valuable in detecting and tracking component usage.
Dialog Dilemmas and Modal Mischief: A Deep Dive Into Pop-Ups
JSNation 2023JSNation 2023
10 min
Dialog Dilemmas and Modal Mischief: A Deep Dive Into Pop-Ups
The Talk discusses the use of dialogues and popovers in web development. Dialogues can be modal or non-modal and are now accessibility-supported. Popovers are versatile and can be added to any element without JavaScript. They provide suggestions, pickers, teaching UI, list boxes, and action menus. Modal and non-modal dialogues and popovers have different behaviors and dismissal methods. Browser support for these features is expanding, but there are still open questions about positioning, semantics, and other use cases.
Type-safe Styling for React Component Packages: Vanilla Extract CSS
React Advanced 2023React Advanced 2023
19 min
Type-safe Styling for React Component Packages: Vanilla Extract CSS
Watch video: Type-safe Styling for React Component Packages: Vanilla Extract CSS
Today's Talk introduces Vanilla Extract CSS, a type-safe styling method for React applications. It combines the benefits of scoped styling, zero runtime overhead, and a great developer experience. Vanilla Extract generates a static CSS file at build time, resulting in better performance. It is framework agnostic and offers a powerful toolkit, including Sprinkles for utility classes and CSS utils for calculations. With type safety and the ability to define themes and variants, Vanilla Extract makes it easy to create efficient, scalable, and maintainable design system component packages.

Workshops on related topic

Rapid UI Development in React: Harnessing Custom Component Libraries & Design Systems
React Advanced 2022React Advanced 2022
118 min
Rapid UI Development in React: Harnessing Custom Component Libraries & Design Systems
Workshop
Richard Moss
Richard Moss
In this workshop, we'll take a tour through the most effective approaches to building out scalable UI components that enhance developer productivity and happiness :-) This will involve a mix of hands-on exercises and presentations, covering the more advanced aspects of the popular styled-components library, including theming and implementing styled-system utilities via style props for rapid UI development, and culminating in how you can build up your own scalable custom component library.
We will focus on both the ideal scenario---where you work on a greenfield project---along with tactics to incrementally adopt a design system and modern approaches to styling in an existing legacy codebase with some tech debt (often the case!). By the end of the workshop, you should feel that you have an understanding of the tradeoffs between different approaches and feel confident to start implementing the options available to move towards using a design system based component library in the codebase you work on.
Prerequisites: - Familiarity with and experience working on large react codebases- A good understanding of common approaches to styling in React