Designer vs Developer
There is a common misconception that designers and developers are opponents, but in reality, they should be working together toward a common goal. This mentality can lead to conflict or rivalry between the two teams, which is unnecessary and detrimental to the quality of the product.
However, it's not always the case, as there are scenarios where there is no conflict or rivalry between designers and developers. I think it happens in two cases:
- If designers don't care how it's going to be implemented, so they just provide UI designs to developers who implement it in a way they want, or
- Two teams already have a great collaboration
Designers and developers should be on the same page as they are building the same product and both should strive for the best quality and the best user experience. This can only be achieved through collaboration and mutual understanding.
Why is this happening?
Designers and software developers have different backgrounds, training, and perspectives, which can lead to a lack of understanding and difficulty in collaboration. This is due to the fact that each of them have their own unique mental model, which is shaped by their beliefs and experiences. These mental models inform how they approach a project and can result in different goals and priorities.
In order to understand the differences in how software developers and designers approach product development, I have attempted to simplify the processes and compare the perspectives of each team.
This is an oversimplified and funny representation and not meant to fully capture the complexity of each team's thought process. The goal is to make the article accessible and understandable for a broad audience
POV: Developer
From a developer's point of view, they are focused on crafting top-notch code, staying ahead of the tech game and making sure the performance is on point. They're also under pressure to deliver on time and make the stakeholders happy.
But then, out of nowhere, here comes this designer dude, asking them to add some cool animations and blabbering on about some wierd design principles and the importance of white space. Developers might think to themselves, "Ugh, seriously? Can't we just stick to the code?"
POV: Designer
From a designer's perspective, they are constantly thinking about the end user and how to create the best possible user experience. They conduct user interviews to gather feedback and validate their assumptions, but often find that their initial ideas were off-base. This leads to a cycle of iterating and testing concepts.
But just when they think they have a solid solution, stakeholders change their minds and designers have to find a way to balance the needs of the business with those of the users.
Designers are then forced to make trade-offs, which can be a headache and a time-suck. They might think to themselves, "Ugh, can't we just stick to the design? And for goodness sake, can you at least get the spacing and shades right?"
Trade-offs, trade-offs, trade-offs…
How can we change? How can we improve the collaboration?
To foster successful collaboration between designers and developers, the best approach is to involve both sides in the other's process. By learning how each one works, as well as their struggles, we can better understand their mental models and create a smoother product development experience.
Involve developers in the design process and vice-versa involve designers in the development process.
Designers coding and developers designing?
Many times I saw people discussing if designers should code. As I mentioned that we should involve each other on both sides of the product development process, this question naturally pops up - should designers code, and should developers design?
Do developers need to know how to design?
While developers do not need to have the same level of design proficiency as trained designers, it is important for them to understand the fundamentals of the design process and to appreciate the importance of user feedback.
Design is not only about aesthetics, it also encompasses creative problem-solving, which anyone can do. A lot of times I could hear ’I’m not creative", or "I can't draw nice", and similar. Creativity isn't about nice drawing nor it's reserved for designers only.
Anyone can be creative, so don't underestimate developers' potential! They can often surprise us with their creativity and willingness to learn new skills, so designers should involve them in the creative process. Doing so can open up new possibilities and bring unexpected ideas to the table.
Do designers need to know how to code?
This is one of the hot topics on the internet and I witnessed many discussions around this topic as well as many different opinions.
I often like to compare architecture with design, so I use it as an analogy. Can you imagine an architect or interior designer who doesn’t understand how to build a house, or which materials are available and can be used for specific purposes? If you ever had a chance to work with architects on a project you would agree with me and say - no.
It’s super hard to create a usable and even harder feasible design. Can you imagine an architect who’s defining walls without knowing basic stuff about materials, electric installations, water installations, and similar? I think what would come from someone who doesn’t know the basics of other disciplines is very bad design and a lot of changes and iterations, just because of not knowing basic things about other disciplines.
To get to the point, I believe all designers should be able to understand how the product they design is getting developed and the basic constraints in order to make better decisions.
I also saw many designers who can code and develop things on their own, but it isn’t necessary for all designers.
Designers often focus more on some specific areas of design, so some designers are better at visual design, some of them focus more on research and some designers focus on the technical aspect of the product design and development. These technical-oriented designers nowadays have even their own role.
Design Engineering - a hybrid role that sits at the intersection of design and development
These roles require a deep understanding of both design and development; designers should have a basic understanding of development and developers should have a basic understanding of design.
Brad Frost in his blog post split front-end development roles to:
- front of the front-end developer
- back of the front-end developer
I think Design Engineer perfectly fits into the front of the front-end development role. Their responsibility lies in the presentational part of the front-end development. As Brad describes in his post, they mostly focus on accessibility, CSS, collaboration with designers, UI component libraries their architecture, and reusability/composability.
To sum things up
Designers and developers often have different mental models which can lead to conflict and difficulty collaborating on projects. To foster successful collaboration it is important to involve both sides in the other's process and better understand their respective mental models. Designers should understand the fundamentals of development, while developers should understand the fundamentals of design.
Get in touch
If you have any questions or you want to see more information about projects, feel free to reach out to me.