Instead of excuses, provide options. Don't say it can't be done, explain what can be done.
You can't just say "no" to your boss, but you can say "I can't do that, but here's what I can do instead."
Fix bad designs, wrong decisions, and poor code when you see them.
It is too easy for bad code to become a permanent part of a codebase. Fix issues when you find them. The next time you find yourself writing code that isn't up to par, at least add a comment to fix it later, or even better, fix it right then and there.
You can't force change on people. Instead, show them how the future might be and help them participate in creating it.
Be the change you wish to see in the world. This goes for software as well as the actual world.
Don't get so engrossed in details that you forget to check what's happening around you
It can be easy to get distracted by things that don't matter, so take the time to set your priorities straight.
Involve your users in determining the project's real quality requirements
This is something you need to explore with users when you're doing things. No software is perfect, real world software is too complex to be. Discuss with your clients what they need, and what imperfections they can live with.