I think the notion of developers being 'weak communicators' is a bit too simplified. It suggests that if developers were better communicators, then things would move faster & better forward. But the fact is that the audience of non-developers tends to have a completely different mode of thinking, and indeed a different set of targets. Developers would like to see organizations as machines to give instructions to. Non-developers more often see organizations as ladders to climb. It would indeed be a miracle to persuade the latter people into machine-like thinking without a total cultural shift.