Let's say you are recruiting for a technical position. Whether it'sa developer, a DBA or a DevOps or any other genre. You found two fairly similar candidates. One is slightly better technically and the other one is a better communicator. Which one do you choose?
The Abstract
For me it's obviously the better communicator. Why? Considering the complexity of modern projects and work environment it is instrumental for the employees to talk easily to other people, to clearly describe their ideas and approach. And remember, we work on ever more abstract concepts, which are not that easy to grasp for our concrete-world brains. Back in the day when our brains evolved we've used to discuss mostly physical objects and some simple operations on them.
Nowadays for example we need to tackle problems like how do we adapt our PHP server frontend layer in order to support truly responsive HTML frontend. Or how do we create a universal logging solution so that we utilize our existing model classes on one side of the RabbitMQ bus, yet preserve the flexibility of different clients on the other side?
Moreover the ambitious, interesting projects are rarely the ones that a sole developer can deliver. Teams are becoming more diversified and it's members need to combine their efforts to ensure the successful delivery. In these kind of situations you really need people that can clearly articulate their own thoughts as well as understand other's points of view.