About Design Systems - Invision
About Design Systems - Invision
About Design Systems - Invision
Version 2
Version 1
DSM
THE 2018
Field Guide
USERNAME
PASSWORD
Written by:
Ben Goldman
Contributors:
Aarron Walter
Marco Suarez
Ehud Halberstam
Chris Avore
Emily Campbell
Drew Bridewell
Andrew Godfrey
2
PA R T I
3
PA R T I I
28 Getting buy-in
How do you convince other stakeholders to buy-in to design systems?
Who needs to be part of the conversation? What are the challenges
of each stakeholder?
4
PA R T I I I
54 Version control
Who should you invite? When should you release new versions?
How do you manage updates? Version control best practices
(major v. minor releases).
5
Conclusion
6
PA R T I V
Resources
70 Introduction
73 Workshops
74 DesignBetter.co
74 Design Disruptors
74 The Loop
75 Webinars
75 Design Specialists
7
PA R T I
But as with any system, building a design system is not a quick or easy
task. It requires rethinking how we’re making digital products today,
and laying the groundwork to set us up for success in the future.
8
The content is split into three parts:
The goal is that by the end of this guide, your team will be well
positioned to start leveraging the full value of design systems in your
product design process. It’s not an easy task, but it’s a critical step
towards making digital products a long-term competitive advantage
for your business.
9
New trends and challenges
Hockey sticks have become the new norm in today’s post-digital world.
No matter what trend you look at–from the amount of time spent online,
to the number of internet-connected devices on the market–all graphs
trace the same hockey stick slopes. In many ways, these slopes have
come to symbolize the digital age, and illustrate just how thoroughly
society has been changed due to these disruptive technologies.
20M
Number of Devices in Use Globally (in thousands)
18M
16M
14M
12M
10M
8M
6M
4M
2M
2007
2012
2014E
2015E
2016E
2017E
2018E
2011
2013
2004
2005
2009
2010
2006
2008
10
At the same time, this radical change has saddled product teams with an
ever-growing list of challenges that add whole new layers of complexity
to their jobs.
When we look at these challenges, and the trends that have created
them, one point has become abundantly clear: our current processes
for designing digital products are not sustainable. They’re not sustainable
now, and they certainly won’t be sustainable in the future, because
these trends will only accelerate.
11
Brad Frost perhaps expressed this point most powerfully in his
Future-Friendly Manifesto when he wrote:
B R A D F R O ST, F U T U R E - F R I E N D LY M A N I F E STO
The good news is that innovation has a way of adapting to even the
most extreme challenges. And that’s exactly where design systems
come in.
12
Though each of these concepts refer to something different, they all
converge at one functional point in design systems–enabling teams to
build better products faster by making design reusable. This is the heart
and primary value of design systems. A design system is a collection
of reusable components, guided by clear standards, that can be
assembled together to build any number of applications.
And while this sounds simple on paper, the difference this makes in
how we build digital experiences is nothing less than transformative.
13
Benefits of design systems
14
Innovation: With a design system, a designer doesn’t need
to spend time thinking about how a button looks, or what
styling to provide a form field. Those decisions have already
been made by a dedicated team. This eliminates the need for
redundant and repetitive work, thus freeing up a designer’s
time to solve bigger business problems, such as creating
innovative user flows. And the same benefit also extends
to developers.
15
“
Agile, cross-functional teams benefit immensely
from a design system because it allows the
team to collaborate using a common language.
Experimentation and prototyping goes faster,
developers get early insights into potential
technical constraints, and the team can focus
time on bigger problems without sacrificing quality
or efficiency. The biggest benefit I’ve experienced
from adopting a design system is when our
team’s conversation moved from discussions
about visual solutions to discussions about the
problem. In that regard, design systems bring
everyone closer to the user.
E M I LY C A M P B E L L , D E S I G N S P E C I A L I ST AT I N V I S I O N
16
“ One of the biggest values [of] a design system is that
it increases productivity by providing fundamentals that
reduce duplication of effort.
D AV I D C R O N I N , G E
IBM
AIRBNB
17
PA R T I I
Now that you understand what design systems are, and how they can
help your team, it’s time to get started building your own. The following
chapters will guide your team through the basic steps necessary for
creating a performant design system.
18
“ Where Technical Debt affects the integrity of the codebase,
Design Debt affects the integrity of the user experience.
This is what happens when a bunch of incremental changes
collect over time and yield a disjointed, inconsistent, and
patched-together experience.
AU ST I N K N I G H T, D E S I G N D E BT
19
In addition to chronicling design debt, an audit provides a valuable way
to take inventory of what components, patterns, and styles are being
used throughout the entire platform. This can help you prioritize which
components need to be worked on first based on the amount of usage.
20
“
In addition to a formal design audit, consider
running surveys or interviews of potential
end-users of your design system, like developers
and other design teams. This can help you learn
about existing code patterns, give you insight into
how to structure your eventual documentation,
and find champions and partners that can help
you with adoption of your system.
E M I LY C A M P B E L L , D E S I G N S P E C I A L I ST AT I N V I S I O N
21
Before you audit, know what to audit
Before you begin the audit, identify which products should even be
included in the audit in the first place. In many larger organizations, you
may have dozens--sometimes even hundreds--of products, and not
every piece of software will benefit equally from the design system.
22
“
For companies that don’t get design systems, a UI
inventory is the way you communicate why this is
important. Making the pitch for a design system
“stop the presses” style – that’s a tough sell. But
when people start to see the design debt that’s
built up, or the technical debt required to support
that, that’s when you organically begin to change
minds. If you have 50 different button styles, think
about the code required to support that. Innovation
gets slowed down, and everyone gets lost in low-
level details instead of thinking about, “What’s the
problem we’re trying to solve for our customers?”
A A R R O N WA LT E R , V P O F D E S I G N E D U C AT I O N AT I N V I S I O N
23
Performing the audit
24
Visual Assets Colors
25
Visual Assets Colors
This is our
standard color
26
When sharing the results of the design audit with colleagues, it’s
important to communicate how the inventory translates to lost time
and resources. What appears to be a simple button on the surface
can actually conceal many hours of work implementing that button.
Rough illustration showing the “iceberg” of technical debt underlying even the
simplest of buttons
27
Getting buy-in
28
The size of your backlog: It’s one thing to look at the size of
your digital products today, another to look at where it’s going
to be in the future. Backlogs and roadmaps provide a glimpse
into all the challenges ahead of your team–challenges that
can be greatly minimized with a design system.
29
Achieving buy-in from developers
30
Of all the allies that you will need to build a successful design
system, the most important may be the front end developer. According
to Aarron Walter, InVision’s VP of education and the former head
of design at Mailchimp:
“
“If there’s a key step, it’s to find a front-end
developer (FED) ally–someone who knows how to
write the code components, and who understands
the importance of the design system. When
forming your core design systems team, always
ensure that there’s at least one FED.”
A A R O N WA LT E R , V P O F E D U C AT I O N AT I N V I S I O N
31
Discovery research
While some smaller organizations may have their engineers onsite and
you can discuss the goals of the design system over coffee, there
are many teams and organizations that don’t have that luxury. In those
instances, try using an online survey tool to ask questions across the
entire development organization. Use the survey to question your
assumptions about the technologies used, where those teams have the
biggest pain points, and how familiar they are with design systems, either
in prior positions or through their own exploration.
32
Surveying your developers to uncover pain
33
System goals
34
Such a presentation, at minimum, should address the following topics
and themes. Do your best to get each theme on only one slide to craft a
concise, but thorough, plan.
C H R I S AVO R E , D E S I G N S P E C I A L I ST AT I N V I S I O N
35
Team models for building a design system
However you did it, you’ve made the case for a design system,
and received the necessary buy-in. It’s go time.
But now the question shifts from why you should build a design
system, to how.
In this chapter we’ll discuss the four main models for building
a design system.
36
20% Model: Based off of Google’s “20% time” policy,
this model is when you assign a group of designers and
developers to make progress on a design system as a
part-time “project.” In other words, do it in your own time.
This is perhaps the easiest way to get started with a design
system without disrupting the status quo, but rarely are design
systems successful when built in this way. A design system
requires intensive heads-down time, close alignment between
members, and a commitment to advocating and raising
awareness of it. This model makes it hard to achieve
any of the above.
37
Contracting: Some companies have found it worthwhile to
offload all the hard work of design systems to an outside
firm or agency. This can speed up the process of creating a
design system, but going this route can create a problem of
ownership once the design system is handed over. And similar
to the problem mentioned in model #1, this route can create
obstacles if the main design and development teams don’t
possess a sense of shared ownership for the end result.
38
Sample design systems team makeup:
Front-End Front-End
Developer 1 Developer 2
39
Guilds: a post-launch team model
Design systems are products, not projects. They require ongoing support,
maintenance, and improvements. That’s why a “guild” can be extremely
effective models for ensuring your design system receives the love and
attention it needs to succeed after it’s built. At its most basic, a guild is a
collection of designers and developers who meet regularly (e.g. once a
month, or once per quarter) to discuss ways to improve and evolve the
design system. Ideally a guild would be comprised from multiple teams
working across different product lines, so that every area of the product
team can provide input.
40
Creating your UI library
Building out your UI library is both the most important part of building a
design system, as well as the easiest.
On the other hand, it’s the easiest part of building a design system
because this is what product teams do every day–design and code.
As such, it’s the most familiar aspect of building a design system,
and is the one area where both designers and developers are
already predispositioned to success.
That said, there are a few ideas and best practices that will ensure
your team stays on the right track during this stage.
A A R R O N WA LT E R , V P O F E D U C AT I O N AT I N V I S I O N
41
“
Like any product, your design system won’t be
perfect on the first pass. Save time during design
reviews and team retrospectives to discuss any
limitations with the system and talk about ways
to push it forward. Don’t just build out your initial
system and then consider it ‘done’; let it evolve
with your product! Refactor it, expand it, and even
remove definition where it makes sense. The more
attention you give your design system, the better it
will reflect the existing state of your product, and
the stronger tool it will be for your product teams.
E M I LY C A M P B E L L , D E S I G N S P E C I A L I ST AT I N V I S I O N
42
Think function, not style: When creating visual assets, focus
on how they will be used, rather than the style. For example,
instead of creating Blue Button and Light Blue Button, think
Active Button and Inactive Button.
Once you’ve managed to build all this out, and are using the
design system in the field, then you can focus on defining what
the principles of your design system are for the next iteration.
43
Pilot projects: One way to make your design system
immediately useful is to build it in the context of a pilot project.
A pilot project enables you to put your design system to good
use, without having to worry about the stakes of redesigning
your whole product line. Once you’ve managed to successfully
use your design system on a few discrete areas of the product,
then you can think about a larger-scale redesign using the
contents of your new UI library.
44
Using InVision to stress-test your design system
What follows is a quick rundown of a 4-part test that you can use
to see how your design system works in the field.
45
PA R T I I I
By now you probably have a master Sketch file which includes all
the visual assets of your UI library. A natural question that arises is,
”If I already have a UI library in Sketch, why do I need DSM?”
But the fact is that a file is not a system. A proper system needs
to address questions around version control, user permissions,
change management, and other complexities of a true system.
46
The same holds true for a design system. Trying to use a Sketch
file as a design system will create immediate problems that quickly
degrade its reliability. How do you ensure designers are using the
latest version? What happens if I try to save a change to a file while
someone else has it open? How do we control who has edit
access? When these questions aren’t answered, a design system
inevitably will fail.
DSM is the platform layer that sits on top of your design library,
enabling you to manage, share, and utilize it to the fullest extent,
across your entire organization. Its features include versioning,
library-level permissions, advanced security, an auto-generated
microsite, and a developer API.
DSM enables you to take the hard work that went into building
your visual language as a design library, and transform that work
into a true system.
47
How to access DSM
For InVision Enterprise accounts: sign into your account and then use
the following URL, replacing your-domain with your InVision enterprise
subdomain: https://your-domain.invisionapp.com/dsm.
If you’re using DSM during its early access phase, please follow these
instructions instead: https://bit.ly/2zazEky
48
Creating and using your design library
1. Importing to DSM: Inside your Sketch file, select whatever you want
to import (e.g. component, icon, color, font) then hit the + icon inside
your DSM Sketch plugin.
Voila!
49
Importing components: To important components into DSM, simply
select the assets you want to add. You can select individual assets,
or click and drag to select multiple assets at once.
Once you’ve selected the assets you’d like to add, switch to your DSM
plugin, select “Components” on the left menu, and then click the + icon
inside your DSM plugin window (bottom right corner).
Repeat this step for all the different components in your design library.
Note: If you can’t see the + icon inside your DSM plugin, make sure
you are working from the Shared Draft. To change to Shared Draft,
click on the name of your design library in the top left corner of your
DSM window inside Sketch. Hover over your library name, then navigate
to “Switch Version.”
50
Component Categories: Good practice is to create a subcategory for all
the relevant component types, such as “Buttons,” “Forms,” “Badges,”
“Tables,” etc.
Similarly, when you pull a component into a new document, DSM brings
its entire dependency tree with it. This means you can start choosing
among possible overrides as you design with the component, and don’t
have to worry about pulling each dependency independently for the
component to render.
51
Importing colors and layer styles: To add a color to your design library,
you’ll first need to make sure to select the layer containing the color
within Sketch, otherwise you’ll be prompted to add a global color.
The target group must also be selected before clicking the + button on
the bottom right of your DSM plugin. Color names, as all other element
types, can have the same name.
In order to update an element, make the changes, then find the element
in the DSM library and press the + button in the bottom right corner.
You will then be presented with the option of updating the element or
creating a new one. Updating the element replaces the existing
element definition.
Once updated, you can quickly update all instances of your symbols
across your artboards by selecting the download icon from the DSM
plugin window. For non-symbol elements, you’ll be able to drag and
drop them from your DSM library to your file to make changes.
52
An example process of where DSM fits into the
designer’s workflow by design specialist Drew
Bridewell:
3. Build it. Ship it. Add it: Engineering delivered on the sprint and the
component has made it into the code base. During implementation,
the lead designer who was working on the design adds the
component to the shared draft inside of DSM.
53
Version control
One of the most common reasons design systems fail is the lack
of proper version control. The good news for you is that DSM comes
equipped with one of the most powerful versioning features of any
design tool ever built.
2. Click the drop down menu, then hover over your library name.
7. The See What’s New link opens a browser showing the changes
as updated in the version description.
When you release a new version, team members currently working with
the design library will see an alert notifying them that the library has been
updated to a new version. The updated assets and styles are available
to use immediately. No manual opt-in or download is required.
54
Switching between versions: To switch between versions.
2. Click the drop down menu, then hover over your library name.
Viewing version history: To see a version history along with their details.
2. Click the drop down menu, then hover over your library name.
The web view will open and you can use the ••• menus to view any
version or compare a version to the latest version.
You’ll see a list of the assets that were added, removed, and changed.
To see a side-by-side comparison of a changed item, click More Details
on an item that changed. Click Highlight Changes to see highlights of
the differences between the two images.
55
Shared drafts vs. versions: When using a design library in DSM, you
have the option to switch to a release version of your design library,
or work from a Shared Draft.
The Shared Draft is the only way to make changes inside your design
library (e.g. adding or removing components). Think of it as the staging
area for a design system-in-progress. This allows you to iterate and make
changes, without having to worry about breaking things, since you can
always revert back to an official release version of the design system.
This concept is almost identical to the “nightly build” idea that’s so
commonplace in software development.
Version naming conventions: DSM lets you name your versions any
way you like, but it might be a good idea to adhere to some best
practices around naming releases.
1.4.3
Major updates: Minor updates: Fixes:
This includes large- Small changes to your Simple corrections
scale changes to your design system, such as of mistakes, errors,
design system. updating a few buttons bugs, etc.
or colors.
56
Writing release notes: Release notes are crucial in design systems.
They help your team understand what is different from one version
of the library to the next.
Pro tip: Keep the language of the release notes consistent and
informative. Remember that you’re creating a design language
and even the release notes should support this goal.
• Updated colors
• Button improvements
This doesn’t give enough detail about the release and might cause
your team to wonder what has specifically changed and why.
To create your release notes, keep a list of everything that you’ll add
to your release. Then break that list into things that have been
New and things that are Updated.
57
Pro tip: Prioritize your list. The most requested or most
important addition to the release should be at the top.
New:
Updated:
58
Pro tip: Use markdown to call out important statements
in your release notes.
This gives a good idea of what is going into the release and what your
team should watch out for. Importantly, it gives a good understanding
of why something has been included in the release.
59
Brief guide to design tokens
SALESFORCE
Design tokens are one of the most exciting developments for the
future of product design. They hold the potential to bridge the gap
between design and development, so that a change to a design
element could be pulled by the developer to change the code
associated with that element.
60
What are design tokens?
Perhaps the most concise definition of a design token comes from the
website bits.24ways.org, which writes:
61
A practical example of design tokens
Imagine your brand uses a yellow with the hex value FFFF00. Because
this is your standard brand-yellow, your development team then inserts
this hex value into their code in dozens or hundreds of places across
your product line. Now, if you ever wanted to change the hex value for
that yellow, your developers would have to track down every place
that value appears and update it manually.
But by using design tokens with DSM, you can associate that hex
value with a name, such as “Warning Yellow.” The developer can then
reference “Warning Yellow” in their code, rather than the hex value
itself. Then, if you ever were to change the hex value of “Warning
Yellow” inside DSM, the developer can choose to pull that change
and have it automatically update the look of “Warning Yellow”
everywhere it appears in their code.
62
“
A design token is an abstraction so you don’t
have to refer to specifics. It gives you the flexibility
to change values and things down the road, and
not have to go re-communicate to everyone,
‘Hey, don’t use that red anymore.’ You just refer
to some high level idea and things can change
behind the scenes.
A A R R O N WA LT E R , V P O F E D U C AT I O N AT I N V I S I O N
63
The Web Monument Site
But it also helps demonstrate the value of your design systems efforts
to executives in a way that a Sketch file or a Dropbox folder never can.
64
1 2
3
1. Download plugin
3. Manage permissions
4. Change version
5. Navigation
65
Manage versions: The web portal enables you to manage versions,
including comparing different versions to see what’s changed,
as well as roll back your design system to a previous version.
66
Benchmarking design systems by design specialist
Drew Bridewell:
67
Conclusion
68
According to Suarez, this trust is especially important considering the
transformative potential of design systems—not just for our products,
but for the role of designers as well. Design systems hint at a future
where designers spend less time micromanaging the visual design
of things like buttons and form fields, and instead spend more time
thinking strategically about digital products holistically in the context
of a “user experience.”
69
PA R T I V
Appendix
InVision is more than just a platform. We’re your partner in elevating your
organization’s people and practices too, which is why we invest heavily
in education for our users and the design community at large.
70
For more hands-on development, InVision’s customer success team
offers experienced design specialists to help train your team on
cutting-edge best practices, and ensure you’re leveraging the InVision
platform fully. And dedicated customer success managers provide
ongoing guidance on a regular basis.
But those are just a few of the ways InVision can help your team.
With a broad catalogue of events, film screenings, webinars, trainings,
and onsites, InVision offers educational programs for any team,
no matter where they are in their design maturity.
Some of the teams we’ve helped educate over the years include
Google, Netflix, Capital One, Intuit, Nike and others. Now let’s work
together to find out which programs are right for your team.
71
Design Leadership Forum
This forum is for the best in design leadership to learn from each other
and share solutions to common problems. It’s to advance the practice
of design leadership. It’s to elevate design in business. Members of the
Design Leadership Forum convene at events like dinners and retreats in
major cities around the world. These gatherings are for design leaders
to have honest conversations about their biggest challenges and get
the perspectives of peers who have been through similar experiences.
Find out more at invisionapp.com/design-leadership-forum.
F R A N K YO O , H E A D O F P R O D U CT D E S I G N AT LY F T
72
Workshops
JAS O N H A R V E Y, C R AT E & B A R R E L
73
DesignBetter.co
Introducing the best practices, stories, and insights from the world’s
top design leaders. Loaded with in-depth books, podcasts, and more,
DesignBetter.Co is your essential guide to building remarkable products
and teams. Some of the books include The Design Systems Handbook,
Design Thinking Handbook, and The Principles of Product Design.
To view all this and more visit http://designbetter.co.
Design Disruptors
The Loop
74
Webinars
Design Specialists
These design specialists are also available to help coach and guide
you on your journey towards achieving a high-value design system.
To schedule a design specialist consultation, please contact your
InVision representative.
75
Field Notes
Contents
design systems 18
76
Conclusion 62
Appendix 64
Field Notes 70
77
Settings
Profile
Location
Notifcations
Social
LOG OUT
SYNCING
SYNCED
.button {
color: #ffffff;
border-radius: 20px;
background: #76baf8, #ac6bfe
font-family: maison neue;
font-size: 12px;
font-weight: medium;
letter spacing: 1px;
text-align: center;
height: 50px;
width: 200px;