Over the last few years, I've noticed a change in how I approach my work as a developer. When the team gets together to review upcoming work, I'm more willing to ask questions when something doesn't sound right, instead of just convincing myself that everyone else "gets it". When someone opens a pull request, I spend more time reviewing the original requirements and looking at every change. When I learn something new about a project I'm involved with, like where the code will be deployed, or why certain requirements exist, I document it.
It sounds diligent, or at least I hope it does. Maybe it sounds pedantic, or a little OCD? But I'd suggest it's something else too - laziness. And maybe self-preservation, lol.
With any development project, there's a somewhat linear (and somewhat downhill) progression from start to finish, especially on moderately sized teams with a concept of planning, coding, merging, testing, releasing, etc. It's easier to plan before any code is written, to fix the code before it's deployed for testing, and to test it before going to production. The further things travel down the hill, the tougher it is to haul them back up, especially when it's due to something missing or unclear that should've been called out ages ago. Do that a few (or a few dozen) times, and you start to feel like Sisyphus, rolling a big ball of code uphill for all eternity.
So sure, my (and anyone else's) attention to requirements, PRs, and whatever else is diligence.. but it's more than that too. Once you've run around the hamster wheel a few times, and seen others run it too, you learn that laziness isn't all bad, and that a little more work now means far less work later.