I can remember a presentation in 2007 from Jonathan Arnowitz with the title Innovation and Design in a World of Engineering. In his presentation Jonathan warns us about the quality of a design process within an engineering environment. He also points out the differences between developers and designers. When I saw this presentation I couldn’t agree more. I think this was because I noticed that a lot of professionals with a developers mindset were calling themselves designers. Or even worse, a devigner, which often meant that they were neither good at programming nor at designing.
However, this year at interaction12 a lot of presentations mentioned that designers should be able to code. My absolute favourite presentation was Concept to code: The importance of code literacy in Interaction design by Ryan Betts. But also Demystifying Design: Fewer secrets, bigger impacts by Jeff Gothelf was all about working closer together with developers and inviting other professionals (like marketeers or analysts) to participate in our design processes. 5 years ago, I wouldn’t have agreed, but now, I couldn’t agree more. The world has become a better place since then, both for developers and designers.
Now, more than ever, coding has become accessible to designers. Being able to code gives you an enormous freedom in your ways to design, but also what you design; your design is no longer limited to what you can draw (how do you draw an animation on hover?) and actually, doing some code can be an incredible amount of fun. With some coding skills you can build small prototypes to test and prove your ideas much quicker and much easier. But also knowing what is possible makes you more creative in designing the perfect solution to any problem.
I know an architect who decided to virtually rebuild a classic building. This meant building walls, tiling, roofing and laying out floors, but also hiring specialists to do the electric wiring. This makes complete sense to me! If you are an architect you love buildings. Yet you know you are not an electrician and the electricity is critical to the success and safety of your house.
What he does as an architect, is what I do as a UX professional. Every week I design, build and launch a new concept that I feel is worth trying out during my commuting time between work and home. So far I built oneclickbookshop.com, dontsleep.in and lastminutesouvenir.com. These websites are built to a level I can do (and I can do within 400 minutes). They are not at all browser friendly (basically they only work in chrome and firefox), not modular, not very maintainable and I am sure not incredibly safe either. Yet they are safe, modular, and maintainable enough to see if a concept will work.
Like my acquaintance who loves buildings, I love interactive concepts. And because I know a little code, I can launch my concepts while sitting in the train without having to rely on anyone else. When any of these concepts actually work, I will need experts to sort out the technical challenges, just like the architect needs the wiring to work when he moves in his house.
Does this mean every designer needs to code too now? – Absolutely not, but I think every designer should have a little code love. I heard the quote once “For a UX designer code is what bricks and mortar are to an Architect”. You better know your materials before you can design what you are building.
Sometimes I sit next to a hardcore java developer and ask things like “What is this stuff you are actually writing?” My experience is that most developers love explaining what they do, and this is generally very interesting to listen to. If it isn’t interesting or a developer hates explaining, I am willing to bet that the end product will not be as user friendly as you thought it was going to be.
By the way, this works two ways, if you can’t explain your design to a developer, he should be very worried about the quality of your designs. In fact you might say that communication could be one of the most critical points when designers and developers work together on a project. To have proper communication you need a shared language, in software that language is code.
Where to start?
Learning to code is very much like learning a new language. In the beginning you feel very stupid and it seems as if you are never going to learn it. This combined with the sometimes blunt way of communicating a lot of developers have (both in writing and in person) might make learning code a little bit intimidating. I think as a UX designer the best way to go about learning code is by building prototypes.
It might seem like a lot of work to learn but it really isn’t. Especially if you consider that you will be able to use this new knowledge right away.
Happy designing! Happy coding!