Config 2024: Design systems best practices

Figma
29 Jun 202448:39

Summary

TLDRThe Figma Advocates, Anna, Alexia, and Chad, delve into building effective design systems. They emphasize core principles like caution in complexity, grounding in priorities, and validation before execution. The discussion includes actionable tips on Figma features, insights on user-centric design systems, and the importance of communication between designers and developers. They also highlight the significance of community building and data-driven decision-making for the continuous evolution and adoption of design systems.

Takeaways

  • 🌟 **Embrace Complexity with Caution**: Design teams often face challenges with complexity, which can lead to rigid design systems and higher maintenance costs.
  • πŸ” **Prioritize Wisely**: Aligning design systems with organizational priorities such as efficiency, consistency, and communication helps guide decision-making and reduce unnecessary complexity.
  • πŸ“Š **Validation Before Execution**: Teams that validate changes before full implementation avoid disruptions and maintain trust in the design system.
  • πŸ”§ **Iterative Approach to Design System Updates**: Start small, gather feedback, and iterate to find the best solution for the design system.
  • πŸ‘₯ **Designer and Developer Collaboration**: Open communication between designers and developers is crucial for a successful design system.
  • πŸ”— **Leverage Figma Features**: Utilize Figma's component sets, props, and variants to manage complexity and create a user-centric design system.
  • πŸ“š **Documentation and Resources**: Provide champions with resources like educational materials and documentation to help spread awareness and understanding of the design system.
  • 🀝 **Building a Community**: Identifying and engaging champions who are enthusiastic about the design system can encourage others to adopt it.
  • πŸ“ˆ **Use Analytics and Metrics**: Both qualitative and quantitative data can provide insights into the usage and health of the design system, guiding future improvements.
  • πŸ”„ **Adapt and Evolve**: Design systems are not static; they require ongoing attention and updates to support new use cases and technologies.
  • πŸ“ **Plan and Communicate Changes**: When updating the design system, plan the changes, test their impact, and communicate them clearly to avoid confusion and disruption.

Q & A

  • What roles do Anna, Alexia, and Chad have at Figma?

    -Anna, Alexia, and Chad are designers and advocates at Figma. They come from design backgrounds and work with the Figma community to enable teams by sharing feedback, tips, tricks, and resources for using Figma.

  • What is the main focus of the discussion led by Anna, Alexia, and Chad?

    -The main focus of the discussion is on building Design Systems in Figma, including core principles, insights from their experiences, and actionable tips on Figma features for Design System journeys.

  • Why is approaching complexity with caution important in building Design Systems?

    -Approaching complexity with caution is important because introducing too much complexity can create a more rigid design system, which may require more time and resources for maintenance and enablement. It can also make it harder for designers to understand and utilize the system effectively.

  • What is the significance of being grounded in priorities when building a Design System?

    -Being grounded in priorities helps reduce complexity and guide decision-making, ensuring that the design system aligns with what's most important to the organization. It also helps in identifying quick wins and long-term projects, preventing the team from becoming overwhelmed.

  • What does Alexia mean by 'keeping a consumer-first mindset' in Design Systems?

    -A consumer-first mindset refers to focusing on the actual users of the design system, which may include designers or developers. It's about ensuring that the design system is user-friendly and meets the needs of those who will be using it in their work.

  • How can teams avoid introducing unnecessary complexity in their Design Systems?

    -Teams can avoid unnecessary complexity by not taking optimization too far, avoiding the creation of overly customizable components, and by not overproducing their design system to mimic larger organizations unless it's necessary for their own needs.

  • What is the purpose of using a prioritization matrix in Design Systems?

    -A prioritization matrix helps teams identify quick wins, long-term projects, and potential additional projects that can be squeezed in if time allows. It ensures that expectations are realistic and helps prevent the team from becoming overwhelmed.

  • Why is validation before execution important when making changes to a Design System?

    -Validation before execution is important to prevent shipping changes that may need to be rolled back, which can cause additional work and confusion for users. It allows for an iterative approach to ensure the changes are the right approach before full commitment.

  • What is the relationship between props and variants in Figma's component sets?

    -Props and variants work together in Figma's component sets to create a user-centric design system. Variants help designers visualize different states of components, while props guide them on parts they can override, such as icons or text content.

  • How can teams ensure that their Design Systems are aligned with both designers' and developers' needs?

    -Teams can ensure alignment by maintaining open communication channels, involving developers early in the design process, sharing knowledge and resources, and utilizing Figma's features like component descriptions and Dev mode to facilitate collaboration.

  • What are some strategies for building a community around a Design System?

    -Strategies include identifying and engaging champions who are enthusiastic about the design system, providing educational resources, recognizing and rewarding participation, and fostering two-way communication between the Design Systems team and users.

  • How can feedback and metrics guide the next steps of a Design System?

    -Feedback and metrics, both qualitative and quantitative, can provide insights into user behaviors and needs, help identify areas for improvement, measure the health of the design system, and inform decisions for maximum impact.

  • Why is it important to approach Design Systems as an ongoing journey rather than a one-time project?

    -Design Systems need to evolve with the products they support, requiring ongoing attention, collaboration, and adaptation. This includes incorporating design and code updates, and addressing changes in technology, use cases, or rebranding.

  • What are some best practices for managing updates in a Design System?

    -Best practices include making updates in a way that doesn't disrupt the source of truth, using branching for work in progress, planning and testing changes thoroughly, and communicating these changes effectively to prevent confusion for system consumers.

Outlines

00:00

πŸ˜€ Introduction to Design Systems in Figma

Anna, Alexia, and Chad introduce themselves as designer advocates at Figma, emphasizing their role in assisting the Figma community with design systems. They outline the purpose of the video: to explore core principles and insights for building design systems in Figma, with the aim of guiding viewers through their design system journey. The advocates highlight the importance of sharing feedback, tips, and resources, and they set the stage for a deep dive into design systems, including actionable tips on Figma features and considerations for the audience to apply to their own design systems.

05:03

🚧 Approaching Complexity with Caution in Design Systems

The first principle discussed is to approach complexity with caution. The advocates explain that design teams often face challenges when they introduce too much complexity, leading to a rigid design system that is difficult to maintain and enable. They use examples such as over-optimized components and overproduced design systems to illustrate how complexity can hinder understanding and usage by designers. The principle encourages teams to be mindful of the balance between optimization and simplicity to ensure a more usable and flexible design system.

10:04

🎯 Grounding Design Systems in Organizational Priorities

The second principle focuses on being grounded in priorities, which helps reduce complexity and guide decision-making within a design system. Priorities can vary, such as efficiency, consistency, or communication, and they should align with the organization's goals. The advocates suggest using a prioritization matrix to identify quick wins, long-term plans, and potential side projects. They stress the importance of revisiting and evolving priorities as the organization grows and changes, ensuring the design system remains relevant and effective.

15:06

πŸ”¬ Validation Before Execution in Design System Development

The third principle is validation before execution, which the advocates recommend for teams making changes to their design system. This iterative approach involves starting small, testing, gathering information, and iterating towards the best solution. The importance of this principle lies in preventing the deployment of changes that may need to be rolled back, which can cause additional work and confusion for users. The advocates highlight the need to ensure that changes are beneficial and well-received before full commitment.

20:08

πŸ‘₯ Building a User-Centric Design System

Alexia discusses the importance of keeping a consumer-first mindset when working on design systems, focusing on the actual users of the design system, which include designers and developers. She addresses the issue of complexity and the evolution of Figma's features, such as component sets with props and variants, which can be a playground for complexity. Alexia encourages teams to consider the needs of their users and to challenge the complexity they create, ensuring that the design system remains clear and accessible.

25:10

πŸ› οΈ Leveraging Figma Mechanics for Design System Efficiency

This section delves into specific Figma mechanics that can be used to enhance the efficiency of a design system. Alexia talks about managing large sets of variants, the use of component props to reduce complexity, and the importance of clear naming conventions. She also touches on the use of nested instances and the potential for information overload, offering tips on how to manage complexity while maintaining discoverability for designers.

30:13

πŸ”„ The Dynamic Nature of Design Systems

Chad emphasizes the dynamic nature of design systems, which require ongoing attention, collaboration, and adaptation. He discusses the inevitability of change in design systems, such as supporting new use cases or technologies, and the importance of not disrupting the source of truth when making updates. Chad also highlights the use of branching in Figma to manage changes without affecting the main library, ensuring that work in progress does not confuse or mislead users.

35:15

🀝 The Importance of Communication in Design Systems

