- May 1, 2014
Why Developers Need to Learn Design
A couple of years ago at Happy Cog, I transitioned from my position as a designer to a developer full-time. Up to that point, I had been a hybrid designer and developer, splitting my time between the two responsibilities. The truth is that it was a long-overdue transition. My passion lies in the development side of the spectrum, so I am glad to be in a role where I get to express that passion full-time.
I no longer design all day every day, but my experience as a designer taught me that developers should learn and practice design. The trope is often that designers need to learn to write code, but in working as a developer on the web, I’ve learned that the value of a design education pays dividends beyond being able to mock up a page in Photoshop.
Empathize for improved teamwork
The primary reason any developer should learn design is to gain empathy for the designers with whom they work. Nothing is more toxic to a project than developers and designers seeing each other as rivals. Designers also benefit in this way when they learn to write code. My fellow Cog Katie Kovalcin says in her Cognition post “Coding is Believing”: Teammates love empathy. I learned very quickly that a lot of things in my designs that (I thought) were quick and easy implementations were actually kind of a pain.
Too often, when developers mingle amongst themselves, an adversarial mindset creeps in. The attitude is that those designers over there just don’t understand. They demand strange and unusual things. Having knowledge of design will help to fight that mindset whenever it sets in. Recognize we’re all working towards the same goal. Thinking of your teammates as opponents hurts everyone.
It is impossible to collaborate effectively without a sense of empathy. It provides a sense of fellowship and enables better teamwork. Designers and developers should understand each others’ perspectives. With that understanding, we can work better together, sharing a single path to success.
Adapt for a responsive web
With devices of all shapes, sizes, and capabilities introduced yearly, we’ve had to adapt. We’ve addressed the challenge with new kinds of deliverables—including design systems, style guides, and pattern libraries. We’ve also revamped our workflows to account for Responsive Web Design. This has been a natural and positive progression.
In this new world, the best thing a developer can do is to acquire an eye for design—to be able to take design aesthetic, realize its essential components, and reinterpret them on the fly. How is a certain piece of design going to look and behave? How will a tabset designed for a desktop view work for mobile? Designers and developers can work together to answer these questions. Almost always, these discussions lead to a solution that is elegant, effective, and sensible.
At Happy Cog, our designers’ and developers’ work overlaps. And, understanding each others’ roles and languages enhances communication and collaboration. If the designer on your team doesn’t have a fully-worked-out vision for how elements adapt responsively, you’ll first be able to identify these gaps, and then work together (without stepping on toes) to help brainstorm ideas to address the issues.
Once you understand how a design system is built and behaves, you’ll be able to write more concise, consistent, and DRY code. You’ll also be able to recognize patterns in the designs and write more modular, object-oriented CSS. Both of these points are essential for developing responsive websites, where ballooning code and performance have become top-of-mind issues.
Understand design to understand the user
It’s sometimes easy to forget that the work we do is for real users. Our clients have real problems they are trying to solve. Putting too much focus on the technical challenge of development can hold us back. It can prevent developers from really truly contributing to the solution. Learning and understanding design helps negate that. Getting involved earlier in the design process will keep you grounded, more aware of design problems, and closer to your users.
Enjoy your work more
Perhaps the best reason to learn design is to enjoy the work more. It’s more fun to have those productive and collaborative discussions. Understanding design, as a developer, brings delight to the work. The satisfaction I feel when a project launches is even greater when my contribution goes beyond the technical.
So go ahead, pick up a book on the principles of design. Sit in on that design panel or workshop at a conference you may have otherwise skipped. Go to meetups for the design community, and strike up conversations. Seek out the designers on your team, and engage with them by asking questions that uncover design intent. And when you do, seek to understand.