Should Developers learn Design? (8 Reasons Why)

By the end of this post, you will be convinced of why you, as a designer, need to learn how to design.

My name is Quinston, and in this video, we are going to explore a question that I have asked myself more times than I can count. In an age where most software products are shipped with a professionally-designed Graphical User Interface, should you as a Developer learn the inner workings of Design? And how can you, as a developer, earn more money from this?

Before watching the video, do leave a comment on what your opinion is. I'd love to know your thoughts on the subject. Also, don't forget to subscribe as I put out new in-depth videos like this one all the time.

The biggest issue with this statement is that it covers design from a incredibly wide perspective. By definition, a competent developer is a good designer. It's just that their designs are not visual. The designs created by a developer are pathways that allow data to flow conditionally through a system. If these pathways are not designed effectively, the efficiency of the system is compromised. All of these data-flow pathways work together to form what we call an algorithm. If the algorithm does not work, the application is useless.

We discredit the ability of a developer to design because we cannot see their designs as they run on the back-end. However, these designs play a massive role in giving us the quick but more importantly, correct output. What is not seen is usually forgotten and this is very true in the case of developers.

When a user opens up an application, the interface that they interact with is called the front-end. The front-end in most cases is designed by a very specific designer. A UI Designer. UI stands for User Interface. The sole responsibility of the UI Designer is to make the front-end look stunning. From the typography to the space between the header and the next paragraph to creating the icon packs. The UI Designer meticulously designs the look and feel of the front-end.

And then there is the UX Designer. UX stands for User Experience. The sole responsibility of the UX Designer is to create workflows and pathways for the front-end such that the user can seamlessly - without any hassle - use the application without feeling lost and confused. From doing research on user behavior to creating wireframes and low-fidelity designs, the UX Designer works to enhance the ease of use of the application and creates a base for the UI Designer to jump off of.

In any case, you might have heard of instances where the UI Designer and the UX Designer are the same person and therefore, they are called the UI/UX Designer. This happens in a lot of cases, as UX and UI are overlapping fields. Plus, the company hiring them can save some resources. Talk about killing two birds with one stone.

Let's think about the responsibilities of the Developer compared with the responsibilites of the UI/UX Designer from the perspective of the user. What does the user notice first when they use the application? The User Interface. If the user interface is bad… it's game over. The Developer does not even get a chance to showcase the amazing output that the application produces. Thanks to the intense competition that exists in the app economy today, a business owner cannot risk bad design. It's just not good for business.

Bad code on the other hand might be forgiven. Computers today are really really fast. Mobile devices are also computers. If the back-end logic is written by an average developer who is not very experienced, the compilers, optimizations matrixes are going to work overtime along with the computer's processor to make sure that code runs as fast as possible. And I am sure, there are a lot of popular applications that we use today that have massive loopholes in their codebase. We don't know about those, because we can't see them.

UI/UX Designers rarely, if ever, get a free pass. In contrast, we tend to judge the quality of the technology by how the front-end looks which makes no sense to me. The classic saying, "Don't judge a book by it's cover" should be replaced with "Don't judge an app by the width and height of it's burger menu icon".

If the design is epic, we praise the technology, and if it is shoddy - we eviserate the Designer.

That brings me to my first point for why developers should learn design and specifically, UI / UX Design.

1. Developers can empathize with and better understand the viewpoints of the Designers.

It's not shocking, but Developers usually feel threatened by their Design counterparts. "How can a Designer tell me what to do?" This isn't said out loud but the sentiment is felt very strongly. On the other side of the spectrum, the Designers usually feel, "Why does the Developer think I don't know what I am doing?" It's actually pretty hilarious and I have witnessed this first hand. Heck, I have actually been the Developer in this situation. It's not always pretty.

If Developers learn the basic concepts of design and realize how much time and effort goes into creating an effective and beautiful interface, maybe they will be able to muster up some respect for the efforts of the designer. It's a hail mary. But, it makes sense. Developers respect complex logic and results. If they are shown that the Designer's job is not very different to their own. It might tip the balance and enable better team dynamics, which we want. The end-product can only come out on top, if the developers and the designers work hand-in-hand, respecting each others work.

2. It helps Developers implement Design concepts in their own Workflows.

It is said that a developer should spend 30% of their time on implementation of the code and rest on planning, documentation and maybe even code comments. Of course, this is an ideal scenario. Writing comments and documentation are not really the most fun part of the development process… but none-the-less, they are incredibly important.

Understanding the concepts of design can significantly impact the quality of planning, documentation and code comments created by the Developer. An example could be the use of Typography. In Design, the font style, size, colour etc. play a very important role in how effectively the written word will be understood. Especially, if it is read on the screen. Having a good understanding of Typography would actually be really beneficial as it could communicate more effectively the details of the codebase. There are a lot of developers that learnt the basics of Design and have significantly improved the quality of their work.