Communication between designers and developers is highlighted as crucial for the success of a design system. Chad discusses the importance of including developers early in the design process and maintaining a two-way street of communication. He cites a survey indicating that many front-end developers wish to be included earlier and work more closely with designers. The summary underscores the benefits of collaboration and the need for shared understanding and resources between teams.

40:15

🌟 Building a Community Around Your Design System

Anna talks about the value of building a community around a design system to aid in scaling efforts and increasing adoption. She discusses identifying champions within the organization who are already enthusiastic about the design system and can help advocate for it more formally. Anna also mentions the importance of providing educational resources and recognizing and rewarding participation in the community, which can lead to a larger impact on the organization.

45:16

πŸ“Š Utilizing Feedback and Metrics to Guide Design System Development

Alexia discusses the importance of using both qualitative and quantitative data to guide the evolution of a design system. She talks about leveraging comments and branching in Figma for asynchronous discussions and suggests structuring qualitative feedback for easier synthesis. Alexia also touches on quantitative metrics, such as adoption rates and usage analytics, and the use of Figma's REST API for more advanced data needs.

πŸ›‘ Managing Deprecation and Change in Design Systems

The final paragraph addresses the need for careful management of deprecation and change within design systems. It discusses strategies for introducing updates and deprecated elements, such as using 'deprecation mode' to visually indicate components that need updating. The importance of planning, testing, and communicating changes is emphasized to prevent disruption and confusion for users of the design system.

Mindmap

Keywords

πŸ’‘Design Systems

Design Systems are a collection of reusable design components and guidelines that ensure consistency and efficiency in product design. In the video, the theme revolves around building and maintaining Design Systems in Figma, emphasizing the importance of collaboration, iteration, and community engagement to create a robust system that serves both designers and developers.

πŸ’‘Figma

Figma is a cloud-based interface design and collaboration tool that is central to the video's discussion. It is used as the platform for creating and sharing Design Systems, allowing teams to work together seamlessly on design projects and systematize their design processes through features like components, variants, and libraries.

πŸ’‘Complexity

Complexity in the context of the video refers to the challenge of managing the intricacies of a Design System without making it overly rigid or difficult to use. The script warns against introducing too much complexity, which can lead to maintenance issues and hinder the system's usability, as illustrated by the example of over-optimization of components.

πŸ’‘Priorities

Priorities are the fundamental goals and values that guide the development and direction of a Design System. The video emphasizes grounding a Design System in clear priorities, such as efficiency, consistency, or communication, to ensure that it aligns with the organization's needs and supports decision-making processes.

πŸ’‘Validation

Validation in the video is the process of confirming the effectiveness and appropriateness of changes to a Design System before fully committing to them. It is part of an iterative approach that helps prevent the negative impacts of rolling out changes that may not be well-received or functional, as mentioned in the script's discussion on avoiding 'whiplash' for users.

πŸ’‘User-Centric

A user-centric approach focuses on designing with the end-user in mind. In the script, Alexia discusses the importance of keeping a consumer-first mindset, meaning that the design system should be built with the needs and usability for its actual usersβ€”designers and developersβ€”in mind, rather than just the end consumers of the products.

πŸ’‘Component Props

Component Props in Figma are a way to parameterize components, making them more flexible and closer to code. The video explains how props can reduce the size and weight of components, increase discoverability, and guide designers on which parts of a component can be overridden, playing a key role in managing complexity within Design Systems.

πŸ’‘Nesting Instances

Nesting Instances in Figma refers to the practice of using instances of components within other components. While this can increase discoverability, the video warns that it can also lead to information overload and complexity, especially when combined with variants and props, and advises being mindful of how these are presented to designers.

πŸ’‘Variables

Variables in Figma are used to manage and centralize design aspects like colors, typography, and spacing. The script clarifies the distinction between variables and styles, emphasizing their combined use for complex UI decisions, and discusses the importance of using variables to feed directly into UI layouts for consistency.

πŸ’‘Community

Building a community around a Design System is highlighted in the video as a way to scale efforts, create a network of support, and increase adoption. Champions within this community are identified as enthusiasts and influencers who can advocate for the system, provide feedback, and contribute to its evolution.

πŸ’‘Metrics

Metrics in the context of Design Systems are used to measure the effectiveness, adoption, and health of the system. The video discusses both qualitative and quantitative data, emphasizing the importance of understanding how the Design System is being used and where improvements can be made, with examples including the use of Figma's design system analytics and third-party plugins.

πŸ’‘Collaboration

Collaboration is a recurring theme in the video, stressing the importance of communication and partnership between designers, developers, and Design System maintainers. Effective collaboration is portrayed as crucial for the successful implementation and evolution of a Design System, ensuring that all stakeholders are included in the process.

πŸ’‘Breaking Changes

Breaking Changes refer to updates or modifications that may require significant adjustments from the consumers of a Design System. The video discusses the inevitability of such changes and the importance of careful planning, testing, and communication to minimize disruption and ensure a smooth transition.

Highlights

Introduction of the Figma design advocate team emphasizing their role in enabling teams through feedback and resources.

Core principles for building Design Systems in Figma, starting with acknowledging different stages of the Design Systems journey.

The challenge of introducing complexity in design systems and the importance of caution to avoid rigidity and maintenance issues.

Common reasons for over-optimization leading to complexity, such as supporting too many use cases with a single component.

The impact of complexity on designers' ability to understand and apply design system components effectively.

The principle of grounding in priorities to reduce complexity and align design system efforts with organizational goals.

The use of a prioritization matrix to manage design system projects and maintain realistic expectations.

Validation before execution as a strategy to prevent large-scale changes that may need to be rolled back.

Importance of a user-centric approach in building a design system, focusing on the needs of the design system's users, not just the end consumers.

The evolution of Figma's component features and the potential for increased complexity they introduce.

Strategies for managing large component sets, such as splitting them into smaller, more manageable sets.

The role of component props in reducing design system complexity and improving alignment with code.

Tips for working with nested instances in Figma to avoid overwhelming designers with too many options.

The one-year anniversary of Figma's variables feature and their integration with design systems.

Differentiating between variables and styles in Figma, and using them in combination for complex UI decisions.

The importance of scoping variables in Figma to reduce clutter and ensure consistent UI application.

Encouraging collaboration between designers and developers in the context of design systems.

The significance of communication in the design system workflow and the benefits of including developers early in the process.

Utilizing Figma's Dev mode and component descriptions to facilitate better communication between designers and developers.

Building a community around your design system to aid in scaling efforts and increasing adoption.

Identifying and nurturing champions within your organization to advocate for the design system.

Creating educational materials and resources to empower champions and facilitate the spread of design system knowledge.

Recognizing and rewarding participation in the design system community to encourage contribution and adoption.

Using feedback and metrics to guide the evolution of your design system and make data-driven decisions.

The importance of maintaining a data-driven approach to design systems to build trust and perceived value within the organization.

Adopting a layered approach to metrics in design systems, aligning with organizational priorities and monitoring design system health.

Leveraging Figma's commenting and branching features to capture qualitative and quantitative data on design system usage.

The availability of Figma's REST API for advanced data needs and custom dashboards to track design system adoption.

Design systems are not static and require ongoing attention, collaboration, and adaptation to remain effective.

Planning, testing, and communicating changes in the design system to minimize disruption and stress for consumers.

The inevitability of breaking changes in mature design systems and strategies for managing deprecation smoothly.

Recap of the principles and insights shared for building and evolving successful design systems in Figma.

Transcripts

play00:00

[Music]

play00:16

welcome everybody I'm Anna I'm Alexia

play00:20

and I'm Chad and we're designer

play00:22

Advocates here at figma all of us come

play00:24

from design backgrounds and we work with

play00:26

all of you out there in the figma

play00:28

community to help enable your teams by

play00:30

sharing feedback uh sharing tips and

play00:34

tricks and resources with using figma

play00:36

we're super excited to dive deep on

play00:39

building Design Systems in figma

play00:41

starting with a couple of core

play00:43

principles that we've gathered from

play00:44

working with the community and hope can

play00:47

help guide you no matter where you are

play00:48

in your Design Systems

play00:51

Journey we're also going to dive into a

play00:53

handful of insights from our experiences

play00:56

working in figma and working with Design

play00:58

Systems and you we've seen a lot of

play01:01

great things we've had success and we've

play01:03

learned from mistakes and both our own

play01:06

work and from talking with so many of

play01:08

you and you can expect to walk out of

play01:10

