Should developers know design? Or should designers know development? This is an argument that’s been around for several years, although it was mostly aimed at the design crowd. But that could all change with the recent advancements in front end development. Developers could benefit now, more than ever, from understanding design and its principles.
Ever since the good ol’ days of yore there have been tales of a magical being. This powerful hero was said to wield the powers of both a developer and a designer. With this might, she was able to walk amongst members of either guild as one of their own. And, should she deem them worthy, legends told she even had the power to unite them under her flag.
I am speaking, of course, of the unicorn designer/developer.
This particular role is still very much sought after. You will often find job listings including both “X years of design experience” and “Mastery of Programming Language”. I’d even wager listings like this have outnumbered the purely web design oriented ones, at times.
For years it’s been designers who have shouldered these expectations. And articles about designers learning code have even become commonplace as a result. Which, in turn, has led to more and more designers becoming adept at front end technologies like HTML and CSS.
And yet, with the rise of Front End development as it’s own discipline. It is coders who could benefit the most out of taking on the mantle of the unicorn developer.
How I decided to learn design as a developer.
It was five years ago and I was still in college. I had finished developing my first web application ever and, man, I was proud of it.
The application was a simple document manager for the government agency where I began my craft. You could create, edit, trash and read documents. It worked through AJAX calls, had a Restful PHP service, and it’s own MYSQL Database. (I do remind you, it was 2012.)
I had just built something I was incredibly proud of. So, of course, I just had to show it to my friends.
Their reaction was… not what I had in mind. Instead of the praise I had expected, I was greeted with phrases like “Dude, why is it so green?”, and “This is the greenest thing I have ever seen in my life”. Which, needless to say, didn’t necessarily leave the best taste in my mouth.
Author’s Note: I have to admit, now that i’m older and to the credit of my friends, that app was IMPOSSIBLY GREEN. Like, Incredible-Hulk-Green.
I had just built my first web app, while pretty much learning how to do so. And yet nobody could see outside the lackluster design I had created. No one cared about the beauty of my code. They only cared about my below average UI.
This was the experience that led me to learning design. Because, rather than sulking about my failure, I made a decision. I decided that I wanted my work to reflect, on the outside, how I had felt about it while creating it.
The advantages of learning design as a developer.
There has been a lot of talk about designers learning code over the past years. The ultimate benefit being that, knowing the tool that’s used to craft their designs, will make them better designers.
My motives were pretty selfish: I wanted my work to be appreciated. But producing appealing software isn’t the only benefit that can come from learning design:
Better understanding the users.
User oriented is no longer just a trend in software development. It is the norm. The industry standard. Software has become more people oriented than ever in history. And understanding users is right at the core of this movement.
Designers are masters at understanding what appeals to the human brain, and crafting such experiences. Meaning that, learning design will, without a doubt, result in a higher understanding of those same concepts. And, understanding how to appeal to your users, will inevitably lead you to create better software.
Better understanding the design team.
Designers need to understand the tools that developers use to bring their work to life. But that also means developers can benefit from understanding the motivation behind design decisions.
Understanding both points of view will create more common ground between you. Which will in turn lead to a better team environment. And, perhaps more importantly, will keep you working together instead of against each other.
Applying the principles to your code.
I’ve written before about the importance of creating beautiful code. And how such a master piece reflects the amount of work and care that went into building it.
Learning design and it’s principles represent a valuable step in this process of achieving maturity as a professional. And, by learning how to apply them, you’ll be able to create better coding experiences for everyone.
How Front End Developers breach the designer-developer gap.
I started this article by mentioning that Front End development was one of the main reasons for developers to learn design. And, considering this is my main discipline, I believe an explanation is due as to why.
For years it’s been understood that a different skill-set is needed to craft beautiful UIs. You need a designer to deliver properly on a user experience. To this day nobody doubts that.
What people proposed, however, was that these same designers should hold the skill to actually put that design on a website. That’s probably why unicorns started being in such high demand.
And thus we raised the barrier of entry for everyone.
But that wasn’t the end of the world because, as it turns out, some people liked this new way of doing things. The Front End Developer answered the call and a new generation of coders was born.
These new coders work directly with the UI, being responsible for bringing the designer’s vision to reality. They embrace a more design-oriented world of stylesheets and components; while being no less savvy of design patterns and programming paradigms.
But this new power comes with it’s own set of responsibilities. Being in such contact with design means we’re no longer able to justify not knowing it’s principles. Specially when such knowledge could dramatically increase your output.
Knowing design as a Front End Developer means you’ll be able to:
- Handle responsive design, media queries and grids.
- Understand color, typography and whitespace.
- See through design inconsistencies, and be able to understand the intent of the designer.
- Transform a design into it’s own set of fully reusable components.
- Dispute a design decision with actual facts.
Should developers know design? It Depends.
As much as I would rather not make this distinction: Front End Developers are more in contact with design in the traditional sense. And learning design related skills and principles can dramatically increase their performance.
It is my belief that knowing design as a Front End Developer increases the quality of your deliverables. But only because it directly impacts your every day work.
Which is not to say that Back End Developers wouldn’t benefit from the knowledge. As I mentioned above, there are three main benefits of learning design that apply to every coder:
- Obtaining a user centered mentality.
- Improving developer – designer interactions.
- Creating better and more beautiful code.
Despite all this however, I still haven’t answered the question. And, to be honest, the answer isn’t what you’d expect: You don’t have to learn design as a developer. Regardless of my arguments, nowhere does it says you should be forced to hold two titles at once.
There are many paths that you can take in your own career process. Some of them will take you to management, others to more specialized coding, and others into design. None is inherently better than the other.
My intent, however, is to express the advantages that come from picking this particular career path. Because, regardless of whether you should learn it or not, there’s no denying that learning design will benefit you. As all good learning does.