All is true. But please, nobody comes from doctors saying they're bad communicators. They say that they are educated. Some people accept that they don't understand and just heed the advice or ignore it altogether or something in between, while others try to learn enough about medicine to understand what the topic is.
But everybody is an expert on software - since their mother told them so. I'm sick of being patronized by people who refuse to pick up the tiniest bits of the craft saying "no, no, no - that's not my job" - while they are clearly working in a field they haven't the slightest clue about.
Software has to be the only field where ignorance is used as a badge of honour: "I don't need to know anything about how it's done, I'm a project manager."
I'm an excellent communicator, I can figure out how to talk to anyone about anything (I'm a hustler by nature), but when people start talking down to me on a topic I dedicated half of my life to. I make them remember.