thee dive with some actionable tips on

play01:12

figma features as well as some

play01:14

considerations that we'd love for you to

play01:16

take on board Your Design system

play01:18

Journeys awesome well with that let's

play01:21

start by first grounding ourselves in a

play01:23

couple of core

play01:25

principles we want to acknowledge that

play01:27

we understand everyone here is at a

play01:29

different stage of their Design Systems

play01:30

journey and with that means that you

play01:33

have different needs and challenges but

play01:35

we hope that by grounding ourselves in

play01:37

these principles it'll help guide you on

play01:39

your next steps and figure out which

play01:41

ideas to run with after this

play01:43

talk so going to our first principle

play01:47

approach complexity with caution

play01:49

probably the biggest challenge that

play01:51

we've seen design teams experience is

play01:53

when they inadvertently introduce too

play01:55

much complexity and the problem with

play01:58

complexity is that it means that you're

play02:00

going to create a more rigid design

play02:02

system and it also means that you'll

play02:05

also probably have to spend a lot more

play02:06

time and resources when it comes to

play02:08

maintenance and

play02:10

enablement one of the most common

play02:12

reasons in which teams accidentally

play02:14

incorporate too much complexity is when

play02:16

they take optimization too far take the

play02:19

example of a component where you're

play02:21

trying to support a ton of use cases and

play02:23

customizations with a single component

play02:26

this might feel like a really great way

play02:28

to simplify Your Design system by

play02:30

potentially reducing the number of

play02:31

components that you have but the issue

play02:34

with this is if you take it too far

play02:36

it'll be a lot harder for your designers

play02:38

to understand when and where should they

play02:40

use this component and what are the

play02:42

different overrides that you can apply

play02:44

in combination with it they might spend

play02:46

more time trying to configure this

play02:48

component to fit their specific use case

play02:51

than whatever you had

play02:53

before another example that we've seen

play02:55

where teams over introduce complexity is

play02:59

generally when they roduce too much

play03:00

their design

play03:01

system so when you're building things

play03:04

out in your design system generally for

play03:08

teams that try to mimic larger

play03:09

organizations that need to support more

play03:12

Brands themes platforms Etc you

play03:15

accidentally add too much to it and as

play03:18

many of you have probably experienced

play03:20

it's a lot easier to create new

play03:22

components Styles and variables than it

play03:25

is to remove ones that are already

play03:26

embedded in your design system so it's a

play03:30

lot harder to make changes the more that

play03:31

you add to it and as Nathan CTIC pointed

play03:34

out in a tweet the more you add the more

play03:36

diminishing returns you'll get as well

play03:39

so for example the more components you

play03:41

add to a library the higher the cost and

play03:43

the less value each individual component

play03:46

will give to your

play03:47

consumers so all these examples of

play03:50

complexity come from a place of good

play03:52

intention you want to give your product

play03:54

designers and Engineers the tools that

play03:56

they need and you want your design

play03:58

system to be as optimized as POS

play04:00

possible but if you take these too far

play04:02

you're going to end up with more

play04:04

rigidity and complexity making it hard

play04:06

for you to make changes and also for

play04:08

your users to understand how to

play04:10

effectively utilize your design system

play04:13

which leads me into our second principle

play04:16

which is being grounded in your

play04:17

priorities this is going to help reduce

play04:19

complexity and your priorities are

play04:21

essentially going to help guide your

play04:23

decision- making and ensure that

play04:24

everything that you do to your design

play04:26

system aligns with what's most important

play04:28

to your organization

play04:31

and as you know there's some really key

play04:34

important things when it comes to

play04:35

figuring out your priorities and they

play04:37

could be a bunch of different things as

play04:39

Pedro Hernandez from data dog says it's

play04:41

really important to figure out what

play04:42

these priorities are to see what drives

play04:44

Your Design system and make decisions

play04:46

from there some examples that he gave in

play04:48

this little fireside chat was efficiency

play04:52

helping your designers and engineers

play04:53

build faster or maybe it's consistency

play04:56

creating a more consistent experience

play04:58

across your different features and

play04:59

products or it could be around

play05:02

communication helping designers and

play05:04

Engineers better understand each other

play05:07

all of these are valid priorities uh to

play05:10

ground Your Design system in and you can

play05:13

have multiple but if you do try to make

play05:15

sure that you have some hierarchy to

play05:17

help with your decision- making and

play05:19

something that's important too whether

play05:21

you're revisiting your priorities or

play05:23

you're developing for the first time is

play05:27

understanding that they're also going to

play05:28

change over time as your organization

play05:30

evolves so too should your design system

play05:33

and your

play05:34

priorities and also once you've

play05:36

identified those priorities we've

play05:38

commonly seen teams use some kind of

play05:40

variation of the prioritization Matrix

play05:43

so taking your priorities and from there

play05:45

identifying what are some quick wins

play05:47

projects we can start working on right

play05:49

now what are some things that we can

play05:51

need to plan for more long term and then

play05:53

what are some projects we can squeeze in

play05:54

if we have time and the important thing

play05:57

about this is that this way way you're

play05:59

going to prevent your team from becoming

play06:01

overwhelmed with all the possible things

play06:03

you could work on with your design

play06:05

system and also to make sure that your

play06:08

expectations are realistic that you

play06:11

understand what is possible within a

play06:12

given time

play06:14

frame so your priorities are going to

play06:16

help you figure out what to do and when

play06:18

but as for how that leads into our third

play06:21

principle which is validation before

play06:24

execution we've seen a lot of success

play06:26

from teams who want to make changes to

play06:27

their design system take the time when

play06:29

it comes to planning out the changes

play06:31

they want to make and then validating

play06:33

that those is the right approach before

play06:35

fully committing to it this is going to

play06:38

be an iterative approach where you start

play06:39

small test it out gather information see

play06:43

if you're on the right track or if you

play06:44

need to make some kinds of changes and

play06:46

slowly iterate your way to the best

play06:48

solution for your design system what's

play06:50

going to be helpful about this is that

play06:52

it's going to prevent you from Shipping

play06:54

a change to your entire organization

play06:56

only to have to roll it back which is

play06:58

more work for your yourself but it also

play07:01

is going to cause a lot of whiplash for

play07:03

your users and potentially impact how

play07:05

much people trust your design

play07:07

system so with all that said there's no

play07:11

one right way to build your design

play07:13

system as someone on a Design Systems

play07:15

team it's your responsibility to figure

play07:17

out what does that look like for your

play07:19

organization but by following these

play07:21

principles hopefully they can this can

play07:23

help you figure out what are the next

play07:25

steps and help you build a design system

play07:27

that fulfills the greatest needs of your

play07:29

organ organization while remaining as

play07:31

simple and usable as possible so with

play07:34

that I'm going to hand it over to Alexia

play07:37

to talk about our first insight and

play07:39

discuss how to build a user Centric

play07:41

design

play07:42

system thank you Anna

play07:46

okay so I want to go back a bit on what

play07:49

Anna was talking about about with

play07:50

complexity just now and talk about the

play07:52

first Insight we want to share with you

play07:53

all today which is keeping a consumer

play07:55

first mindset every step of the way as

play07:57

you're working on your Design Systems

play07:59

and when I mean consumer from first

play08:01

mindsets in this case I don't mean the

play08:02

end consumers of the products that

play08:04

you're building with the design system

play08:05

but really the actual users of that

play08:07

design system whether that be designers

play08:09

or developers and as I mentioned we see

play08:12

a lot of teams that are introducing a

play08:14

great deal of complexity in their design

play08:15

system in the hopes of building

play08:17

best-in-class Design Systems and we also

play08:19

see a lot of teams that are getting

play08:21

really hacky and smart with all the

play08:23

features that now figma offers um and

play08:27

it's interesting to see that but I want

play08:28

to acknowledge first

play08:30

that design complexity in design system

play08:32

sorry complexity in Sigma has evolved

play08:34

over time as we've been building the

play08:36

product to close that gap between design

play08:37

and code um if we take components for

play08:40

instance if you remember we came from a

play08:43

world of components being bound together

play08:45

by those forward slashes which created

play08:47

this kind of friction that I think

play08:49

limited Us in terms of adding a lot of

play08:51

complexity that we would organically

play08:53

grow into it otherwise and we've gone to

play08:56

a world of component sets that are now

play08:58

packed with props and variants and all

play08:59

those other cool things it's really

play09:01

become a playground for complexity and

play09:03

we're definitely seeing a lot of teams

play09:04

taking advantage of that I want to do a

