In 2003, I read a New York Times article that included this quote from Steve Jobs: “It’s not just what it looks like and feels like. Design is how it works.”
The significance of that statement completely changed my career as a developer.
At the end of the day, I’m the one who writes the code and builds the product with my own hands. How can it be that someone else determines how it ultimately works?
The reality of every developer is that they’re completely immersed in the back end, but they’re never face-to-face with the end user. The user doesn’t interact directly with their work—the user interacts with what the designer creates.“Developers should learn design.”
This difference in perspective keeps developers from seeing the whole picture. They’re missing the most important part: the user.
Developers, learning design makes it possible for you to assemble the entire system in your mind—from how the user interacts with your product, down to the last link where you store the information in your database. This complete trajectory allows you to develop a product that’s better than the competition.
I’ve been a developer for over 15 years, and learning design has drastically improved my work. We constantly hear about how designers should learn to code, but I think that in order to create amazing products, developers should learn design.
Understand design, understand the user
When I started learning design, one of my biggest “aha” moments was that even though I’m working on the back end, what I do needs to make the user’s life easier. Your users have real problems they’re trying to solve. If you center your focus on solving the technical problems, that may keep you from coming anywhere near solving the problem.
One of the best ways to make sure you’re on the right track to serving the people who will actually use your product? Get involved early on in the design process—preferably on day one. Being conscious of the user’s problems from the start makes it easier to end up at the finish line without getting lost and doubling back.
Paul Graham, the well-known entrepreneur and founder of Y Combinator, said this: “It sounds obvious to say you should only work on problems that exist. And yet by far the most common mistake startups make is to solve problems no one has.”
Not everything is as it seems
I’ll say it again: It’s pretty much impossible to go even a day without seeing someone share an article on whether designers should learn how to code.
What people are forgetting: developers are capable of learning design—and they should in order to collaborate better with designers and create truly amazing products.
Unfortunately, there’s a certain degree of rivalry between developers and designers. Who has the tougher job, who’s right, who’s wrong, who knows more—the list goes on and on, and this refusal to play on the same team is getting us nowhere.
Learn to design and you’ll understand that a designer’s job isn’t as “easy” as it seems. Learn to code, and you’ll realize developers aren’t grumpy and out to ruin your designs. Designers and developers will come to value each other’s work and respect what they do, which will lead to doing work together as a team.
Enjoy your work more
For me, the best thing about learning design is that I now enjoy my work more.
I’m able to engage in productive conversations with designers by speaking their language, and that gives me a ton of satisfaction. Plus, when we launch a new project, I’m even more passionate about it because my contribution goes beyond the technical aspects that happen behind the scenes.
Learning design also helps developers create products that have a perfect balance between the creative and logical without a functional specifications document. It’s possible to avoid the PSD and develop your designs and styles in an interactive way while writing the code.
And when you find holes in the design decisions and the style sheets, you can solve them immediately and finish your work without any delays or headaches.
There’s a constant flow of new devices being produced in all kinds of different shapes and sizes. So, the ability to adapt as quickly as possible is essential.
Developers must work with a design that responds to these requirements. This means it’s even more important that developers are able to spot these changes.
How will a part of the design behave when you go from a desktop computer to a mobile phone? Or to a smart watch?
With design knowledge, you’ll probably take a much different approach to your work than you would have otherwise, giving you a huge competitive advantage—and you’ll more than likely save yourself and your team a ton of time.
At my company, design and development constantly overlap. When a developer knows about design, the results are just better—both in terms of work speed and the quality of what we produce.
How I learned design
My first steps were with DesignLab, where a mentor helped me along the way. I also did the BLOC design program. Both were great. Obviously, nothing will replace constant practice—seriously, practice every day or you’ll never get better.
A helpful resource on typography is Typography Workbook: A Real-World Guide to Using Type in Graphic Design by Timothy Samara. To learn about color, texture, and images, check out Principles of Color Design: Designing with Electronic Color by Wucius Wong. And on form, spacing, and rhythm, I recommend The Principles of Design by Joshua David McClurg-Genevese.