Should designers just put something out and expect the engineers to make it work?

If you don’t understand the medium you’re designing for, you’re an artist, not a designer.

There is so much noise about “Should designers code?” that I’ve decided to share my personal experience about this because ironically almost every designer who do not have a basic understanding of code says that designers should not code.

Recently I came across a tweet from a well-respected designer who said that designers should focus on design and that’s all, which is a great advice, almost like saying “Summer is hot and Winter is cold.”

How can code not be an important part of every design, especially in tech, when every digital product is built with code?

Also, another paradox is that a lot of designers who are saying that designers should not know how to code are religiously following this advice:

Design is not just what it looks like and feels like. Design is how it works.

Doesn’t code contribute to how a design works?

Also, designers are saying that we should learn typography if we want to be better designers.
Knowing typography doesn’t mean that we should know as much as a typography designer but knowing the basics, what makes a good typeface, legibility and so on, this takes time and practice. Of course, it’s not a “must” or a “should” but it definitely makes you a better designer.

Why is it so hard to say the same thing for the coding part?

There is a difference between being cross-discipline, and being a jack of all trades. Those with mastery of one thing and understanding of another are easier to work with and communicate with.

No matter how we put this, even if you have some basic knowledge would help you better work and communicate with fellow developers. I consider this being useful if you are not working in a vacuum.

Being able to write code, gives me a lot of insight into what kind of things are more or less impossible or simply too costly to implement. I often see designers who come up with beautiful designs (see Dribbble) that will never ever work in real life. Programming has taught me new ways of thinking. And it’s fun!

Another example can be the industrial design. It’s easy to draw something up that’s pretty and say “my work as a designer is done, I’ll be around if you need me, bye“. But an industrial designer needs to understand and work around many limitations that require a deeper understanding of the technical nature of their work. Again, they don’t need to know it all, but if their proposals at least include some consideration for technical limitations, it makes the work of the entire team much easier. Instead of the engineer saying “this won’t work at all”, they say “can we make this one thing 3mm larger?”

That being said, If you don’t understand the medium you’re designing for, you’re an artist, not a designer.

Let me give you few examples that helped me. 
By knowing a little procedural coding wether that is a bit of javascript or whatever else I’m able to do some basic flow control ( if/else, for/while loops) and basic logic and that’s really helpful because it helps my analytical thinking and it gives me more insight about a specific problem/feature I’m working on and obviously, it elevates the collaboration between me and the developer(s).

It can be applied also vice-versa. Would be great for developers to be able to make a halfway decent visual design “correction” in an app we are working on when I’ve accidentally made some weird corner of an UI element or did some improper spacing, I’m expecting this to be pointed out by the developer without having to get in “trouble”.

I started as a front-end developer and the main reason why I’ve switched to design was that of the many frustrations encountered by collaborating with designers which didn’t even know the basics of HTML and CSS to not talk about something more procedural. Because of this constant back and forth discussions led me to dive deeper in the design field to understand what is exactly going on. Not as a “must” or a “should” but more as a curiosity.

And no matter how good the design looked, there were some things that just didn’t work in code and I wasn’t so comfortable being the developer who had to figure out the workaround to a particular feature, basically, doing design work.

Let me give you a quick example:

Developer: Hey! I’m sorry but this drop-shadow can not be made like this because it will not work like this because this is not supported by Safari yet. Can you make another variation?

Designer: I understand! 
A few hours later: Here is this kick-ass drop-shadow which I think it will work.

Developer: Yeah, this can be done, but this it will take some extra time just to make sure that this drop-shadow will work cross-browser.

Developer: Do we really need to do it this way?

Of course, this example is just to make a point. Front-end coding is a huge asset for me when working on UI/UX or web graphic design, even when I am mainly responsible for the look and feel. Being able to tell a developer, “it should work like X, or do Y” in a language more specific to them is a huge help.

One of the latest projects I have been part on, the main reason why company “x” decided to work with me was because I had the ability to closely collaborate with the developers. 
Why? By having some experience with a specific framework that developers worked with it were much easier for them and for me to have a more pragmatic approach on the final deliverables because both of us knew the limitations and/or the guidelines. Another reason was that by having me onboard the process was faster and more “to the point”, for example:

I designed it this way because of this and that, and I know that the developers should be able to code this design more efficiently than this one,”

Of course, if we are talking about Facebook or any other large companies, it might not be the case to be hired because I know some code. They afford to make mistakes, to innovate or -insert your reason here- because they have budgets to support this. Also, it might be better to hire specialized people because this is simply how that organization/company works.

Now you might say: “So, you suggest to learn some code because companies can’t afford to pay two people or you might have some advantages in front of other candidates applying for some jobs?” It might be, but this is not my point.

Again, I’m not saying that you “must” or “should” but it’s definitely a “nice to have” and it’s incredibly empowering.

Surely, being a jack of few trades and a master of one has helped me.

Thank you for reading!

You can disagree with me on Twitter.

Later edit: Again, I’m not advocating for something, it was just a personal experience.

Leave a Reply

Your email address will not be published. Required fields are marked *