{"id":17304,"date":"2024-05-28T18:18:14","date_gmt":"2024-05-28T15:18:14","guid":{"rendered":"https:\/\/railsware.com\/blog\/?p=17304"},"modified":"2024-09-10T12:48:20","modified_gmt":"2024-09-10T09:48:20","slug":"establish-design-system-architecture-on-a-product","status":"publish","type":"post","link":"https:\/\/railsware.com\/blog\/establish-design-system-architecture-on-a-product\/","title":{"rendered":"Establishing Design System Architecture on a Product\u00a0"},"content":{"rendered":"\n<div class=\"intro-text\">Some believe that such a crucial part of a product as its design, solely depends on a product designer. However, creating a successful solution requires multiple specialists working together as a single unit. At the same time, collaborative work imposes a range of issues, such as a necessity to grant access to various specialists, a need to structure your work and all the materials and keep an eye on others\u2019 actions never to lose a thing.<\/div>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2400\" height=\"1260\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image.jpg\" alt=\"\" class=\"wp-image-17296\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image.jpg 2400w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image-360x189.jpg 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image-1024x538.jpg 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image-768x403.jpg 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image-1536x806.jpg 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image-2048x1075.jpg 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><\/figure><\/div>\n\n\n<p>This is exactly the problem I faced 4 years ago when I joined the Coupler.io team. At first, working in a single file wasn\u2019t a problem. However, with the product growth, complications emerged. I saw the need to create a clear design system architecture that would allow the whole team to easily create and manage all the related design elements in Figma. And this is how I did it.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The peculiarity of our work<\/h2>\n\n\n\n<p>Unlike many other teams, Railsware is built on collaboration and pair\/group work. We believe that this is the only way for all team members to know the context of a product, be able to share knowledge, and make decisions that would only benefit the product.&nbsp;<\/p>\n\n\n\n<p>In my case, I often collaborate with product owners, product managers, developers, QA engineers, marketers, and content writers \u2013 all to ensure the end users get a user-friendly, intuitive solution.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2246\" height=\"1372\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2.png\" alt=\"\" class=\"wp-image-17302\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2.png 2246w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-360x220.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-1024x626.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-768x469.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-1536x938.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-2048x1251.png 2048w\" sizes=\"auto, (max-width: 2246px) 100vw, 2246px\" \/><\/figure>\n\n\n\n<p>The product I work on has an ecosystem that consists of an application, various databases, dashboards, and other files that it can generate, a G-suite add-on, a marketing website, and other marketing materials.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1960\" height=\"1596\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy.png\" alt=\"\" class=\"wp-image-17301\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy.png 1960w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy-360x293.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy-1024x834.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy-768x625.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/image-2-copy-1536x1251.png 1536w\" sizes=\"auto, (max-width: 1960px) 100vw, 1960px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The main problem<\/h2>\n\n\n\n<p>When several people are working on one matter without a clear design system architecture, things get complicated. And then, a day comes when you can\u2019t find an asset you need, see a lot of duplicates, or can\u2019t explain to a newcomer how and where to get a design asset.\u00a0<\/p>\n\n\n\n<p>Here\u2019s how our Figma looked before. As you can see, it was a pile of random files with vague names or without them at all, and a lot of trash files no one knew anything about.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1216\" height=\"1317\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/folder-old-structure.png\" alt=\"\" class=\"wp-image-17300\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/folder-old-structure.png 1216w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/folder-old-structure-332x360.png 332w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/folder-old-structure-945x1024.png 945w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/folder-old-structure-768x832.png 768w\" sizes=\"auto, (max-width: 1216px) 100vw, 1216px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">How we solved the problem by establishing a design system architecture&nbsp;<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">The brainstorm<\/h3>\n\n\n\n<p>Before you tackle any problem, you need to make sure you see the holistic picture of it. In my team, we use different instruments to collect, sort, and prioritize information. The one we use the most is <a href=\"https:\/\/railsware.com\/bridges-framework\/\">BRISGeS &#8211; a decision-making framework<\/a> created by the Railsware team. BRIDGeS allows you to visually structure data and come up with the most optimal solution.&nbsp;<\/p>\n\n\n\n<p>I invited my team and initiated a BRIDGeS session. At first, we defined the Subjects &#8211; people who would benefit from solving the problem. In our case, these were specialists engaged in the design process &#8211; Product manager, Product designer, Marketer, Engineer, Vendor.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1455\" height=\"1093\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/bridges.png\" alt=\"\" class=\"wp-image-17292\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/bridges.png 1455w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/bridges-360x270.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/bridges-1024x769.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/bridges-768x577.png 768w\" sizes=\"auto, (max-width: 1455px) 100vw, 1455px\" \/><\/figure>\n\n\n\n<p>Bear in mind that at the time of that session, BRIDGeS was raw, and we didn\u2019t even have our fantastic <a href=\"https:\/\/www.figma.com\/community\/file\/1103684095234755455\">BRIDGeS FigJam<\/a> yet to make the brainstorming process not only fruitful but also eye-pleasing. But let&#8217;s get back to the point.<\/p>\n\n\n\n<p>After that, we listed all the B (benefits the Subject can get from the future solution), R (risks that the Subjects may experience in the future), I (issues that the Subjects have right now), and D (domain knowledge, we need to keep in mind while resolving the main problem).&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Issues identification<\/h3>\n\n\n\n<p>Among the biggest identified Issues were:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Figma loading time<\/strong>. As there was one file for everything, over time, it became so large that the loading time could take from several minutes to several days.&nbsp;<\/li>\n\n\n\n<li><strong>Unclear flow\/screen statuses. <\/strong>When many people are working on different aspects of a product, it\u2019s hard to track all activities and even harder to understand if the screen is ready for development, or if it has been approved.&nbsp;<\/li>\n\n\n\n<li><strong>Inability to find a necessary element quickly<\/strong>. In a single file, new entities appear every hour, making it hard to track changes even with a version control system. Imagine a marketer needing an icon for a new email campaign. If they cannot find it quickly, they will ask you to create it (again!).<\/li>\n\n\n\n<li><strong>Every file contained a pile of rubbish<\/strong>. The design of an asset, like a landing page, requires brainstorming and several iterations. Each such session resulted in elements that were reworked, or rejected. If a responsible person isn\u2019t a participant in such an activity, they will find a pile of strange elements they have no idea what to do with. Comments in Figma are also worth mentioning. When non-resolved they cause more questions than answers.&nbsp;<\/li>\n\n\n\n<li><strong>Difficult to onboard new team members<\/strong>. If you don\u2019t know the structure of your file system, how are you going to explain it to a newcomer?<\/li>\n\n\n\n<li><strong>Inconvenience to test a certain flow<\/strong>. When you have everything piled up in one place, the only reasonable way to test a certain flow is to duplicate it somewhere else. This is exactly how you worsen the problem and create even more strange files with duplicated content.&nbsp;<\/li>\n\n\n\n<li><strong>Problems with access for 3rd party vendors<\/strong>. There\u2019s a need to give your vendors different levels of access to different materials, which is impossible if you have one file for everything.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Coming up with the solution&nbsp;<\/h3>\n\n\n\n<p>Once we had the holistic picture decomposed on the board, we started thinking about the solutions. Since there were numerous issues, we needed a list of actions to solve them all. Here are the steps we defined that helped us create a clear design system architecture for the Mailtrap.io team:<\/p>\n\n\n\n<p>1. Upgraded Figma plan to make it more flexible for the team.<\/p>\n\n\n\n<p>2. Made a list of the main activities on the product and created a separate folder for each of them.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-medium\"><img loading=\"lazy\" decoding=\"async\" width=\"358\" height=\"360\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/file-structure-358x360.png\" alt=\"\" class=\"wp-image-17299\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/file-structure-358x360.png 358w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/file-structure-180x180.png 180w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/file-structure.png 645w\" sizes=\"auto, (max-width: 358px) 100vw, 358px\" \/><\/figure><\/div>\n\n\n<p>3. Reviewed and provided access to specific folders to each specialist\/vendor depending on the real necessity.<\/p>\n\n\n\n<p>4. Created icon libraries, press kits, and presentation templates that marketers and other specialists could easily reuse.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"737\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design-kit-1024x737.png\" alt=\"\" class=\"wp-image-17298\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design-kit-1024x737.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design-kit-360x259.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design-kit-768x553.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design-kit.png 1334w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>5. Made a specific UI-kit for data analysts who work with software like Looker, PowerBI etc.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"695\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/da-design-kitpng-1024x695.png\" alt=\"\" class=\"wp-image-17294\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/da-design-kitpng-1024x695.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/da-design-kitpng-360x244.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/da-design-kitpng-768x522.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/da-design-kitpng.png 1415w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>6. Created pages in files dedicated to each step of the workflow to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>separate ideas from approved materials&nbsp;<\/li>\n\n\n\n<li>add clarity about the status of the materials.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"734\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/new-structure-1024x734.png\" alt=\"\" class=\"wp-image-17303\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/new-structure-1024x734.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/new-structure-360x258.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/new-structure-768x550.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/new-structure.png 1181w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>7. Created spaces (playgrounds) for different projects to give teams the ability to brainstorm and experiment freely.<\/p>\n\n\n\n<p>8. Established rules on naming in storybook and ui-lib (like &#8220;button_login.png&#8221; for a button and &#8220;logo_company.png&#8221; for a company logo).<\/p>\n\n\n\n<p>9. Established color-coding principles to mark different parts and processes of the product.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"609\" src=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors-1024x609.png\" alt=\"\" class=\"wp-image-17293\" srcset=\"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors-1024x609.png 1024w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors-360x214.png 360w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors-768x457.png 768w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors-1536x914.png 1536w, https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/colors.png 1678w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>10. Scheduled regular syncs with designers and other team members to maintain and improve the design system architecture.<\/p>\n\n\n\n<p>11. Ran workshops for data analytics, marketers, and other specialists when necessary.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping up<\/h2>\n\n\n\n<p>If you are alone dealing with a product design and a single Figma file works for you, then that is fine. However, be ready as over time, this approach will cause more and more complications, and you\u2019ll need to reconsider the approach at some point.&nbsp;<\/p>\n\n\n\n<p>This is why I highly recommend you create rules and conventions for naming, color-coding, and folder covers from day 1. Don\u2019t hesitate to create new folders when the product grows, and upgrade your Figma plan when your team expands.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Read how we established a scalable design system architecture on a Coupler.io product.<\/p>\n","protected":false},"author":85,"featured_media":17295,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[51],"tags":[],"coauthors":["Daria Roshchyna"],"class_list":["post-17304","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-design"],"acf":[],"aioseo_notices":[],"categories_data":[{"name":"Design","link":"https:\/\/railsware.com\/blog?category=design"}],"post_thumbnails":"https:\/\/railsware.com\/blog\/wp-content\/uploads\/2024\/05\/design_system_architecture_image.jpg","amp_enabled":true,"_links":{"self":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/17304","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/comments?post=17304"}],"version-history":[{"count":10,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/17304\/revisions"}],"predecessor-version":[{"id":17550,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/posts\/17304\/revisions\/17550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media\/17295"}],"wp:attachment":[{"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/media?parent=17304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/categories?post=17304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/tags?post=17304"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/railsware.com\/blog\/wp-json\/wp\/v2\/coauthors?post=17304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}