Lean Safe approach to building design systems Jan Toman, Kiwi.com Webcamp Zagreb, October 2019
A presentation at WebCamp Zagreb in October 2019 in Zagreb, Croatia by Jan Toman
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