Well I do what I can in my positions to improve that. That is within my reach, and that's my goal.
I can't always succeed. It's not like I ever get to talk to end users to ask what would make their lives easier. But that's my goal. I just had to fight for some UI changes that I think make the UI easier to understand and interact with and reduce code maintenance burden / fragility by relying on default control behaviors instead of custom code. Time will tell if I'm right.
I also fight back against the acceptability of 10 second response times when you click a button. Customers would never accept that, but you're going to foist that bullshit on users? Not on my watch.
And in code reviews I push back on every mutable or public field and public method that don't have to be. Don't give other code the ability to interact with your code outside of clearly defined interfaces. Build everything with concurrency in mind and to fail fast. Because a year from now, some other developer is going to abuse every interaction point they possibly can because tight coupling saves them an hour.
Even though so much is out of my hands in a cooperate environment, I take pride in the things I can control, and eventually I think that pays off. I'm 51. I'm not going to continue getting new contracts forever. I need a place to ride out the waning years of my career and I don't want to do it working on shitty software that I allowed to be shit.
What I really want is a way to push that philosophy beyond a single team, but I don't want to be in management, and I don't know how to make that happen. I did get offered a training position, but it paid half what I earn slinging code, and I'd be creating more value, not less.