In my last two jobs I refused to have deadlines. It's done when it's done and there is no one that can do anything about it. Companies need to accept this.
There’s some value in giving constraints to junior developers. There’s some value in getting senior devs to look at the calendar and re evaluate their plans. Estimates can trigger both of these, but they trigger bad consequences as well.
Personally I’ve found that an engaged boss who I respect and occasionally points out I’ve sure been working on X for a while, is everything okay? To be at least as helpful as schedules. But if I could figure out how to get that consistently, I’d be on a book tour instead of keeping an eye on some people doing a deployment while I should be in bed.
What we never ever learn is that never doing something is not an antidote for doing it all the time. It’s just exchanging one stupid extreme for another.
My suspicion is that it has something to do with learning the wrong lessons from Boolean logic. The principle of the excluded middle applies to bits, not process.