Bingo.
I have done a good deal of studying of UX, I come from a background in testing, and I am now a developer.
Systems I design take all three disciplines into account. A junior UX team asks for something wonky in V1 of their spec, I code it to spec, and then make allowances for what V2 is likely to actually do. Typically a few extra fields in a struct, or designing a state machine to be a bit more flexible than strictly necessary. Maybe I break some logic out of the main class into a secondary independent one that can be passed around.