You all know that moment when you have trouble with your car, and you need to take it to the mechanic. So you get there, the mechanic opens the hood, takes a look, and is like, you need to replace, and then says some random thing you've never heard about, but you "trust" him, I guess, I mean, that's his job, what can go wrong, right? So a day later, he changes some simple element that requires 5 mins to replace. Still, since you have no idea about the cars, he was able to sell you something nonexistent, and you drive off home, thinking all is good, but deep down, you know that might not be the case.
This situation reminds me of how designers and developers communicate and understand each other's roles. Is there some beef between design and dev teams, and why most of the time, everyone looks at their yard and just does things without actively communicating with the other party? In situations like this, we start to push tasks from one department to another as if our job is done on the product, like we want to move the responsibility to someone else. Things sometimes function like that, and that’s reality, but be involved in what you do, don't just do it so you earn the pay at the end of the month.
Ok, I wanted to take that off my chest. I wanted to discuss the importance of understanding each other and the logic behind our work. In my humble opinion, being a designer is not about:
Knowing how to use software
Moving elements around
Saying if something is looking good or not
Blindly following clients' needs
etc. etc...
There is much more to it. So, how to say this, if you are a designer but are doing it just to earn money, then I have nothing to say to you. I wish you all the best. But, on the other hand, if you are a designer because you like to solve problems because you are motivated to improve and find new ways to how you can upgrade current design processes or things like that, then I would like to offer you some suggestions that, hopefully, can help improve yourself as a designer.
Ok, I can now write things that we all know, like "Always learn new things," "Be adaptable and flexible," "Build empathy with users," and "Develop a strong foundation in design principles," like no s**t Sherlock, of course, you have to do that. But what helped me a lot, and took some time to understand, is that learning other skills apart from design will help you build that problem-solving mind frame. What do I mean by other skills? Things like communication, psychology, business, and, whether you like it or not, programming.
Now, I want to focus on this last skill, programming or development or coding, whatever you want to call it. In product design, where we build end-to-end products, a designer is not a stand-alone person who lives in a bubble and does not interact with the rest of the team. Instead, the designer is a social creature that interacts with the whole team and creates products. So why understanding a developer's logic can significantly improve your skill? Because you begin to take more control of the products, you learn how everything works in the background, how components are built, what the restrictions are, etc. One of the main things is that you significantly narrow the room for error and start building consistency and discipline in your product.
The position that I take when working on the project is that I want to create a strong base and remove all the unnecessary work from the dev team as much as possible. What does that mean? That means I would architect components in Figma with the dev logic; I would remove all the cosmetics things from them and let them focus on the logic. I would set up a strong base with design tokens and other styles so I can be the one who is responsible for maintaining and updating. So if in the future we decide to change some style, I will be the one who will do it. For example, updating design tokens in Figma and pushing those changes on the git so the dev team can pull it and continue their work.
This is just one example. When you start speaking the dev language, you will understand better the whole logic, and everything you build will be more structured and thought through. We as a designer shouldn't just move pixels around but be actively involved in the development and try to work alongside the dev team.
Understanding development logic can help you create more effective designs, collaborate better with developers, and create better user experiences. So here are some tips on where and how to start:
Learn the basics of HTML and CSS - you don't actually need to code anything yourself but understand how it functions, what are best practices and some conventions. Consider reading this CSS style guide from Harry Roberts.
Speak with your dev team - Ask them to explain how they build components, what the logic is, and what you should do on your side to help them move forward more easily. There are a lot of programming frameworks, and each has something of its own, and no worries, you don't have to know all of those, but you should always strive to understand the base logic.
Knowing other skills apart from the design ones can massively help you improve as a designer. In this example, I glanced at how important it is for a designer to understand development work and how it benefits the whole team and product. Take control of what you can and strive more towards setting the entire design strategy and base rather than just focusing on what the end product will look like.
Enjoy the process! Stay healthy!