I don't see this as a developer problem
Caveat : I am a developer.
And I have worked on rather big projects. And when you work on big projects, you have powerful people giving the green light on them. And these people generally do not like to hear that they "missed" something. Nor do they have any actual IT experience or even a clue. If you're lucky, they _do_ know what they want.
So what happens is they spend a few days in meetings - except they don't have the time so they let a subcommittee take care of drafting the details - then they waltz in and have every sycophant blabber about how complete the specs are.
So the project goes ahead. And it's urgent of course, and not enough days have been allotted to do it properly because nobody has the money to do things the right way.
So it's up to the coder to shoulder the difference, with his "experience". After all, they always hire "experts" for these jobs, right ? Except that, after 30 years of developing code, it's still up to a junior analyst to estimate how many days a given functionality will take to develop.
So the developer doesn't have the time to do the job, the time for testing is always ignored in favor of a rushed-out "beta" that goes into production almost before the "testers" have plonked their keyboards for a quarter of an hour and called in if they can't log on to the application.
And most of the time, if the developer calls into question any part of the specs, he'll get the "deal with it" look or worse, he'll be shouldered out of the project for "being a troublemaker".
Yeah, the developer really has a lot of power these days. I don't know what happened to the "diva" mentality, but I haven't seen much of that. I've seen a whole lot of nuthin' if it works, and even more whiplash if it doesn't. Yeah, that I see.
But diva ? Nope, got none of that around here.