Lean Safe approach to building design systems Jan Toman, Kiwi.com Webcamp Zagreb, October 2019

Making travel better at Jan Toman Design System Lead at Kiwi.com Twitter: @HonzaTmn

A design system isโ€ฆ

A design system is a collection of reusable UI components,

A design system is a collection of reusable UI components, guided by clear standards,

A design system is a collection of reusable UI components, guided by clear standards, that can be assembled together to build any number of applications. Source: Invision Blog

Design systems are ๐Ÿš€ popular

@HonzaTmn

https://adele.uxpin.com @HonzaTmn

https://github.com/alexpate/awesome-design-systems @HonzaTmn

@HonzaTmn

@HonzaTmn

orbit.kiwi Launched last month @HonzaTmn

Color guidelines in Invision 2 years ago @HonzaTmn

Whatโ€™s the main difference? 2 years of small iterations @HonzaTmn

Change wonโ€™t happen overnight๐Ÿฆ‹ ๐Ÿ›

What do we want to change? ๐Ÿงž

๐ŸŽจ Visual design ๐Ÿ’ฌ Communication ๐Ÿš€ Technology Tools & processes ๐Ÿงฐ @HonzaTmn

๐ŸŽจ Visual design How designers design. ๐Ÿ’ฌ Communication How colleagues talk. ๐Ÿš€ Technology What tech stack devs use. Tools & processes How everyone works. ๐Ÿงฐ @HonzaTmn

How designers design. Which tech stack devs use. How colleagues talk. How everyone works. Design systems๐Ÿ™‡ are about people.

) You? When you want to change so many stuff for so many people, itโ€™s important to balance it very carefully

Balancing a change with a lean approach Case study with examples from Orbit, Kiwi.comโ€™s design system )๐Ÿคน

What is a lean approach? Itโ€™s maximizing value = speed of delivery, effectivity, quality while minimizing waste = building the right things

minimizing waste means doing informed decisions based on data #research โœ‚ User interface audits โ€žPeak into other design systemsโ€œ ๐Ÿ‘€ ๐Ÿ‘€ ๐Ÿ‘€ ๐Ÿ“ โ˜• โ˜• Talking with people !

t? a wh

โ˜• โ˜• Talking with people !

t? a wh

โ˜• โ˜• Talking with people ๐Ÿคฏ t What are the things that take you the most time in your daily job? โ€ข What are the most boring stuff you have to do? โ€ข How do the current design handoffs work? โ€ข How do you handle specifications for designers and developers? โ€ข What should our design system have? Why these things? โ€ข How could it go wrong? Daily routines ๐Ÿคœ๐Ÿค› a h #w โ€ข Designers & developers assets handover ๐Ÿงž Expectations from design system

โ˜• โ˜• Talking with people t a h #w http://bit.ly/ds-research

Top insights from our research ๐Ÿ“

๐Ÿ˜จ Fear for creativity A looot of tools Fear that the design system will limit them and will lead to worse UX Our design files were everywhere and nowhere. ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘ Support from devs They just hate coding something repeatedly. ๐Ÿ‘ ๐Ÿงฐ Existing styleguide ๐ŸŽจ No one used it, though. โœ Hmmmโ€ฆ @HonzaTmn

Existing styleguide ๐ŸŽจ No one used it, though. โœ Yes, but these component arenโ€™t flexible enough for what I need. Oh, we have some buttons already? ๐Ÿคท ๐Ÿ•ต Did you know that we already have UI library? 8 : I didnโ€™t know we have UI kit. Yes, but itโ€™s never up to date. I donโ€™t know where to find our icons. Itโ€™s faster to find it in Material. @HonzaTmn

Listen carefully. Be curious. Even small details matter. ๐Ÿ‘‚

Listen carefully. Be curious. Even small details matter. ๐Ÿ‘‚ Thatโ€™s how youโ€™ll find your problems or get ideas about what can be improved.

Design is not implemented in Synchronize the same waycomponents as delivered between design tools and code Itโ€™s all changing too fast Prepare our products for rapid change of design โ€žWe should have guidelines for writingconsistency microcopy.โ€ Improve People donโ€™t contribute toMake other easy partsto ofcontribute the product to other projects โ€žOur design shouldnโ€™t look outdated.โ€œ Improve visual design Mobile and desktop behavior Synchronize and behavior is design different across mobile and desktop People ask the same things Prepare documentation over and over again for designers and developers โ€žOur product should be accessible.โ€œ Improve accessibility Onboarding of new devs and designers takes too long Make onboarding easier โ€žWe should match our โ€žMatch our marketing campaigns marketing with the product.โ€œ with product visual There is a lot of misunderstanding Improvedesigners communication between and devs between designers and devs Itโ€™s complicated to create new whitelabels Prepare guidelines of our microcopy for our whitelabels & partners

