Currently UX designers are often like chefs who work by drawing pictures of food and writing down conceptual recipes. When they've created a beautiful menu this way, they're surprised to find out that their recipes can't actually be made using the cooking equipment available, and some of the ingredients don't even exist. You're not going to run a Michelin-rated restaurant like that.
The industry desperately needs better UI development tools. To continue my (already strained) food analogy... Right now we are still in a "hunter-gatherer" stage where everyone does their own thing, teams are foraging and hunting, and occasionally they stumble on something great. Consistent UX will require an "agricultural revolution", a systematic production innovation that makes the essential pieces more understandable and repeatable in isolation.
Designers should definitely work with devs, if they are surprised their designs can't be implemented in the end, then that organization is REALLY dysfunctional.
We definitely need better UI development tools, but this is orthogonal to UX design, much of which doesn't even involve the aesthetics of the UI anyways.
Imagine if Apple hardware designers depended on their manufacturers to tell them what's achievable with aluminum and glass. Instead Apple has a small manufacturing facility in their design studio so the designers can iterate rapidly and actually understand what is possible.
Designers have their own tool chain to prototype UIs and user interactions, but these are not UI devtools.
You mention that designers have their own toolchains for prototyping, but these has nothing to do with UI dev tools. I've often wondered why this would have to be so.
Look at other advanced design fields like architecture and industrial design. It would be unthinkable today that professional architects would just draw a facade and not use CAD to actually model the structure. Similarly, it would be very unusual for an industrial designer to model a product using a toolchain that is entirely separate from manufacturing. The assumption today is that CAD and CAM work together, not separately.
Why can't we have the same in software? For my part, I've been trying to work on a solution in the form of apps like React Studio [1]. It's not there yet, but I'm convinced that proper software modeling tools will happen eventually.
> Why can't we have the same in software?
Because devs and designers have different needs.
Also, it's far more common that organisational culture, law, or the marketing department is a bigger constraint than the code stack. As a designer, I should consider my "medium" to be far broader than knowing some CSS, or I'm not doing my job.
Being a good designer is inherently being a generalist, and in being a generalist, the designer should understand some basic things about programming in order to have common ground. But that is certainly not the same as saying "designers should code". If designers should be programmers, then they should also be accountants, customer service, marketing, operations, lawyers, c-suite, and every other profession they interact with to solve a problem.
Designers should definitely code. Too much of design is siloed in fanciful thinking, and fancy people competing with fancy people over fancy things perpetuate delusion.
I am a designer who codes, in fact my background is UX and my job is as a developer. It's easy to think about implementation during design, for example, designing a web-app and knowing it will be implemented in Angular leads to thinking about how Angular will implement it, leading generally to modals everywhere, just everywhere. If I knew nothing about the technical implementation I wonder if it would be a smoother design process, possibly better results. But then I see so much poor design everywhere that I can never be sure if something was designed by a coder who knows little about design or a designer who knows nothing about implementation.
I make products that ship, people like, and can be further developed in both design and code by specialists. That's good enough.
To deliver a really great user experience, it's really important to not just look at the interfaces between the customer and your products, but instead try to figure out the "flows" and processes that leads to that the customer uses your platform or app.
In some domains, you will need an awful lot of domain knowledge, paired with UI design expertise, modeling and development skills to do just that.
Typically, it's very hard to find all this in one single person, so excelling in teamwork is always a good trait.
Does it enhance accessibility? Elucidate the IA? Or is it just more whiz-bang?
The current state of tools doesn't allow designers to think in terms of actual UI components and navigation structures. Instead, they are forced to draw pictures and make animated slideshows. This leads designers down a path of tweaking aesthetics because that's what their tools are designed for. (In this regard, newer apps like Sketch and Principle are not fundamentally different from Illustrator or After Effects.)
We should have tools that allow designers to think in terms of higher-level UX components with the confidence that the designs can always translate into code.
I worked on two products that came from this school of thinking, Neonto's Native Studio [1] and React Studio [2] (they're both variations of the same codebase really). I know someone will bridge this gap eventually...
[1] https://neonto.com/nativestudio [2] https://reactstudio.com