play09:07

quick show hands in the audience right

play09:09

now how many of you here have already

play09:11

created a component set with a 100

play09:13

variants at some point in their life or

play09:16

their F experience wow okay I'm seeing

play09:18

actually a few hands raising which I'm

play09:20

very surprised by good job guys you hack

play09:22

the system um I this one is more of a

play09:26

rhetorical question how big do you think

play09:28

because we track those things at Sigma

play09:30

how big do you think the largest

play09:32

component set in terms of amount of

play09:34

variance has been since last config so

play09:37

since a year ago do you think it was

play09:38

about a th000 maybe

play09:42

10,000 it's actually over

play09:45

20,000 um and this image is not the

play09:48

actual component but it's very similar

play09:49

in terms of scale so just to give you a

play09:51

sense of that and when we go to that

play09:54

deep end and we create so many options

play09:56

how do our designers even know to find

play09:58

what they're looking for

play09:59

when we go there are we trying to just

play10:02

outsmart figma and be clever in the way

play10:04

we're working or are we actually just

play10:05

trying to be clear for our designers and

play10:08

so in figma the thing that we would love

play10:10

for all of you to always think is how

play10:12

can I get to my designers what they need

play10:14

in their workflow quickly this can

play10:16

impact how you think about Library

play10:17

structure it can impact how you think

play10:19

about component structure or variable

play10:21

structure and we will not have time to

play10:22

go through all of it today but I do want

play10:24

to highlight a few mechanics in figma

play10:26

that uh you can consider as you're

play10:28

moving forward so since we're talking

play10:30

about large sets of variants let's start

play10:32

there if we take this very schematic

play10:34

representation of a component there can

play10:36

we guess what it is is it an input is it

play10:39

a drop down is it a text area is it a

play10:41

bird is it a plane is it a super

play10:45

component if your component is getting

play10:47

to that stage where you're kind of

play10:49

getting not so sure what it might be

play10:51

it's probably time to step back and

play10:53

challenge the complexity that you've

play10:54

been creating until that point and I

play10:56

like to always challenge teams into

play10:58

thinking about two things when they get

play10:59

there which is firstly are you certain

play11:02

that for your users of your design

play11:04

system all the available options behind

play11:07

the default version of that component is

play11:09

going to be crystal clear the moment

play11:10

that they see it especially if the

play11:12

naming is quite generic and the second

play11:14

one is are you certain that every single

play11:17

variant in that inside that component

play11:19

set are interchangeably used in the same

play11:22

use cases by your designers and if the

play11:24

answer to either of those questions is a

play11:26

no it might be time to start considering

play11:29

SPL this component set and it's really

play11:31

as simple as just selecting all the

play11:33

options you want out dragging them out

play11:34

and rebundling them into a new component

play11:36

set the links will be preserved because

play11:37

figma keeps the IDS that way and if the

play11:40

layer structure is the same it'll even

play11:41

guarantee that overrides will be kept as

play11:43

your users actually swap the components

play11:45

around

play11:46

later now if you're think and you're

play11:49

pretty convinced that your variants all

play11:51

belong together but you haven't

play11:52

leveraged component props yet component

play11:55

props is may be something that you want

play11:56

to look at so for those who don't really

play11:58

know props that way well they're

play11:59

essentially a way to bring your

play12:01

components closer to code and in the

play12:03

process inside figma to reduce the size

play12:05

and weight by up to 50% if not more

play12:08

sometimes and when people ask us about

play12:10

the difference between variance and

play12:11

props as advocates we like to kind of

play12:13

schematize that by saying okay variance

play12:15

is really to help your designers

play12:17

visualize what are the different states

play12:18

of your design of your components and

play12:20

props are there to kind of guide them

play12:22

and highlight the parts where they can

play12:23

actually override so things like an icon

play12:26

they can swap or a text that they can

play12:28

change the content of

play12:30

and props are great because they're very

play12:32

self-documenting they're excellent for

play12:34

creating that extra discoverability in

play12:36

the design panel of your designers and

play12:39

together with props sorry props and

play12:40

variants together are 100% the best

play12:42

practice to implement in your Design

play12:44

Systems one thing to keep in mind with

play12:46

props when you're using them is that as

play12:47

you're adding them in your component by

play12:49

default they're just going to stack in

play12:51

that Designer experience exactly in the

play12:53

order you're creating them which may not

play12:55

be the most intuitive way of aligning

play12:57

them so you want to take AG of the fact

play12:59

that in figma when you're creating that

play13:01

component you can actually drag and drop

play13:03

and reorder your props and make sure

play13:05

that the ones that are related to each

play13:06

other belong with each other so for

play13:08

instance the best use case is a Boolean

play13:10

prop that's when toggled on is

play13:12

activating the visibility of another

play13:13

prop you really don't want those two to

play13:16

live in separate parts of the design

play13:18

panel for your designers you want to

play13:19

make sure that they're stacked together

play13:21

and that they're visually intelligible

play13:22

for your designers naming is another big

play13:26

thing naming is what can really guide

play13:29

your designers and so really recommend

play13:31

to think about making sure that things

play13:32

are consistent and consider leveraging

play13:35

things like action-based verbs or

play13:37

action-based namings when it comes to

play13:38

things like variants or booleans that

play13:40

are very self-explanatory as to what the

play13:42

intended reaction of that Fe that uh

play13:46

parameter of that component will be for

play13:47

your

play13:48

designers okay so at that point let's

play13:50

say we've done all that we've got some

play13:52

nice leans components with props we're

play13:55

happy with them these components might

play13:57

end up in other slightly larger

play13:58

components with a bit more complexity

play14:00

and when that happens in figma you get

play14:03

the option to do what's called nesting

play14:05

instances so it's a great way to Bubble

play14:08

Up every single parameter of that nested

play14:10

instance at the same level as the

play14:12

parameter of the M component um this

play14:15

means that you're essentially creating

play14:16

even more of discoverability which

play14:17

sounds great on the

play14:19

paper the thing is when you get to that

play14:22

part of complexity in your design system

play14:23

where you're starting inside the same

play14:25

component to pile variants and props and

play14:27

nested instances it's starting to create

play14:30

that really long side panel for your

play14:31

designers potentially and really create

play14:33

an information overload and you really

play14:35

want to be mindful of that inflection

play14:37

point past which you're kind of stopping

play14:39

to create discoverability and you're

play14:40

starting to make your designers's job

play14:42

harder when they're trying to use that

play14:44

component so a couple tips on working

play14:46

with nested instances where you get that

play14:48

point the first one is really be mindful

play14:51

about considering whether that nested

play14:53

instances absolutely needs to be

play14:54

surfaced up at surface level um is it

play14:57

going to be key to the user flows that

play14:59

your designers are building for instance

play15:01

if we're doing some kind of form that

play15:03

check field component is probably not

play15:06

going to be really needed because it's

play15:07

going to be toggled on by default all

play15:08

the time so no need to surface that

play15:11

another thing you want to think of

play15:13

is by default if you're repeating

play15:16

several times the same nested instance

play15:17

inside a bigger

play15:19

component what's going to appear in the

play15:21

drop down of your designers is just the

play15:23

layer name and so if that compon that

play15:25

instance is repeated it's just going to

play15:26

be several times the drop down with the

play15:28

same name you really want to consider

play15:30

actually renaming and overwriting the

play15:32

layer name in the side panel um for

play15:34

their designers to actually see the

play15:35

difference and understand a bit better

play15:37

what they're navigating through and

play15:39

finally if you're just concerned that

play15:41

you're running out of space and you

play15:42

don't want to pile more stuff that your

play15:43

designers can interact with but you

play15:45

still want to bring some kind of

play15:46

awareness to it consider using component

play15:48

documentation they're just a great space

play15:50

you can fit in every extra information

play15:51

that may not belong everywhere

play15:54

else okay trying to speed front for this

play15:57

so we' talked a lot about components I

play15:59

do want to spend a bit of time giving

play16:00

some love to variables because hey one

play16:01

year anniversary it's been a year ago

play16:03

since we release variables thank

play16:07

you and variables I just want to clarify

play16:11

a first thing about it which is that

play16:12

tension between variables and styles I

play16:13

think when we first announced variables

play16:15

this time last year a lot of people felt

play16:17

like they might just simply be a

play16:19

enhanced version of styles and our

play16:21

vision at figma is really uh that

play16:23

they're not contradictory they're better

play16:24

used in combination with one another

play16:26

especially when it comes to supporting

play16:27

more complex UI decisions so in figma

