Why Designers Really Should Learn to Code
There's been a lot of discussion over the years about whether or not designers should be obligated to learn how to implement what they design. This obviously causes a bit of angst amongst the design community because, of course, not every designer has been in a position to learn to write their own front-end code (and that being a requirement is scary). And, hey, some people just aren't interested in that part of the product process. That's what engineers are for, right?
On the other side, the common refrain seems to circle around designers becoming more and more independent. If designers know how to code, we can finally be free of engineers telling us we can't do something. We can implement our vision for the design and not have to rely on anyone else. We can create complex animations, subtle gradients and shadows with pixel perfection. Never have to submit or defend a design spec again!
At Etsy, like many companies these days, product designers are responsible for staying active and involved throughout the entire development process. From product definition to user flows to wireframes to visual design to, yes, writing and deploying their own HTML and CSS, designers are tasked with staying involved from start to finish.
However, we expect the same of our engineers and product managers - we push everyone on a team to be involved in every step of creating great products. When we brainstorm and blue sky ideas, we do it together. When we have user research going on, we're all tuned in and watching. When we talk about findings or data or how to best accomplish a goal through design or engineering, we do so as a team. We not only rely on each other's expertise, but also a shared understanding of our focus areas in order to conceive, design and implement our roadmaps.
What's been most interesting to me about requiring designers to work in code is that, instead of making our designers more independent, working in code has actually created a deeper collaboration with their engineering partners. In the same way that participating in developing the product vision forms a deeper relationship with their product managers, writing code enhances the bond between engineers and designers. During our annual review process, I heard time and again from engineers about how working in code with designers made them feel even more truly like partners. I've seen firsthand how our products benefit from design, product and engineering sharing their responsibilities. People trust each other more, are more open to each other's ideas and, ultimately, will fight hard together to make the best product they can. Nothing gets thrown over the wall. Quality and excellence are everyone's responsibility.
Don't know how to write HTML and CSS? Ask to pair with the engineer who usually implements your designs. Find small parts of your design you want to tweak and work through the problem together. Start a bug rotation specifically geared toward design inconsistencies (a couple designers at Etsy, Jason and Magera, self-started this). Put your entire design team on the rotation along with a few willing engineer pals to guide folks along. Not allowed to touch the code as a designer? Find a place that values and believes in tight collaboration across disciplines (Etsy is certainly not the only company out there with this viewpoint, but yes, we're definitely hiring!).
That's what collaboration really is - crossing boundaries and finding common ground so that we can work together and share a mutual understanding. If designers want their partners in product and engineering to understand and participate in the design process, we need to be ready to stretch the other way as well. We need to be willing to leave the comfort of our specialty, to understand what our collaborators are dealing with every day. Learning to code isn't about independence. It's about embracing our codependence and discovering the strength that comes from true partnership.