Design is not implemented in the same way as delivered Itโ€™s all changing too fast Synchronize components between design tools and code Prepare our products for rapid change of design People donโ€™t contribute to other parts of the product โ€žOur design shouldnโ€™t look outdated.โ€œ Make easy to contribute to other projects Improve visual design People ask the same things over and over again โ€žOur product should be accessible.โ€œ Prepare documentation for designers and developers Improve accessibility โ€žWe should match our marketing with the product.โ€œ There is a lot of misunderstanding between designers and devs Match our marketing campaigns with product visual Improve communication between designers and devs โ€žWe should have guidelines for writing microcopy.โ€ Improve consistency of our microcopy Mobile and desktop behavior is different Synchronize design and behavior across mobile and desktop Onboarding of new devs and designers takes too long Make onboarding easier Itโ€™s complicated to create new whitelabels Prepare guidelines for our whitelabels & partners

This is your high-level roadmap ๐Ÿ‘‰ Where to start, though? Synchronize components between design tools and code Prepare our products for rapid change of design Improve consistency of our microcopy Make easy to contribute to other projects Improve visual design Synchronize design and behavior across mobile and desktop Prepare documentation for designers and developers Improve accessibility Make onboarding easier Match our marketing campaigns with product visual Improve communication between designers and devs Prepare guidelines for our whitelabels & partners

Value/Effort Matrix โ€ฆgenerated for users โ€ฆ required to deliver

Improve visual design Make onboarding easier Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects Improve accessibility Improve consistency of our microcopy Improve communication between designers and devs Prepare our products for rapid change of design Prepare documentation for designers and developers Synchronize components between design tools and code Synchronize design and behavior across mobile and Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Prepare our products for rapid change of design Improve visual design Make onboarding easier Prepare documentation for designers and developers Synchronize design and behavior across mobile and desktop Improve accessibility Make easy to contribute to other projects Improve consistency of our microcopy Prepare guidelines for our whitelabels & partners Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Prepare our products for rapid change Improve visual design Make onboarding easier Prepare documentation for designers and developers Synchronize design and behavior across mobile and desktop Improve accessibility Make easy to contribute to other projects Improve consistency of our microcopy Prepare guidelines for our whitelabels & partners Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Prepare our products for rapid change Improve visual design Make onboarding easier Prepare documentation for designers and developers Synchronize design and behavior across mobile and desktop Improve accessibility Make easy to contribute to other projects Improve consistency of our microcopy Prepare guidelines for our whitelabels & partners Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Prepare our products for rapid change Improve visual design Make onboarding easier Prepare documentation for designers and developers Synchronize design and behavior across mobile and desktop Improve accessibility Make easy to contribute to other projects Improve consistency of our microcopy Prepare guidelines for our whitelabels & partners Match our marketing campaigns with product visual

Improve visual design

Improve visual design Photo credit: https://twitter.com/SlavenSmojver/status/1182582695634853888

Improve visual design ๐Ÿ’ธ โŒ›๐Ÿ”ฎ

Improve visual design

Improve visual design Important decision โ€žLetโ€™s just polish what we already have.โ€œ

Improve visual design โ‰ ๐Ÿคฏโ“ Define clear styleguide (colors, typography) Define basic icon set โ“ Create common components Which colors do we need? How many color accents? โ€ฆ How many icons do we need? Which icon style is used in our product? โ€ฆ Which components are needed the most? Do designers needs different variations? โ€ฆ Tip: Never guess.

Improve visual design Audit colors and typography Define clear styleguide (colors, typography) Audit icons Define basic icon set Audit components & prioritize them by their value Create common components

Improve visual design B C Phase 1: Research Phase 2: Design Collecting useful data. Doing informed decisions. Audit colors and typography Define clear styleguide (colors, typography) Audit icons Define basic icon set Audit components & prioritize them by their value Create common components

Existing color palettes Existing typography styles B Phase 1: Research Collecting useful data. Colors defined in CSS (from production website) Audit colors and typography Audit icons Audit components & prioritize them by their value Styles from main flow

Icons from main flow B Phase 1: Research Collecting useful data. Audit colors and typography Audit icons Audit components & prioritize them by their value Material icons defined in some old Sketch file

Existing button set in Sketch Buttons from production website B Phase 1: Research Collecting useful data. Audit colors and typography Audit icons Audit components & prioritize them by their value Buttons from mobile applications

Improve visual design B C Phase 1: Research Phase 2: Design Collecting useful data. Doing informed decisions. Audit colors and typography Audit icons Audit components & prioritize them by their value ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ Define clear styleguide (colors, typography) Define basic icon set Create common components

Existing C Phase 2: Design Doing informed decisions. Define clear styleguide (colors, typography) Define basic icon set Create common components Existing Colors defined in