play16:31

design system world this means that

play16:33

there are some values that absolutely

play16:35

should be consumed as individual

play16:36

variables and these will be values that

play16:38

will feed directly into the UI layouts

play16:40

that your designers are building things

play16:42

like an actual color or you know the

play16:44

dimension for Noto layout Ping On The

play16:47

Other Side you've got what we would

play16:48

consider to be composite variables so

play16:50

composite variables are made of a

play16:51

multiple of variables and this is where

play16:53

Styles come in because Styles can act as

play16:55

a package for that so for instance

play16:57

that's like a gradient a drop shadow or

play16:59

you know most recently introduced a

play17:02

textile so let's talk about textiles for

play17:05

a bit since this is the latest addition

play17:06

to our rooster I know that a lot of you

play17:08

guys are very excited for textil to

play17:09

finally come around when we announce VAR

play17:11

variables uh sorry for text variables to

play17:14

come around when we announce variables

play17:15

last year um when it comes to typography

play17:19

tokens essentially what you want to do

play17:20

is create those individual variables for

play17:23

each of your typography parameter inside

play17:25

your variables table embed those

play17:28

directly into your textiles and then

play17:30

you're going to publish that textiles

play17:31

and it's going to be very seamless in

play17:33

terms of how your designers actually

play17:34

consume it it's basically integrated in

play17:36

their existing workflows but it's all

play17:38

backed up by the really cool

play17:39

architecture that you have in

play17:40

place and if you do that because you're

play17:43

the one as a design system maintainer

play17:45

creating that complex architecture you

play17:48

don't want to feed that complexity to

play17:49

your designers do you so what you want

play17:51

to do is consider hiding any sort of

play17:54

backend quote unquote variables from

play17:56

publishing and make sure that only the

play17:57

style is being fed

play17:59

and when we're talking about hiding

play18:00

complexity remember I just mentioned

play18:02

earlier right there will be variables

play18:04

that you will feed directly through your

play18:05

designers like colors and number values

play18:07

for paddings and margins so when it

play18:10

comes to those you really want to

play18:11

consider using the scoping feature of

play18:13

figma if you're not too familiar with

play18:15

what this is this is essentially what it

play18:16

looks like uh it's accessible in the

play18:18

options of your variable panel and what

play18:21

scoping is is essentially targeting the

play18:23

application of a specific value to

play18:25

specific Fields within your designer

play18:27

interface so for instance if I'm scoping

play18:29

this border width to specifically stroke

play18:32

it's never going to appear if my

play18:33

designer is trying to apply a numerical

play18:36

value on an oo layout margin and this is

play18:38

really going to reduce considerably the

play18:40

Clutter and the amount of noise that

play18:42

your designers are receiving on their

play18:43

end allowing you to create as complex

play18:46

architecture on the back end as you want

play18:48

but still making sure that they get only

play18:50

what they need when they need and that

play18:52

it's going to be consistent UI

play18:53

throughout as they're building their

play18:56

interfaces so to rec out what we touched

play18:58

on

play18:59

when it comes to building libraries you

play19:01

really want going back to what Anna was

play19:02

saying in introduction to challenge the

play19:04

complexity that you're creating every

play19:05

step of the way and really think about

play19:07

that tension between increasing

play19:10

discoverability for your end users but

play19:12

also as you're increasing that

play19:14

discoverability moving down the volume

play19:16

on all the noise that you might be

play19:17

creating by using different ways of

play19:19

leveraging that Sigma side panel and

play19:21

finally when it comes to variables

play19:23

Styles hide and scope are your best

play19:26

friends and we talked a lot about

play19:28

designer workflows and I realized that

play19:29

design system is definitely not just

play19:31

about designers developers are part of

play19:33

all the decision- making and I'm going

play19:34

to leave it with Chad to talk a bit

play19:35

about

play19:39

developers all right thank you

play19:42

Alexia all right so when we're working

play19:44

on Design Systems whether we are the

play19:46

designers crafting components or we the

play19:49

developers making them real through code

play19:52

we need to ensure that we're

play19:53

communicating with one another

play19:55

throughout the process that we have a

play19:57

two-way street of communication

play19:59

this way we can get our assets to

play20:01

production faster and support those who

play20:03

utilize our design

play20:05

system so we often have different ways

play20:08

of working though and different

play20:10

processes different ways of

play20:11

communicating let's think about the

play20:13

question who should start the work who

play20:16

here is a designer that works on a

play20:18

design system all right awesome so we

play20:22

need to build and we need to design

play20:24

those components first right they have

play20:26

to be designed before they can be built

play20:27

we want designers to start using them in

play20:28

their designs it's the way it

play20:30

is all right well hold on any developers

play20:33

in the room design system developers all

play20:36

right awesome we got a few too awesome

play20:38

so what happens when there's a change in

play20:40

the API or we need to update the code

play20:43

that's going to impact what designers

play20:45

are using maybe the default value is

play20:48

going to change from medium to large

play20:50

we're going to update the code and we'll

play20:51

fix the design later

play20:53

right well designers did you tell the

play20:57

developers that the components were

play20:59

ready to be built and developers did you

play21:01

tell designers that this changed well

play21:03

let's remember the importance of

play21:05

communication in our

play21:07

work especially with Design Systems

play21:09

where the designer and developer

play21:11

workflow is really one of or if not the

play21:14

most important

play21:16

partnership and I've experienced these

play21:18

benefits firsthand when you have great

play21:20

communication and collaboration between

play21:22

design development and I've experienced

play21:25

when there hasn't been such great

play21:27

communication and we know from talking

play21:29

with developers in the community that

play21:32

not all teams have this today we did a

play21:35

survey with 200 front-end developers

play21:37

across the product and design system

play21:40

landscape and we published in a report

play21:42

on figment.com called decode the

play21:46

developer now in that 55% of the

play21:49

front-end developers said that they wish

play21:51

they were included earlier in the design

play21:54

process and less than half really only

play21:57

43 % said that they work with designers

play22:01

on a daily basis so all of my fellow

play22:04

designers here our developers want to

play22:06

work with us they want to understand

play22:08

more earlier in the process it's okay to

play22:11

share work early bring developers in and

play22:14

talk about potential hurdles and

play22:16

opportunities for alignment especially

play22:18

in the design system should a prop name

play22:21

be aligned to code or should we maybe

play22:23

make it friendlier in design or maybe

play22:26

code doesn't support something today

play22:27

that we want to add add to make things a

play22:29

bit more

play22:30

clear so let's talk about a

play22:33

component share the little details

play22:36

designers we love pill-shaped buttons

play22:38

right let's use our friendly little

play22:40

button right here have we thought about

play22:42

all the different use cases or how we

play22:44

might adapt it for different things like

play22:47

when it comes to internationalization

play22:49

and our text strain gets longer what

play22:52

happens what should we have our

play22:54

developers do do we truncate the tax do

play22:57

we completely switch it out for a

play22:59

different word just let it run out the

play23:01

side of the view or do we wrap it and we

play23:03

turn our pill-shaped button into this

play23:05

cute little

play23:06

squirkle but how about usability

play23:09

considerations also with the visual

play23:11

treatment are people going to understand

play23:14

them is this a tab is a navigation bar

play23:17

is it linear progress steps do people

play23:20

understand the intent of our components

play23:23

designs when we share these details and

play23:27

why certain designc were made or any

play23:30

feedback from testing it can help us

play23:32

ensure that we have that alignment as

play23:35

the components are being built as well

play23:37

as for when consumers are using the

play23:39

components in their

play23:41

designs really what I'm trying to say is

play23:43

that communication it's everything and

play23:45

you know whether it's synchronous or

play23:47

async sharing knowledge and resources

play23:50

can help everyone get their work done

play23:52

and Alexia briefly touched about using

play23:54

the component description Fields when

play23:57

you are configuring components and figma

play23:59

but also for our developers let's make

play24:02

sure that we are utilizing our developer

play24:05

resources in Dev mode this is where we

play24:09

can include additional information on

play24:10

our component such as links to our

play24:12

storybook docs or maybe we want to put a

play24:15

link in our component code from GitHub

play24:19

and load that right up here in

play24:22

figma and the great thing about this is

play24:25

even if designers are using these

play24:27

components in their design and they

play24:29

detach that component these Dev

play24:31

resources are going to stay connected so

play24:34

that way as developers are inspecting

play24:36

designs built with these components

play24:38

they're still going to have the links to

play24:40

the information that they need and they

play24:42

can always compare back to what the

