Designers + Developers: how to thrive with collaboration for better products

4 tips to improve communication in cross-functional teams.


Thiago H. Dalcin

3 years ago | 3 min read

Soft skills are increasingly becoming critical in the competitive workplace landscape, especially in the tech industry. With companies like Apple and Google no longer requiring employees to have a college degree, interpersonal skills, communication, and problem-solving thinking are in the spotlight.

I've been learning so much working alongside crazy talented designers and developers, so I wanted to share 4 ways to improve collaboration to maximize results and create better products.

Both designers and developers are analytical and creative problem solvers. Regardless of the organization structure, not joining these special forces is such a waste of an opportunity to greater achievements.

Human beings connecting the dots 📸by Eduardo Javier

1. Build relationships

We all have ups and downs. Some weeks are productive and others not that much. Understanding each other’s momentum can help us to communicate better, respecting space and timing. (trying to avoid the overused term “e̶m̶p̶a̶t̶h̶y” 😅)

One insanely good practice to level up the quality of relationship on the teams are the check-in/out standup meetings. (100% credits to

Gabriel Machado that brought this practice to the team at Ambush).

We have check-in sessions (Mondays) and checkout sessions (Fridays), at the end of the stand-up meetings. It consists of each team member sharing his/her feelings.

Something beautiful happens when we step back and take time to listen to others: How was the weekend? Something great/bad that happened? How are the cats 🐱? Anything but work-related topics (people can choose not to share anything, fair enough).

When we're drowned in work it's easy to wind up forgetting about human beings with vivid emotions that are just beside us. Humanizing is refreshing.

2. Sense of ownership

Everyone has a part to play in the shaping of experiences. It's a team sport.
A common and critical pitfall, probably legacy from the waterfall era, is pointing out bad decisions as other people's fault.

Cross-functional teams in an agile workflow work better when everyone's opinion count. Co-creation workshops, end-to-end discussions, and design sprints are such a powerful way to increase the sense of ownership over the product.

At Ambush we kickoff every new project with design sprints, including at least one member of each area of the cross-functional team, making sure that collaboration is at the core of the process since the very start.

Designers + Devs sharing solution sketches in a Design Sprint session

3. Learn from each other

Put yourself in the situation of your counterpart to understand what challenges they are facing.

Knowing each other struggles is key

A common mistake from designers, especially at the beginning of the career, is to focus too much on the visuals without taking into account technical constraints (so-called dribbble syndrome). I’m not trying to raise the famous “Designers-should-code” discussion. But designers should definitely know what it takes to build those experiences.

The same thing can be applied to the developer's world. Knowing how the prototyping tools work, what are the possibilities and limitations can smooth the day-to-day workflow.

Developers can offer valuable feedback in the early design stages.
We can use that to increase the quality of the design decisions. Many developers that I’ve worked with have lots of experience and insights that helped me so much along the way with constructive feedback.

4. Speak the same language

Many of the misunderstandings in a product team can be avoided having a common visual language in a shared design system.

Among other benefits, design systems can accelerate the design process and build bridges between cross-functional teams simultaneously building products.

UI Library following the principles of CSS (Sass)

Here's where design meets code in a single source of truth. That being said, it makes total sense to follow the code (Sass) principles and conventions such as: don’t repeat yourself (DRY), make it modular, avoid conflicts & think generic.

If you'd like to learn more,

Diego wrote about sustainable and collaborative design systems for products and teams at scale.

Adapting the design process to get the closest from the development world is a game changer in the product workflow.

Tools such as

Abstract, that borrow practices from software engineering have the potential of streamlining communication. With Abstract it’s possible to version control design files collaboratively, it’s kinda Github for design. With pull requests, masters, branches, inspection and collections.


The importance of effective collaboration is well known these days. As you noticed, all the topics above bring us to the same point: basic communication practices. We should remember that in the end, we’re all human beings trying to understand each other, while we create stuff. We work better together more than ever.

Thanks a lot for these talented folks:

Diego, Eduardo, Leo, Henrique, Gabriel Machado, Gabriel Alves, Daniel, Guilherme, Matheus, eliseudaroit & Pedro

With love 🖤


Created by

Thiago H. Dalcin







Related Articles