Communication is a very important skill - it's vital that a dev can communicate their thoughts to other people. If you want a productive team, having people who understand how to communicate is critical. But, ultimately, you can get by without that skill as a developer. I know many, many developers who do. Acting like a black box - specification in, working code out - can work for a developer. You'll never go very high up the corporate ladder, but some people are fine with that. Consequently, I think there's something more important that makes you a brilliant developer if you have it: Organisation.<p>If you want code that works, is maintainable, it easy to understand, to read and to use, employ someone who is naturally well organised. Badly organised code is the number one thing that makes projects late and products clunky. Little things like maintaining variable names across code blocks, using the same conventions across entire projects, actually commenting and documenting things, writing tests before writing code - those are organisational skills, and they make the difference between a good project and a brilliant project.