Bridging the design/engineering gap
How designers and engineers can collaborate for better design systems
Partnering with engineers is essential to the success of any design system. Open communication fosters collaboration, leading to better products.
Remember, a design system is a product.
If engineers are learning Figma, should designers learn to code? My answer is yes, at least a little.
This article will share how I learned to code, resources to get you started today, and practical tips for working effectively with your engineering teammates.
My experience with code
I took my first and only official programming class while studying cybersecurity at Penn State. One of my degree requirements was an introductory coding class, so I chose C++.
Initially, I was intimidated and doubted my ability to pass, believing that only certain types of people could code—and that I wasn’t one of them. However, I was wrong. The class turned out to be quite fun, and I quickly realized I was capable of coding, sparking a newfound curiosity for it.
After that class, I dropped out of college and pursued UX design, where I was introduced to HTML and CSS. These languages appealed to me much more because I’m visually stimulated and love seeing how code can shape what appears on the screen from a design perspective.
In 2019, I secured my first contract in design systems, which is when I started learning about React. I utilized many online resources to build my skills. While at Microsoft, engineers taught me more about React, and I learned to use TypeScript in my components. At Gusto, I continued to deepen my knowledge of React and TypeScript, thanks to the design system team engineers like
. Later, at Albertsons, I gained some exposure to Kotlin and SwiftUI.All of these experiences have continued to build on each other, increasing my knowledge and understanding of engineers and how they think.
Resources
Here are some resources I have found to be particularly helpful for designers learning to code.
Extend an olive branch
In my experience, engineers are passionate about their work and appreciate when others take an interest. Whenever I start a new role, I make it a priority to connect with my engineering peers early on. I approach these conversations with genuine curiosity and an open mind.
This approach consistently fosters positive relationships. I emphasize that, as a designer on the design system, my goal is to make their work more efficient and enjoyable. I'm committed to collaborating with them to create intuitive and user-friendly experiences for all engineers in the company, including themselves.
Take initiative
In previous roles, even within dedicated design system teams, I've encountered situations where engineers and designers were siloed. To address this, I proactively initiated one-on-one meetings with my engineering counterparts and created dedicated Slack or Teams groups to facilitate open communication. By streamlining these interactions, I've fostered an environment where engineers feel comfortable sharing feedback and ideas, leading to more effective collaboration.
Need career advice or help with your design system? You can schedule 1:1 time with me via Superpeer.
Ask for feedback
I've noticed that some engineers are hesitant to give feedback. This could be due to broken trust or cultural disincentives. The first step is to create a safe, non-judgmental environment for them to share their thoughts. You may need to ask multiple times, but eventually, they'll open up.
When you do receive feedback, resist the urge to dismiss it quickly. Listen fully to their ideas and discuss them together, even if you've already considered them. This is an ideal opportunity to collaborate and brainstorm.
Ask them to teach you
Every design system team I've joined has had engineers who taught me something new about coding. I love to code, and it helps me communicate my ideas more effectively with engineers.
For example, I worked on the Spinner component at Microsoft, collaborating with engineers to test my ideas and build a live prototype. This project deepened my understanding of switch statements and Fluent’s CSS-in-JS library Griffel —knowledge I've carried with me to other design system teams.
Celebrate wins
Indexing successes is important. For example, at Albertsons, many of the mobile engineers on the design system team had little to no experience with design systems. This presented an exciting opportunity to partner with them and introduce concepts like composable components and design tokens. As the design and technical lead on the design tokens project, I set up a weekly brainstorming session with engineers to teach them about design tokens, gather their feedback, and share my ongoing research.
When we launched the design tokens, I encouraged engineers to publicly share their positive experiences in our engineering/design standups. This demonstrated to stakeholders and our team that collaboration led to a design token naming convention and pipeline that made the engineers' jobs easier.
Tying it together
In conclusion, successful design systems rely on strong partnerships between designers and engineers. Open communication, mutual respect, and a willingness to learn from one another are the cornerstones of this collaboration. As designers, stepping into the world of code not only bridges gaps but also enhances our ability to create products that are both visually compelling and technically sound. My journey from coding basics in C++ to learning React and TypeScript is a testament to the value of cross-disciplinary skills. By extending an olive branch, taking the initiative, asking for feedback, and celebrating wins, we can build design systems that not only work but also inspire.
Whether you're just starting to learn code or looking to deepen your skills, remember that every step forward strengthens your ability to collaborate effectively with engineers. And in the end, that collaboration is what drives innovation and creates the best possible products.
Let’s continue to push the boundaries of design and engineering together.
Nice read! By the way, I met with Drory multiple times too years ago. Great mentor and I’m always thankful for his insights.
Love this so much, Josh. Thanks for sharing.