..or we need a new role
Can one person design&code and not get overstretched?
How should designers and developers collaborate?
Is “talking” frequently enough for good results?
Where exactly the design ends and development starts?
What is design and what is development?
This topic was my dilemma for years.
I have started my career with a title “Web-Master”, that means I could design the website and code it or adjust a Wordpress theme — a key skill set for a successful freelancer at the time. This is not unique, Brad Frost, the author of famous Atomic Design and many other nowadays designers started the similar way. At the time the best-designed websites were made in Flash, and those designers must have done coding themselves. In the end, there were problems with SEO, but it’s a different story.
With the time I have acquired the bulky title “UI/UX designer/ Frontend developer”. But the challenges kept growing too.
As a full-stack designer I’ve spent a lot of time not only keeping up with the new visual trends, different platforms, mobile apps have started to be more and more in demand. It was not a few pages websites anymore, creating more complex products you want to dive deeper into business and user research, work on product architecture, do user testing and keep an eye on analytics.
On the other hand in the frontend it was not easier. HTML/CSS/jQuery stack got replaced with a variety of frameworks and methodologies, they were popping up every month before Angular and React made the revolution. They raised frontend to the rank of proper engineering, and attracted lots of former Back-end developers to the field, those guys who are used to navigate with the command line and don’t think that interfaces are necessary at all. It changed the game completely. Frontenders who just wanted to build beautiful interfaces, responsive layouts with smooth interactions, but did not want deep dive into hardcore engineering, were doomed to stay on Junior level and were not receiving much respect either from Development or from Design Crowd. It was an identity crisis for many of them including myself.
There is still a huge mess in both fields. If you are a designer — you get overstretched into the research and business topics. If you are a developer — there is a whole new world of hardcore engineering opens in front of you.
Meanwhile, the gap between the two fields keeps growing. Designers and Developers live in different worlds, speak different languages and pretend that it’s the way it should be. The only touch-point is when designers shoot their pixel-perfect static mockups in 2 resolutions (mobile and laptop) with indicated with red margins and font sizes to developers and after come to check if everything was precisely copied into code. This discourages the latter to have an opinion about the visual part of the UI and only complain about unrealistic designers’ fantasy. It will never look the same in Sketch and in the Browser!
In the end, UI does not belong to anyone, the final outcome is always a compromise between Designer and Developer, which kills all the creativity of both. Plus it’s simply inefficient, a lot of time gets wasted for perfecting static pixels and lengthy communication. Some things that can be better done directly in code.
Is there a solution?
Let’s have a closer look at the Product creation cycle and Job titles reflecting different phases.
The more you are on the left, the more you zoom out to the big picture, therefore you are less focused on details. Yes, Design must start with understanding Business and User goals, focus on solving the right problems, it must unite all parts into a holistic product that results in seamless user experience. The more we zoom into details — such as UI for particular screens, responsiveness, visual details, buttons, font sizes, margins, interactions, the more challenging it becomes to keep an eye on the big picture.
But that’s exactly what is expected from so-called UX/UI designers — continuously zoom in and out. And it rarely works, most of the time we fall to a rabbit-hole of pixel-perfecting, but we miss completely the overall logic.
It gets even detail-focused once UX designers start working in Cross-functional teams in the same sprints with developers. UX and Engineering have a different pace, it can’t be worked on in parallel. But UI and Engineering can and must— feel the difference!
In most teams, one person is responsible for several steps. For some reasons, it’s fine to combine UI design role with UX role, but not UI design with UI development.
As you can see on the picture, UI design stands much closer to Frontend development, than all those Business Strategy, Ideation, User research etc. Why not instead of overstretching UX/UI designers, connect UI with development and create a bridge-role — UI engineer, Creative Frontend Developer if you like — a role that will truly own the visual experience, UI and Interaction design+development as a whole. UI development can be creative and fun, much more fun than pushing static pixels in Sketch.
For example one UX designer can ideate on larger product parts without diving into UI details, and UI engineer can cover them all in a more consistent way.
And it’s relevant only for awwwwards-kind-of-websites, but for product companies too. I am sure we will see a lot more beautiful consistent UI, truly responsive interfaces, smooth interactions. The code is more powerful and flexible than any prototyping tool.
How can we do it?
Praise designers who want to code, praise developers who want to design Even More — because they much likely start designing then designers coding, from my experience. If you happen to work with a designing developer, give him row mockups, even wireframes so the details can be finished in code. Work together on the design system instead. And the most difficult part — convince developers to separate the logic from the UI and give the designing developer ownership of the latter.
And the last thing — it’s good for your brain.
Design involves the left, creative side of the brain and development the right one, responsible for analytical skills. So practising design will help developers find new original ways for solving the problems, and coding will enable designers to make more rational decisions and help them with critical thinking.