Icons from main flow C Phase 2: Design Doing informed decisions. Define clear styleguide (colors, typography) Define basic icon set Create common components

Buttons from main flow C Phase 2: Design Doing informed decisions. Define clear styleguide (colors, typography) Buttons from mobile applications Define basic icon set Create common components

Improve visual design B Phase 1: Research Collecting useful data. Audit colors and typography Audit icons Audit components & prioritize them by their value C Phase 2: Design Doing informed decisions. ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ Define clear styleguide (colors, typography) Define basic icon set Create common components ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ Done?

Improve visual design B Phase 1: Research Collecting useful data. Audit colors and typography Audit icons Audit components & prioritize them by their value C Phase 2: Design Doing informed decisions. ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ Define clear styleguide (colors, typography) Define basic icon set Create common components ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ E Phase 3: Validate by expert review

E Phase 3: Validate by expert review โ€žYou decide if itโ€™s enough.โ€œ If not? Iterate, improve, let them check again.

Improve visual design B Phase 1: Research Collecting useful data. Audit colors and typography Audit icons Audit components & prioritize them by their value C Phase 2: Design Doing informed decisions. ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ Define clear styleguide (colors, typography) Define basic icon set Create common components ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ E Phase 3: Validate by expert review ๐ŸŽ‰

๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐ŸŽ‰ ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘ So now itโ€™s done! Is it, though?

I didnโ€™t know we have UI kit. Remember this? Hint: it โ€˜s from our research! 8 Oh, we have some buttons already? ๐Ÿคท

Continuous effort To raise awareness. Over-communication is a key to success. ๐Ÿ— E

E Continuous effort To raise awareness. @HonzaTmn

E Continuous effort To raise awareness. @HonzaTmn

E Continuous effort To raise awareness. @HonzaTmn

E Continuous effort To raise awareness. @HonzaTmn

A lot of small changes. As much as you can. @HonzaTmn

Giving people control. Always. @HonzaTmn

Silent weekly updates To management, PMs, devsโ€ฆ @HonzaTmn

๐Ÿคœ๐Ÿค› Itโ€™s all about gaining trust.

Check our roadmap ๐ŸŽฏ

Synchronize components between design tools and code Improve communication between designers and devs Improve visual design Prepare our products for rapid change Prepare documentation for designers and developers Make onboarding easier Synchronize design and behavior across mobile and desktop Improve accessibility Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects Improve consistency of our microcopy Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Improve visual design Prepare our products for rapid change Prepare documentation for designers and developers Make onboarding easier Synchronize design and behavior across mobile and desktop Improve accessibility Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects Improve consistency of our microcopy Match our marketing campaigns with product visual

Synchronize components between design tools and code Improve communication between designers and devs Improve visual design Prepare our products for rapid change Prepare documentation for designers and developers Make onboarding easier Synchronize design and behavior across mobile and desktop Improve accessibility Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects ๐Ÿ‘ Improve consistency of our microcopy ๐Ÿ‘ Support from devs Match our marketing campaigns with product visual They just hate coding something repeatedly. ๐Ÿ‘ ๐Ÿ‘

Synchronize components between design tools and code Improve communication between designers and devs Improve visual design Prepare our products for rapid change Prepare documentation for designers and developers Make onboarding easier Synchronize design and behavior across mobile and desktop Improve accessibility Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects ๐Ÿ‘ Improve consistency of our microcopy ๐Ÿ‘ Support from devs Match our marketing campaigns with product visual They just hate coding something repeatedly. ๐Ÿ‘ ๐Ÿ‘

Synchronize components between design tools and code Improve communication between designers and devs Improve visual design Prepare our products for rapid change Prepare documentation for designers and developers Make onboarding easier Synchronize design and behavior across mobile and desktop Improve accessibility Prepare guidelines for our whitelabels & partners Make easy to contribute to other projects Improve consistency of our microcopy Match our marketing campaigns with product visual

โ€œNothing is invented and perfected at the same time.โ€œ - John Ray

Benefits of this approach

๐Ÿฅณ Delivering small parts that matter ๐Ÿงž

๐Ÿ‘ Delivering small parts that matter Continuous proof of value ๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘

Delivering small parts that matter Continuous proof of value Getting frequent feedback ๐Ÿ™‹ L

๐Ÿš€ Delivering small parts that matter Continuous proof of value Getting frequent feedback Increasing awareness N ๐Ÿ“ฃ

Change wonโ€™t happen overnight๐Ÿฆ‹ ๐Ÿ› Be persistent. Be transparent. Be there for them.

)๐Ÿคน Thank you. ๐Ÿฆ Reach out to me on Twitter: @HonzaTmn https://joind.in/talk/9d110