The simplest fix I've found: have engineers (backend included) watch one real user try the feature they built. Not a QA pass — an actual person encountering it for the first time. The disconnect between "it works" and "someone can use it" becomes viscerally obvious.
Most backend engineers I know actually care about this once they see it. They just never get exposed to real usage.