play24:44

component is in the design

play24:48

system so designers let's not just hand

play24:51

off our files to developers and hope

play24:53

that there's enough there for them to

play24:55

work with or wait around for them to

play24:57

come to us and ask questions questions

play24:59

let's also leverage some of our

play25:01

resources leverage our documentation and

play25:04

use that to help Elevate our

play25:05

conversations in partnership with our

play25:10

developers at the end I'm really just

play25:12

trying to say designers bring your

play25:14

developers along through the process

play25:15

developers bring your designers into

play25:18

your process as well continually

play25:20

collaborate with one another throughout

play25:22

the building of your design system and

play25:24

honestly even in your

play25:26

products after all as Diana mount

play25:28

has said great collaboration isn't

play25:31

throwing designs over a

play25:33

wall it's designers developers and the

play25:36

rest of the team collaborating

play25:38

together so when we talk about

play25:40

collaborating together and just together

play25:43

really Design Systems are about people

play25:46

and this is where as people when we

play25:47

share our knowledge we share our

play25:49

resources and we build collaborative

play25:51

relationships with one another it's

play25:54

going to help everyone in the process of

play25:55

getting their work from design to

play25:58

production faster for both makers of the

play26:01

system and for the

play26:03

consumers so now let's hand it back to

play26:05

Anna who's going to share a bit more

play26:07

about approaches that we've seen teams

play26:09

take to help enable and support their

play26:18

organizations as Chad said Design

play26:21

Systems are about people and you can

play26:23

take this way of thinking to how you

play26:24

approach not only building your design

play26:26

system but also educating and advocating

play26:29

for your design system which is why I

play26:31

want to talk about the value of building

play26:33

a community around your design system

play26:36

and how it can help you with scaling

play26:38

your efforts creating a fly wheel effect

play26:40

that helps amplify your message and

play26:43

eventually hopefully leading to larger

play26:45

adoption of your design system so the

play26:49

first step to building a community

play26:51

around your design system is identifying

play26:53

your

play26:54

Champions these people are going to be

play26:57

initially people who are already

play26:59

enthusiastic about your design system

play27:01

looking at how you can identify Enigma

play27:03

you can look for people who have maybe

play27:05

left comments in your various design

play27:07

system and Library files or maybe

play27:10

they've directly made edits to them

play27:11

maybe someone created a branch and

play27:13

proposed a new pattern and then you

play27:15

could also look at library analytics

play27:17

which we're going to cover on in a bit

play27:19

to see which teams are already heavily

play27:21

using your libraries if that's the case

play27:24

it probably means that there's someone

play27:25

in that team that's already advocating

play27:27

for your design system

play27:29

system and once you've identified these

play27:31

people reach out to them and see if

play27:33

they'd be interested in helping you out

play27:35

in a more formalized way and the idea is

play27:37

that these people's enthusiasm for your

play27:39

design system will help encourage others

play27:41

to learn more about it adopt it and

play27:44

maybe even contribute to your design

play27:46

system a second group of people I think

play27:49

are incredibly valuable to become your

play27:51

Champions are people who are influential

play27:53

so this could be from just having a lot

play27:55

of respect maybe they were at your

play27:56

company for a while or it could be built

play27:58

into their role if they're in operations

play28:00

or if they're a manager on a design and

play28:02

engineering team they have a direct

play28:04

impact on their team's processes and

play28:07

workflows and so even if they're not

play28:09

initially bought in if you can convince

play28:11

them of the value of a design system get

play28:13

them to become a champion for you they

play28:16

can have a huge impact on how embedded

play28:19

Your Design system is in their team's

play28:21

workflows so once you've identified your

play28:24

Champions the next step is to provide

play28:27

them with the resources to help them

play28:28

succeed generally creating educational

play28:31

materials that they can reuse and

play28:33

repurpose to help spread the message you

play28:36

don't feel like you need to create all

play28:37

these from scratch figma has a bunch of

play28:39

really great resources on our YouTube

play28:42

help center and in figma community such

play28:44

as our playgound files which already

play28:47

have a lot of important contextual

play28:49

information on features several of them

play28:51

related to design systems such as Auto

play28:53

layout component properties and

play28:55

variables and built-in examples where

play28:57

designers can get hands-on experience

play28:59

learning how to use these we've seen

play29:01

teams take these playground files and

play29:03

incorporate their own examples from

play29:04

their own design system so that teams

play29:07

can learn and understand how these

play29:09

features work within the context of

play29:10

their own

play29:11

organization or using these as a

play29:13

template to build their own custom

play29:16

playgrounds for example Janna Choy and

play29:18

last year's config talked about how

play29:20

Capital 1es design system team modeled

play29:23

their flight simulator off of figma

play29:25

playground files as a way to create an

play29:28

interactive onboarding experience to

play29:30

help teams learn about their design

play29:32

system and also increase the brand

play29:34

awareness of their design system as

play29:36

well and as Chad mentioned earlier

play29:39

documentation is also a really great

play29:41

resource you can look into building

play29:42

those within figma using existing

play29:45

documentation kits such as this one

play29:47

pictured here by Oliver Engel that

play29:49

already have components built out with

play29:52

common documentation layouts and assets

play29:55

um with auto layout automatically built

play29:57

in that you can go ahead and use and

play30:00

component configurations panel is also a

play30:02

really great way to just put lightweight

play30:04

information you can also try to play

play30:06

around with the formatting to make it

play30:07

easier to read and Link out to other

play30:09

docs if they exist in another website in

play30:13

another figma file or maybe storybook or

play30:17

GitHub and lastly I want to really

play30:19

emphasize the value of recognizing and

play30:22

rewarding people's participation in your

play30:24

community and contribution to your

play30:26

design system we've seen some teams

play30:29

directly incorporate this into their

play30:30

leveling chart so having designers who

play30:33

are contributing to your design system

play30:36

actually have it be incorporated into

play30:37

their performance reviews because it

play30:39

does demonstrate and allow them to have

play30:41

a larger impact on their

play30:43

organization and then there's also the

play30:45

option to create external signals if

play30:47

it's badges or certificates if people

play30:49

complete a training if you're creating

play30:51

custom Zoom backgrounds or swag that

play30:53

people who have participated in your

play30:54

community can wear and it just helps

play30:57

them feel like they're a part of

play30:58

something bigger and it also helps serve

play31:01

as larger visibility in creating an

play31:03

external signal to others and just

play31:05

building awareness of your design

play31:08

system so I really want to encourage

play31:10

everybody to look outside of their

play31:12

Design Systems teams to see how building

play31:15

a community can help you scale your

play31:16

efforts in educating advocating for and

play31:20

eventually increasing adoption of your

play31:22

design system and also these Champions

play31:24

aren't just there to advocate for you

play31:27

they provide a really valuable way of

play31:28

creating two-way communication between

play31:30

your Design Systems team and your users

play31:33

so with that I want to hand it over to

play31:35

Lexia to talk more about how you can use

play31:38

feedback and metrics to guide the next

play31:40

steps of your design

play31:42

system thanks again and we're

play31:46

back okay so let's talk a little bit

play31:49

about getting a sense of where you might

play31:51

be going next with your Design Systems

play31:53

um as Anna mentioned if you already have

play31:55

an Engaged Community around you and

play31:58

you're probably already getting direct

play31:59

feedback from them which is a great

play32:01

place to be now we often also times work

play32:04

with teams who unfortunately don't work

play32:07

that closely with their end design

play32:08

system consumers and that could be for a

play32:10

multitude of reasons it could be because

play32:12

um these designers and developers are

play32:14

just too far scattered around their

play32:15

organization it could be because there's

play32:17

a lack of resources but really when it

play32:20

comes to Design Systems it's kind of

play32:22

just like user research it's really that

play32:24

combination of having insights around

play32:26

behaviors around your design system

play32:28

comine with uh a solid sense and

play32:30

grounding in your Design Systems

play32:31

priorities that together bring you

play32:33

Clarity on where you should be focusing

play32:35

your efforts for Maximum Impact

play32:37

regardless of how much resources you

play32:39

have at your availability and just like

play32:41

in user research there's a pendulum of

play32:43

data that you can play with around your

play32:44

Design Systems so on one hand

play32:46

qualitative and on the other hand

play32:48

quantitative in design system World

play32:50

qualitative might feel to some like the

play32:52

most accessible because it's a lot of

play32:54

one-on-one conversations it's a lot

play32:56

about digging deep into the functional

play32:57

needs needs around your Design Systems

play32:59

