A friend recently asked me a really good question. He asked, “How much code should a designer know?” It’s a common question and it doesn’t have a standard answer. People have widely different opinions on what’s useful. If you’re a one-paragraph blog post reader, then know that my stance is that a designer should know enough code as is helpful and fun for her, but she (and especially her art director) should know a lot more about code.
For those of you still reading, what I mean by knowing about code is having a familiarity with what is difficult and what is easy for your developers. It also means having the conversations and engaging them about what new things are possible and at the edge of their talents. Innovation often takes a long time to reach back to design because developers are busy playing with tools and techniques in their own little sandbox and the rest of the world is blissfully unaware.
Take Papervision 3D, for instance. Way back in 2006, a developer named Carlos Ulloa Matesanz started playing around with matrix transformations on MovieClips to get them to look 3D. He didn’t really have any application and it was just an innocent lab project, like a lot of these here. It took opening it up to a community and getting fresh eyes into the mix to lead us into the 3D experiences we have in Flash today. The Augmented Reality Toolkit wouldn’t exist if it weren’t for collaboration.
It’s the same story for many of the coolest advances we have, and it’s everyone’s job to encourage an environment where that’s possible. For the purposes of this article though, and to answer my friend’s question, it is incredibly important for designers to reach out to developers and show an interest in new toys. Design always exists within constraints and the most brilliant and successful designs are those that buck up against the edges of those constraints. Just as developers need to continually hone their skills and stay up on the latest technology, so to do designers need to stay abreast of what’s happening in development, and specifically with their development team. The more integrated the two become, the more powerful and elegant the executions. Siloing helps no one.
So if you’re a designer looking to learn a scripting language, more power to you. More skills are always helpful, and that little bit you know can help you learn the words necessary to talk to your developers. Likewise, developers should make it a point to learn about design, even if they can’t draw or layout an interface. Know how to communicate and what’s important to the other person. Communication is fundamental to collaboration, and collaboration is fundamental to success.