If you’re reading this, you’re probably not a horse. Maybe you code, maybe you don’t. Maybe you design, maybe you don’t.
In an ideal UX world, everything stems from the design… everything should be brought in to support the design. I have heard over and over again, that “The technology being used should support the design”. I agree, everything should support the design however, in reality, this “order of things” rarely exists. In reality, the product and/or technology has already been purchased or re-purposed, not that I am suggesting that this is the right way to do things, but it happens… a lot.
In reality, I am frustrated when a designer brings me a design with no forethought as to whether the product or technology being used can support the interactions of the design.
In reality, I am frustrated when an architectural solution is developed with no regard for the goals of the user, or the types of data interactions that are necessary to support the user.
That being said… if there has to be a winner… the user must win. If, at any point, the user is prevented from accomplishing their goals, then how well it has been designed, or how well the back end architecture has been developed are irrelevant.
A good designer understands the limitations of the systems and machines that their designs are slave to. A good developer understands that the needs of the user come before that of the systems. Adhering to system requirements, at the expense of usability, inhibits innovation.
If you’re not building it for the user, then who are you building it for?