um and on the other hand quantitative

play33:01

can feel occasionally a bit more

play33:03

intimidating because you know maths not

play33:05

necessarily are best friends for

play33:06

everyone um and it does however require

play33:09

slightly less active engagement from

play33:11

your design system Community which could

play33:13

be interesting to some um and

play33:15

quantitative specifically is really

play33:16

about that big picture of your design

play33:18

system about feeling the heart bit of

play33:20

that design system together just like us

play33:23

a research they bring the most complete

play33:25

picture right you'll get your hypothesis

play33:26

on one side and you'll get the valid and

play33:28

the other but really any insight is

play33:30

better than nothing and better than just

play33:32

making decisions in a vacuum so it's

play33:34

completely okay to just start wherever

play33:35

you have the possibility of starting so

play33:38

let's talk about qualitative data real

play33:41

quick there are many ways to capture

play33:43

qualitative data around your Design

play33:45

Systems Um this can be more or less

play33:46

structures this can be outside your

play33:48

figma files they can be inside your

play33:50

figma files and there isn't a better way

play33:52

by the way it's just really dependent on

play33:54

what kind of data you need and this

play33:56

should infer where you're going to get

play33:57

it

play33:58

in figma since you know config we're

play34:00

talking about figma here uh what we

play34:02

often see in terms of behaviors is we

play34:04

see people leveraging comments uh as

play34:06

external users of the design system

play34:08

directly onto the design system Library

play34:10

files and occasionally we'll see people

play34:12

being even more proactive in their

play34:13

contribution by using branching to

play34:15

suggest updates now I want to focus on

play34:18

commencing very quickly because that's a

play34:20

feature that is used by many uh I think

play34:23

it feels very accessible even

play34:24

non-designers get a feel for how it

play34:25

works so it's great for asynchronous

play34:27

discussions in this way but it's also

play34:30

extremely unstructured as a way of

play34:32

gathering data if you don't do anything

play34:34

about it you know like letting things

play34:36

organically pile up makes them very hard

play34:38

to synthesize so if you and your team

play34:41

are thinking or are already using

play34:42

comment we would really recommend you to

play34:44

think of ways where your team can better

play34:46

structure that qualitative feedback that

play34:49

you're getting and we see for instance

play34:51

the teams at hubs swop and hassa that

play34:53

have come to agreeing on specific shared

play34:55

vocabulary around their feedbacks that

play34:58

can be shared vocabulary around the

play35:00

priority levels of the feedback or

play35:02

things like the expected actions that

play35:04

should come out of that feedback or it

play35:06

can be really as simple as just you know

play35:07

a colorcoded emoji and the reason we're

play35:10

talking about shared vocabulary or

play35:12

emojis is really this notion of tags

play35:14

that you can input directly into figma

play35:16

comments so good thing to know about

play35:18

figma comments is there is a search

play35:19

function that scans across the entire

play35:22

file if you have a design system Library

play35:24

any comment or any comment inside that

play35:26

comment frad that that carries the tag

play35:28

will be able to be surfaced when you're

play35:30

doing a search through that file um and

play35:33

that can be a very very easy way to set

play35:35

up future you for an easier access of

play35:37

scanning and consolidating the feedback

play35:39

you're getting from your

play35:41

users okay that was for qualitative

play35:43

feedback let's touch on quantitative

play35:45

feedback real quick so if you're going

play35:47

to think quantitative feedback in the

play35:48

context of Design Systems you're going

play35:50

to think yourself the questions of

play35:52

metrics and metrics is a huge question

play35:54

that there are many many many smart

play35:56

people out there that are trying to to

play35:57

crack around Design Systems and not

play36:01

going to pretend that there's a perfect

play36:02

way of measuring it once again very

play36:04

dependent of your organization very

play36:05

dependent of where you are but it's

play36:07

interesting to think of metrics in

play36:09

design system as layers so you

play36:11

definitely have that one layer of design

play36:13

system metrics that really is grounded

play36:16

directly into your organization's

play36:17

priorities what Anna touched on at the

play36:19

beginning of this presentation regarding

play36:21

is your priority about efficiency is it

play36:23

about driving consistency and can you

play36:25

measure those things there's another

play36:27

layer that it's also very important to

play36:29

look at which is what we would call

play36:31

Design system health and that is more

play36:33

about you as a design system team

play36:35

building a sense of progression on your

play36:37

design system Journey keeping an eye on

play36:39

patterns and potentially anomalies that

play36:41

you pick up on because these can inform

play36:43

the decisions that you make in terms of

play36:45

your next steps and it can be things

play36:46

like measuring scale or you know

play36:48

adoption and let's look adoption for a

play36:50

minute because adoption is one that we

play36:52

see a lot of teams trying to calculate

play36:55

and keep an eye on so once again no King

play36:58

metric when it comes to adoption

play36:59

surprise surprise um we see loads of

play37:01

Team measuring it differently and it's

play37:03

completely dependent on their own

play37:04

context and where they are and what

play37:05

they're striving for we see teams that

play37:08

for instance measure adoption by Bread

play37:10

so in figma terms that's something as

play37:12

simple as maybe measuring how many teams

play37:14

out of the total number of teams you

play37:16

have are actually yes or no using a

play37:17

design system Library we also see some

play37:20

teams measuring adoption by depth so

play37:23

that would be something in figma context

play37:24

like how much of the files being handed

play37:26

off to my developer is actually being

play37:28

covered in terms of the number of layers

play37:30

by Design system derived layers and if

play37:33

you don't really know where to start

play37:34

with adoption there are some really

play37:36

handy free plugins that you can leverage

play37:38

on community uh a lot of them take the

play37:40

form of lining plugins which essentially

play37:42

scans through the files and just tells

play37:43

you how much is using or you know

play37:45

forgetting to use the design system and

play37:48

some of those some of these come in with

play37:49

really handy metrics even as far as

play37:51

percentages which can help you give and

play37:53

like keep an eye and monitor what's

play37:54

going on into your design system files

play37:56

sorry into your actual design files not

play37:58

design system files because if you want

play38:00

to pull back and have a bird ey and

play38:02

actually happening at design system

play38:03

level there's this other feature you

play38:05

could look at potentially which I

play38:07

sometimes discuss with teams and I'm

play38:09

surprised that not everyone is aware of

play38:10

it but if you want here it is this is

play38:12

the new entry point in the new UI um

play38:14

it's called design system analytics

play38:16

accessible from any design system

play38:17

library that is published on figma and

play38:19

when you open it it gives you

play38:20

essentially a very quick overview at a

play38:22

glance of what the usage is looking like

play38:24

which teams importantly are you actually

play38:26

using your design system

play38:28

and if you want to leverage that data

play38:29

and start getting a bit manual with it

play38:31

you can also export it as CSV which can

play38:32

be really handy now all this might still

play38:36

feel a bit basic for some there are

play38:37

people out there with much more Advanced

play38:39

Data need than just that and if you're

play38:41

part of those teams then you're going to

play38:42

probably start thinking about apis and

play38:44

at figma we have a an API called the

play38:46

rest API there's this really good

play38:49

article by Pinterest the Pinterest team

play38:51

that uh dates from a little bit over a

play38:52

year ago now where they detail how they

play38:55

actually leveraged figma's rest API

play38:58

to essentially build fully custom

play38:59

dashboards that are tailor fit to their

play39:01

specific ways of measuring and tracking

play39:03

adoption in their teams and that article

play39:06

as I said is from a little bit over a

play39:07

year ago since then two months ago we

play39:10

just announced that framework that we're

play39:11

adding some more design system analytics

play39:13

end points into the rest API so we're

play39:15

really really excited to see what the

play39:17

most nerdy teams out there are going to

play39:19

do with all those new ways of measuring

play39:21

data potentially in our

play39:23

apis okay I hope with this brief

play39:25

overview I've given you a sense of how

play39:26

figma might be a ble to help you capture

play39:28

data uh whether it's qualitative or

play39:30

quantitative because really being data

play39:32

driven is not only just about driving

play39:35

more impactful decision- making on where

play39:37

you're going next with your Design

play39:38

Systems but it's also going to help you

play39:40

build trust and build the perceived

play39:42

value of your design system in your

play39:44

organizations by unlocking things like

play39:46

reporting and once we know roughly where

play39:49

we're going next then the next question

play39:50

is how the heck do we get there and Chad

play39:53

is going to talk a bit about

play39:56

that all right thank you again

play39:59

Alexia so the great thing about data is

play40:01

