| > It's very difficult to create good UX by design because evaluating the system by imagination is much harder than with an implementation. This is precisely why it’s a tragedy that the roles in software development have become so compartmentalized. It wasn’t that long ago that the same person designing an interface was also responsible for developing it. Or that design and development were one and the same, part of the same process. These days, many “UX designers”, “UI designers”, and “product designers” have never written a line of code. Some even have an allergic response to the very idea of coding. That’s fine, but naturally it means there’s a wide gap in understanding between design and implementation. This leads to the UI equivalent of the dreaded Architecture Astronaut[1]—so disconnected from the reality of how software works and is built that they design absurd interfaces that look great in Figma but fail miserably when put into practice. In my experience, the closer you are to the implementation—and by this I mean the more involved you are in the actual coding—the tighter the feedback loop on the quality of the user experience. It affords the sanding and polishing required for a great UI with a great experience. Some of the very best interfaces that I’ve seen and used, both in terms of quality user experience and visual design, were designed and built by those rare engineers that happen to have outstanding intuition and taste for great design. The worst UIs I’ve used are from designers that don’t code handed over to engineers with no design taste. [1] https://en.wikipedia.org/wiki/Architecture_astronaut |
To me, "UX" still feels like a relatively new term. In its modern incarnation it's not what I do, although by intent it's actually my career speciality. As a category now, it feels like a poor compromise between true design and true code/userflow. I believe the existing tools try to bridge a gap that has existed since the earliest days of web development between the designers and the code monkeys.
I'm fortunate as a solo coder to have a very tight feedback loop with my own graphic design, but I wouldn't have it any other way. I started writing code making text-based games as a kid in the 80s, then became obsessed with graphic design, went to art school, worked as a designer at a traditional ad agency which had no coders... and because of my code competency became the go-to person for making web. And later apps. So I still currently art direct designers and also write the majority of code for clients. This lets me understand the flow first and then unify the design in ways that aren't prefab or obvious, but ensure user safety and flow in a beautiful way.
I think the tools now (Figma, yes, but also the reliance on standard use cases of frameworks like React) are very limiting. They shoehorn both designers and coders into an uncomfortable middle ground that's not too different from the arguments that used to erupt between designers and the couple of devs at my ad agency in the 90s - we want it to look like THIS vs. Do you know how impossible that is? So everyone settles on a crappy solution instead of sitting down and thinking about how to make something new and better for the situation.
Honestly, Flash was so great because it allowed both sides of a team to use both sides of their brain at the same time, and cross-pollinate design with code in a way that seems hopelessly lost now, at least for normal business apps outside of game development.
There aren't so many cases where business-y or banking software needs to be beautiful, but it could at least be thought through. I look at my banks' apps and sites and slap my face at the obvious miscommunication and sheer carelessness that must have taken place between management, design, and code to produce these monstrosities.
But would I want to be on the open market, looking for new clients with my cross-disciplinary background as a "UX" person? No. What they need aren't UX people. They need art directors who can at least write some code, or (even more rare) coders who have formal design training.