Along the same lines, some people think it's okay for programmers to be poor communicators b/c, well, it's all mumbo jumbo to them anyhow. You can put some social reject in a back room, give him a laptop, and come back to find something seemingly working in a few weeks. What's the issue?

This is your company, daggum managers! Think about it -- often your doctor feeds you stuff you can't make heads nor tails of, and often people will just accept whatever prescription the doctor writes out without thinking twice. Am I saying you should you always second guess your doctor? Not at all! But you should prefer a doctor that can turn the mumbo jumbo into something you can understand. It's your body; it's your life. You should be informed, and your doctor should take the time and have the communication skills to make sure you're exactly that. The is the context that lets you make more informed decisions about your life after the visits. Your trip to the doctor just became that much more useful.

Same with programming and codebases. Know what's in your codebase. Comment it. Document it. Discuss it. Combine communication with code. It's no different than any other job. Don't let your programmers steamroll you like a doctor without a bedside manner!