With the rise of “design centric teams”, there has been a lot of talk about the differences between designers and engineers. Sadly, they seldom are about anything constructive. But hey, aren’t twists and conflicts just more entertaining to read?

The reality is far from a Mars vs Venus situation, as described by some. I have worked with many design teams – more notably IDEO, and more recently, one of the top designers in the Valley. I know what it takes to foster a close, productive relationship between engineering and design. And I know that it boils down to process and empathy.

Keep design ahead

Design should always operate ahead of engineering. Have a head start of at most two weeks. Any longer, and you risk having something that is outdated by reality by the time engineering starts. Interaction and visual design should be iterated and completed before writing a single line of code. This prevents frequent back-and-forth during development, which ends up being inefficient, and draining. In other words, churn.

Prioritize together

I can’t stress it enough. Prioritization of features adds structure to your releases, reduces friction, and avoids overwhelming the team.

Plan your sprints with both engineering and design present. Give both sides a chance to be heard when deciding the priority of upcoming feature work. There’s a lot less friction when the team understands the tradeoffs at play.

Design optimizes for best possible experience for the user. And that includes even the most subtle changes that make a product feel “just right”. Engineering makes that a reality by ensuring that experience is flawless under all scenarios. Sometimes, that means having to make tough decisions of implementation tradeoffs.

I believe the worlds of designers and developers are not so dissimilar as people think. Both cultures immerse themselves in technical professions, sometimes carrying a certain amount of elitism, but always with a passion for craft, self-betterment, and pushing the boundaries of what’s possible.

We should learn to appreciate each other’s role. Start with chats over lunch. Have team-wide tech/design talks. Subscribe to Hack Design. Take lessons at Treehouse. It pays off.

At the end of the day, engineering and design work together towards the same goal – shipping a great product. We don’t push against the other. We push each other forward. That’s when the magic happens.