It is time for an intervention. It is no longer clear if designers are helping or hindering the creation of great products. We have backed ourselves into a ghetto of our own making. It is both an anti-intellectual ghetto where we claim engineering and software development is a dangerous type of knowledge. A type of knowledge that will make us worse at our design jobs. It is also a real physical ghetto, or silo. We have our own separate tools that often don't play well with the ones engineers use. We even sit and talk apart from those that should be our greatest allies in great product creation, the engineers. There is an answer though. We need to learn to code. Yes I can imagine the howls of pain. I think I can hear the sound of pitchforks being sharpened. The torches have been lit and soon a lynch mob will be coming to burn me at the stake. But hold back the cries of heretic and hear me out.
But first I will throw some salt in the wound. Being able to code won't be enough. There are plenty of designers who in some way claim to know how to code. Be it based on a brief programming module at University. Or those who started out as engineers before moving to design full time. It even includes those of you who 'code' prototypes. Yes none of that is enough. Designers need to get their hands properly dirty. We need to be working on the real software that will ship as the final product. This will indeed mean craziness such as installing a software development kit. Or as we pros call it, an SDK. You will have to use and even love version control and yes *gasp* maybe even the command line.
If this is right there should be clear benefits. Designers should find themselves happier, more productive and more creative. We should see designers and developers working better and more respectfully together. We should also see a new generation of tools and technology that allow designers to happily work hands on. And critically we should see many more delightful products.
A lot of the arguments designers have is about how scary some of the tools we have to use to work directly on software are. Again this this is our own fault as instead of giving feedback to improve them, we have just run away claiming it is the engineers job to suffer their use. My own experience is that if you stereotype engineers and designers the type of tools created for them are terrible. It is just blindly accepted that engineers will put up with hard to setup and use tools, while designers will not learn to use something unless it works like Photoshop. Let us return to this later though.
Before we can really dive into this conversation though we need to fully confront the issues around the idea that learning to code can make you a worse designer. More on this soon.