Massive generalisation coming: Designers are often ten steps behind engineers in the discipline of shaping and shipping software.

Engineers internalise the things below quickly, because they have so much more skin in the delivery game. But these things affect the experience, product strategy, and learning loop massively:

  1. Small batch size and continuous integration to reduce risk and speed feedback
  2. Walking skeletons to flush out obstacles
  3. The magic of pairing on a problem
  4. The power of example-driven design and working with real scenarios and data
  5. The feedback and ideas you get from testing in the real medium (real code not Figma)
  6. Considering how to make tools safe to use, avoiding risks of data destruction
  7. Consistency boundaries: where data should agree with itself and where it can become eventually consistent instead
  8. Capturing intent and events instead of mutating state and losing history
  9. Defining safe migration strategies and rollout plans to move users and data from old features to new
  10. Stress testing a design with edge cases
  11. Thinking how a design will respond to screen sizes, text sizes, translations, accessibility
  12. Modularisation and reusability of UI
  13. Conceptual/data models - the relationship and cardinality of objects which has a massive effect on the interactions and layout

You can learn all this by being really tightly integrated with a high-performing engineering team. But I don't see that very often. Instead it's quite common to see designers retreating into their world of Figma, and leaving all the stuff above to the engineers…

And then wonder why their precious design is twisted and compromised by that other team.