As a designer, we dream of delivering amazing experiences, beautiful UI, and exceptional products. But how often do we see the end product not match our initial expectations? It’s easy to say “We want to build this amazing thing but we don’t have enough development capacity.” Being able to work around these constraints and being able to get your ideas into production is really a skill on its own.
But how do we do that? Good news! As designers, we all have the skills and tools to do it. Our main goal is to build empathy for our users and to share that with our teams; but what if we use our empathy skills to first understand our internal teams better? Understanding developers, QA, Product Managers and other stakeholders, allows us to learn how to communicate and align with different team members to gain a common understanding and shared goals.
Here is a designer’s guide to collaboration and building empathy with your development team.
Aligning the why (setting the focus) and the what
Before you arrive at your designs and identify how to make users' lives easier, designers often talk to users or conduct research without other team members — like product management, development, and QA — in the room.
As designers, we naturally develop a solid understanding of the problems that need to be solved and the features required to get the user from point A to B as fast as possible. However, these learnings need to be shared with the rest of the teams involved, as these findings will spark new ideas when people with different viewpoints look at them.
If we ensure our user knowledge is shared across all the functions of our team, we can better figure out what really has to be in the first or next iteration of the product we are working on. It’s critical to make sure you know which of your designs and workflows are the most important ones and which are just ‘nice to have.’ But only when we are considering the end-user experience, as well as business reasons and best ways to implement design ideas, will we all align on the same end goal.
It is also equally important to define as a team what you are not going to solve, as the combination of what to do and what not to do will guide and accelerate your decision-making process.
Finding a common language
As designers, another important consideration when it comes to collaboration is thinking about how we talk about our design and what we learn from our target users. In many cases, when it comes to language, we automatically use terminology that may be interpreted in slightly different ways.
During several projects, we only realized further down the road that, as a team, we used terms that meant slightly different things when coming from various backgrounds. That can lead to vastly altering results.
Be descriptive — even if you think everybody has the same definition in mind — and support what you are saying with pictures and animations. When showing visuals, we typically get more feedback and clarification questions. Creating visuals can take a long time, so it’s important to find the quickest way to sketch out ideas for your design to elicit early and frequent feedback.
How a designer sees the design vs. how a developer sees the design
For designers, when we create mockups, visuals, prototypes, and interactions, we do so through the lens of how a user will interact with it, while developers look at how they are going to build it. When showing the development team our mockups, it's a great time to reiterate what the user is trying to achieve. It invites the developer to the table to help craft the end-user experience, providing context as to why we might fight harder to keep in certain aspects, as well as remind ourselves of what aspects we can simplify to help the development team build the final product.
“Developers easily forget the goal of features they are building because they are mentally focused on the details of how to build them.” - Jason Santos, Senior Solution Architect
How can we simplify our designs? It starts with understanding how a developer thinks. Systems, patterns, and rules are essential to how they code. Are there ways to apply that to our designs? A design system is a perfect medium to accomplish this but even thinking systematically about the type stack or colour choice can all follow rules.
Anticipate the questions
One of the best ways to involve the development team in the design process is to work through the edge cases together and the alternative paths a user might take. Because developers have to define these scenarios, they also make the best people to collaborate with to plan for them. Anticipating these questions early on and trying to plan for them is beneficial as it can help guide your design decisions. What might work well for one scenario might not for another. Considering all the things that may go wrong and what you really need to get right can help deliver that amazing experience to your end user.
Getting your designs created all starts from empathy — being empathic to your team and being empathetic to your users. When you bridge the gap between your team and the user, it creates alignment on what's most important and what will make your product most successful. Understanding the developers you are working with and how to communicate with them will not only help with execution but also with iterating on your design.