It’s an ongoing argument in the industry with strong advocates on either side. Should designers learn to code to bring additional value to their work and projects? Or should they stick to being really good at design?
The answer? Well, it depends.
It isn’t clear cut, as we know. You can’t be an expert coder AND an expert designer. But if you are—high fives! It's not something the industry sees too often. The ability for a designer to write code to production level does have value: creating code is a deliverable, and you work directly on the thing that is being built. But at what cost to the design community? Technology is quickly becoming a commodity, with markets driving down price and expecting more bang for the (few) bucks they’re willing to pay.
In this day and age, without a solid understanding of the concepts of coding you’re not a designer, you’re an illustrator. Designers don’t necessarily need to write releasable code—but they should know about it. Knowing about code empowers you to make smarter decisions as a designer.
You need to understand the gears of software. If you are designing in digital and you don’t know code, you will only ever get an approximation of your design. If you don’t understand code, you may create design debt for the development team—having a negative impact on the project progress. It’s not about mastering the art of coding or creating pixel perfect design—you will ultimately give your end user a better experience because you will empathize with the coding process. If we stay inside our ‘safe cave’ of design we will never evolve beyond drawing layouts and user flows—we should learn how to code, and be good at it.
The ability to code comes at a cost. That cost is the opportunity of being able to focus on strategic design. Knowing how code works and writing code are two very different things. A designer who implements their own designs runs a risk of being constrained by that, and potentially not designing what is actually best for the user. It’s okay if a designer wants to learn how to code—it’s a step outside of your own experience, however, those that spend more time at the code face run the risk of stepping too far away from design. Technology is fast becoming a commodity—and designers that can code are obviously better value for money.
Know enough so that developers can't fool you; know what can and cannot be done. When you start thinking in this way, you start thinking about things from a new perspective.
“The fear that you will lose your mindset as a designer is a false fear. Skills acquisition is not a zero sum game.” — Coleman Collins
You can’t be a designer and a developer at the same—they are both mindsets. If you go deep into code, to say the level of databases and performance, you go to a new world where you discover different possibilities. If you don’t see this world, you miss the opportunity to innovate and create something novel.
“Why are we afraid? Code is just a tool after all. Because it’s a new tool is why we are scared. We started with Photoshop and got really good at that. If we understand that code is just another tool we can begin to exploit it in a positive way.” — Coleman Collins
The ability to learn to code really depends on your context too. Team structure, problem statement—audience it’s never a bad thing to know about the materials we use in order to design the best thing for our end user. The future for designers should be having more designers and more capability so we don’t have to encompass all these skills in one person. You are great value for money if you can do all the things, but that’s not what our industry should become. We need specialists and generalists. The industry is waking up to the value of having designers on software projects, but we still have a ways to go.
“Pick your tools and use what you’re comfortable with.” — Barbara Wolff Dick
If you choose to code, remember not to get too attached to your beautifully crafted code. By not being too attached to the code, you can make suggestions to challenge that. When you are too entrenched in coding you lose sight of the edges where the magic happens.
Good question. In some ways yes, but that’s just a short term view. Driving down the price and encouraging people to do everything at once (even while some unicorns do exist) is just terrible. It doesn’t speak to what you need to do on a project. It just means that designers are at risk of being commoditized further. It doesn’t make a great experience for designers, teams or end users. The market is wrong. It needs to wake up and change.
Intelligent trade offs between value versus effort need to be made. You need to understand what you are proposing as a designer and understand that someone has to develop it. There is an advantage if you can negotiate this and if you know how to do this well.
“Democratizing design is massively empowering. Whether for a developer selecting a color scheme easier on their eyes when coding, or a project manager creating a report that’s easy for all to digest, everyone benefits. It shouldn’t just be black magic wielded by designers.” — James Cook
Whether you are an artist, engineer or digital designer—the more you understand the tools the better your work will be. No, you don’t have to code to a level of production, but yes, you have to understand the world you’re creating in to design awesome things.
And that dear reader, is the end of that argument. Or is it?
Want to see the full fat version of the debate? Check out the video live stream of the panel:
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.