Photo of website code

Should designers code?

The debate rages on, should designers code? Why don’t more designers code? Here are my thoughts on these questions.

First, we need to consider what is being asked of many designers today, the list is of roles and skills is fairly long.

Designers today are expected to be experts at:

  • Design (obviously)
  • Branding
  • Information Architecture
  • User Experience
  • Usability Testing
  • User Interface Design
  • Typography
  • Color theory

Sometimes they need to also be:

  • Content editors
  • Copywriters
  • Illustrators
  • Photographers
  • Marketers

Generally, it helps to have skills in:

  • Project management
  • Product management
  • Team Leadership
  • Client-Therapist
  • Strategist

You want us to write the code for you too?! Seriously, designers are expected to do a lot of things.

I should note at this point, that I am making the distinction between code literacy (knowing HTML and CSS), which all designers on the web should have versus designers producing production ready code.

If you are still thinking it is better to have one person doing it all, consider the hit to productivity. While one person may be doing all of the design work and then executing it in code, they are likely not doing both at the same time. This means tasks that could be accomplished in parallel must now be done serially.

Another reason for not having designers code is that their coding skill set and bag of tricks will limit or influence what they design. This means “what I can do” or figure out can gain equal footing with best practices or user needs.

While discussing this topic with another UX lead who is moving his team away from coding, I hit on another reason. One of the hardest soft-skills of any designer is to avoid becoming overly attached to an idea or solution. Our job is to look for the best solution for our users, which means many good ideas will be set aside. If you invested time to code something—especially if you had to invest time to learn how—you risk being overly attached to the solution you created.

Where is the dividing line?

If you look over the list above, there is a common thread. Everything listed is user facing or user focused. Coding, even for the front-end, focuses on machines. HTML, CSS, Javascript all tell the browser what to do and link the browser to the server. This is the clear dividing line for me.