You don't have to be Saul Bass, but implementing the basic principles in your workflow will help you communicate your work better to your team and create better templatized system for standard tasks.

3. Developers can better critique the work of a Designer.

Imagine having to evaluate a task that you have limited to no knowledge of. How can you give someone contructive criticism on their work if you have no working knowledge of the subject at hand? Similarly, a developers can on argue about how he feels and thinks in that moment about the design rather than critiquing it with first principle fundamentals.

Why always comes before how but if you can't comprehend why, how is just something you "have to do". The conflict between a developer and designer usually arises due to the limited working knowledge the two have about each others work. If developers can understand where the designer is coming from, they can always have better conversations and contribute better to the end-product as a team.

4. Designers will stop complaining that Developers don't get Design.

I have a different perspective on this. In my experience, I have realized that Developers are actually really good at UX Design, provided they spend some time on it. Developers get significanly better at UX in a shorter timespan than their Designer counterparts. I deduce that the reason behind this is that, Developers tend to be very logical because of the inherent nature of their work and can quickly get used to complex pathways. This makes them very adaptive and quick. UX is also a very logical endevour hence, naturally, Developers excel at it.

So, no, I don't think Developers don't get Design. As we discussed in the previous point, the limited knowledge about the subject is what cause this drift.

5. Learning Design helps you understand your users better.

Let's be honest. We, as developers, are romantic about the technology we use. In a lot of situations, we tend to get lost in the beauty of the technology rather than understanding what we are building and who we are building for. The first-principle of design thinking is to understand the target user. Who are you building for? What are they going to use the product for? If a developer does not understand this, it could be severely harmful for the product being developed.

Your users have real problems that they are trying to solve. Romantisizing technoloy does not help. Technology is created to make our lives better, not to sit and look pretty. Enable the solving of problems through technology.

At the end of the day though, the user interacts with the designs visualized by the designer and implemented by the developer. This symbiotic relationship will be strengthen if it serves a common goal. The common goal in this case is "creating the best product for the user".

6. Learning Design helps Developers visualize the whole system end-to-end.

As a developer, you job is to design and implement the system from a technical stand-point. Most developers are not trained in the visual arts and hence, are not able to comprehend the entire workflow and pipeline of designing a full-fledged product offering. These according to me, are one of the reasons that developers are not able to excel in the later stages of their careers to higher pay scales.

You get a raise when you provide more value. You can only write so much code for a product. At Microsoft, it is said that a developer writes an average of a 1000 lines of code a year. But, if you actually provide valuable insigts in the development of the product from the perspectives of a developer who understands design? The sky is the limit. You will standout a distinct and valuable resource.

On top on that, you will be able to deeply understand what goes into building a product now only from a technical stand-point but also, from a design and business perspective. This is extremely valuable as your opinions will directly impact the top line of your employer. Heck, if you are a developer who is starting their own company, it will directly impact your own company's top line.

7. It will help you with your personal projects.

Most developers work on personal projects in their down time. I rarely find passionate developers that don't tinker around and build random projects. The problem is, that most of these tools are unusably because they are not designed with a user in mind. Sure, the expectation is for them to use useful to someone on the planet, but if the products themselves are unusable… how do you expect for them to actually work?

But, if you as a developer, learn how to design for the user. It will greatly enhance the quality of the personal projects you create and might help you create a revenue stream other than your main source of income. Creating value from your personal projects is genuinely hard. But, if you understand how to leverage yourself on both fronts, its very possible.

8. It might free you to pursue Design.

You might be surprised to know how many developers shift over to the other side after being exposed to the world of design. Maybe you are one of those individuals who thinks they are a developer but in reality, are still in the closet. People change career paths all the time and if you discover that design, over programming, is your calling, you can whole heartedly jump in and start swimming.

How much design should Developers you actually learn?

So, let's imagine that my points convinced you to learn how to design? How far should you venture out? Now, my answer would be… it completely depends on what your goals are. For example, if you want to learn enough skills to play a bigger role in your team that already has a full-time designer, you can learn about the basic first-principles and low-fidelity design. But, if you want to go all-out and compete with professional designers, there is not limit to how much you can learn.

A Developer who can Design is called a Unicorn.

For example, the guy who runs DesignCourse, is a Unicorn. He is a developer and designer. But, to reach that level of expertise is hard and takes a lot time. So, it completely depends on what your goals are.

That's all the knowlege I have for you at the moment. Do like the video if you liked it. Dislike the video, if you didn't. Share the video with your friends, co-founders and teammates and don't forget to subscribe!

Comment below about what your opinion is on this subject and if you would like to sponsor my cup of coffee for tomorrow morning, you can buy me one at the link below.

Thanks for watching and I will see you in the next one. Peace.