it tells us what's going on and you know

play40:04

I think one thing that we're always

play40:06

going to see with our Design Systems

play40:08

when we look at the data is that nothing

play40:11

is forever with a design system so let's

play40:14

think about that for a moment for

play40:16

everyone here who has worked on a design

play40:18

system who here has launched it and

play40:20

thought all right we did it people are

play40:22

using it let's check that box we're done

play40:25

we've all felt that right

play40:28

well just as products change our design

play40:30

system is going to need to change it's

play40:33

going to be an ongoing Journey because

play40:34

we're going to have to eventually

play40:36

support new use cases maybe new

play40:39

technology or we might need to address

play40:42

um components and patterns that become

play40:44

less and less used everyone remember

play40:47

giant rotating image

play40:49

carousels or you may encounter a

play40:52

Rebrand so in my previous company we

play40:55

worked through two complete rebrands

play40:57

with our multibrand design system and

play40:59

had started Explorations on a third and

play41:02

when we made updates to things like

play41:04

color and dimensions and type it was

play41:07

overwhelmingly straightforward and it

play41:09

got us most of the way there but there

play41:12

were still challenges for consumers of

play41:13

the system to fully inherit or Implement

play41:16

due to design overrides custom patterns

play41:19

to address unique use cases or entirely

play41:22

different code bases used across

play41:24

products maybe you've experienced this

play41:26

as well

play41:29

and while Design Systems may lead

play41:31

updates in situations like rebrands or

play41:34

maybe introducing new figma features

play41:36

into your assets generally Your Design

play41:40

system is not going to move at the same

play41:42

speed as your product or its consumers

play41:45

in fact it really

play41:46

shouldn't after all maintainers we don't

play41:48

want to be constantly riffing on our

play41:50

ideas and Publishing them out creating

play41:54

chaos for consumers who are just trying

play41:55

to get their work done wondering well is

play41:58

this the flavor of the week what should

play41:59

I be using especially if you're

play42:01

publishing at speed like this don't do

play42:03

that generally we want to wait and have

play42:05

our design system be informed by our

play42:08

product and by the consumers of it that

play42:11

way we can incorporate those updates to

play42:13

support different cases when and where

play42:15

it's

play42:16

appropriate and when we do begin that

play42:19

work it's important to remember not to

play42:21

disrupt the source of Truth so it could

play42:25

be truth or truths maybe it's your code

play42:27

repo maybe it's your main figma design

play42:29

library in figma what this typically

play42:32

means is if you're doing a massive

play42:34

overhaul we may see teams making a

play42:37

duplicate version of their library and

play42:39

making those large changes there and

play42:41

creating a migration path to a new

play42:43

version or we'll often see large teams

play42:45

leverage branching which Alexia briefly

play42:48

touched on

play42:49

before and some of the benefits of using

play42:52

branching for making our changes both

play42:54

small and large is when we look at

play42:57

something like these tags or chips here

play43:00

we can make these updates and ensure

play43:02

that designers who are coming into the

play43:04

library and using it as a sticker sheet

play43:06

they're not seeing work in progress and

play43:08

potentially using components that aren't

play43:10

ready to be used

play43:12

yet and the best practice that we see

play43:15

teams take when they are using branching

play43:17

is sharing that Dev mode link from the

play43:20

branch with their developers and then

play43:23

working together to coordinate when

play43:25

changes are merged to when the code code

play43:27

is ready and then they publish that in

play43:29

harmony with one

play43:31

another but of course let's acknowledge

play43:33

that not everything we explore intends

play43:35

to see the light of day maybe not now or

play43:38

maybe not ever well if we're working in

play43:40

branches it's actually really handy

play43:42

because we can just archive our branch

play43:45

and preserve all of our work at that

play43:47

point in time it becomes locked from

play43:49

future updates but we can always revisit

play43:52

it and restore it to pick our work right

play43:55

back up in the future so here we can see

play43:58

we were looking at a contribution for a

play44:01

danger input type or notification type

play44:05

and all we had to do was hit restore and

play44:07

we could pick the work right back up

play44:09

addressing the comments that were left

play44:11

on the

play44:12

component and as Anna mentioned in the

play44:15

beginning really with all updates we

play44:18

need to remember that it's important to

play44:19

have a plan test and of course

play44:22

communicate what those changes are so we

play44:25

can hopefully prevent unnecessary stress

play44:27

for the consumers of our systems

play44:30

especially if this is a breaking change

play44:32

because we know that as your systems are

play44:34

going to mature you're going to have to

play44:35

introduce breaking changes at some point

play44:37

in time it does become inevitable and

play44:40

this is where our planning testing and

play44:42

communication becomes

play44:45

essential so often times what we see

play44:48

teams do is start out with a

play44:50

straightforward component and use that

play44:52

to plan and test how they're going to

play44:55

incorporate updates taking note of

play44:58

things that are added or removed what

play44:59

gets renamed what might impact other

play45:02

components that utilize that one then

play45:06

they'll move on to a bit more advanced

play45:08

component and then to the biggest most

play45:10

complex one they have maybe they'll also

play45:13

bring in example uh design files and

play45:16

Test new components within

play45:18

them the big thing to ask at the end is

play45:20

does it still work great publish it

play45:22

you're good to go but if there's a

play45:24

chance it breaks or people need to make

play45:26

updates and Chang

play45:28

this is where we need to think about how

play45:30

are they going to know what they need to

play45:34

do and if you tuned in to framework by

play45:37

figma a couple of months ago Talia and

play45:40

saz from the Verizon design system team

play45:43

gave an insight into their deprecation

play45:45

process and their figma technique that

play45:48

they call deprecation mode and we've

play45:50

already seen some teams start to mimic

play45:53

this out there in the community as well

play45:55

as models outlined in article posted on

play45:58

medium by Steve Dennis A couple of years

play46:01

ago and both of these really outline

play46:03

great approaches and we've seen teams

play46:05

start doing these where they leverage

play46:08

component naming and introduce visual

play46:10

visual references such as components or

play46:14

shaded areas that need to be updated

play46:16

making it easy to identify what needs to

play46:19

be updated and switch to something new

play46:22

so definitely check out Verizon's talk

play46:24

on the figma YouTube channel and look up

play46:26

Steve's article on

play46:28

medium so remember everyone our Design

play46:31

Systems they're not static they're going

play46:33

to require ongoing attention

play46:35

collaboration and adaptation and they're

play46:38

going to need to incorporate those

play46:39

design updates and those code updates as

play46:42

they go and PJ onori really summed this

play46:45

up well saying it's inevitable that

play46:48

almost everything you make in the system

play46:51

no matter how good will run its course

play46:54

now he acknowledges that interface

play46:56

paradigms change new platforms show up

play46:59

and the product that you built the

play47:01

system for

play47:02

evolves so as you embark on those

play47:05

inevitable changes remember the

play47:07

principles that Anna shared at the

play47:09

beginning approach complexity with

play47:11

caution always be grounded in your

play47:13

priorities and seek validation before

play47:16

execution these are principles we've

play47:18

outlined from talking with so many of

play47:20

you in the community who have found

play47:22

success with building and growing Your

play47:24

Design Systems so thank you for sharing

play47:27

Ing and allowing us to connect and learn

play47:29

from you so with that let's recap what

play47:32

we've covered

play47:36

today all right we're going to keep the

play47:38

screen up a little bit so you guys can

play47:39

remember all these different insights we

play47:41

had but just as a gist Design Systems

play47:44

should be built in collaboration between

play47:46

your design and Engineering teams and

play47:48

between your Design Systems team and

play47:50

your consumers and you should always

play47:52

continue to re-evaluate and iterate and

play47:55

remember that nothing is forever

play47:58

and as we wrap up we just want to take a

play48:00

minute to thank everyone out there in

play48:02

the design system Community who is out

play48:04

there sharing resources publishing

play48:06

article publishing plugins publishing

play48:08

files not that every article plugin file

play48:10

whatever resources you put out there we

play48:12

see it we appreciate it we share it

play48:14

around us with other teams so thank you

play48:17

so much for doing that and in the spirit

play48:18

of sharing we've left a little link that

play48:20

should bring you to a design file where

play48:22

we've actually input all the resources

play48:24

that we touched on throughout the

play48:25

presentation and with this thank you for

play48:27

listening thank you thank you

play48:31

[Music]

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Design SystemsFigma AdvocatesUser-CentricDesign PrinciplesComplexity ManagementCollaborationDesign ToolsDevelopersFeedback LoopCommunity Building