Programmers and Designers: Can’t We Just Get Along?

It’s been said a million times that programmers and designers just don’t get along. Just do a Google search and you’ll find plenty of articles attacking the subject from different angles. My favorite reasoning in one article I read was that we can’t get along because one group is right-brained and the other is left-brained. This all seems silly to me, and I don’t think designers and programmers need to clash nearly as often as they do.

There was a SXSW conversation a couple years back about this topic, and our Chief Designer, Matias Corea, said it felt like a therapy session in there. It shouldn’t have to be that way. I believe developers and designers can and must get along to make the best product.

A key source of the design/dev tensions is that each individual team usually wants to think of the product from their perspective alone: “This site works great because of my coding,” or “This site is great because it’s well-designed.” Yet, neither of these things exist in a vacuum.

A web designer can make the best design possible, but it doesn’t transform itself into a functional, clickable website by magic. In reality, a programmer must take those designs and turn it into something usable after considerable thought. And once that’s done, there are often unseen issues that arise because of the different across web browsers. When a programmer has gotten through all the quirks and made the design work, they’ve done their job well.

On the flip side, a flawlessly operating website in no way means that the developers have done the hardest work. Obviously, if there are no bugs in the site, this will cause you less than frustration than the alternative, but what’s worse than a bug? A poor UI design. Fixing a bug is relatively easy. We know something is supposed to work a certain way, and if it doesn’t we can logically find the solution. If users are finding information easily through the UI, then clearly the designers did great work.

Neither group should be too proud, sitting in a corner staring down the other. Both teams need to get along and see how their problems are connected. Here are a few tips that have helped the Behance team along the way:

  1. Understand the Other’s Viewpoint
    This doesn’t mean you have to agree. You’re not always going to get the answer you want – that’s life. For example, if a programmer says no to a difficult feature, it’s not because they don’t want to do – they might not have the proper things in place or resources to do it. The important thing to realize is that everyone is trying to do their best to make the best product. If they weren’t doing that, they should probably be working elsewhere ( but that’s another topic for another day ).
  2. Weakness is a Strength
    I don’t know how often programmers would go to a designer for help solving a problem or the other way around, but it’s actually pretty beneficial. People always say “think outside the box”, but how often do they do that? Asking someone outside the area of expertise will certainly yield answers you would never think of. It’s helped both groups at Behance quite a few times.
  3. Take Interest
    When Behance started I knew zero about design and Matias knew zero about programming. That is not how you want things to be. It’s ridiculous to me how there are companies where programmers and designers are never even in the same room. The more each side knows, the more cohesive they become. Programmers knowing more about design will be less resistant spending time on the things they think are unimportant before knowing more about design. Designers knowing more about programming will be quicker to make a design that works better with the code you have in place.
  4. Keep Surprises Down / Communicate
    When a designer wants to make one of their inevitable design changes you need to let a programmer know as soon as possible to avoid wasted work and frustration. In fact if we are unsure if Part A of a design is iffy, we’ll work on Part B until the former is settled. Also if I run into a hurdle I did not anticipate I will let a designer know immediately. This allows both sides to collaborate for a good solution.
  5. Everyone Makes Mistakes
    I can’t count how many times I’ve seen people upset at another team or person for making a mistake. Designing and programming are equally complicated, just not in ways an outsider can see. I like to point out how everyone makes typos in e-mails. Think how easy it is to avoid that and we all still do it. Now think how much more complicated a full design along with the programming for it is. Avoiding mistakes is impossible – skip being mad and just find the solution together.

I hope these tips help you get along with your coworkers just a bit better, and maybe even make a better product because of it. Thanks for reading my first blog-post in three years. ( Also thanks to Jocelyn Glei for edits! )

You can catch me here: @dave_stein

Posted on August 3rd, 2011 by Dave