I agree that this presents a false dilemma. In software engineering, communication is not just about collaborating, it’s essential for effective knowledge transfer within IT teams. Knowledge sharing ensures that best practices, architecture decisions, and project insights are disseminated, reducing the risk of siloed expertise and single points of failure. A strong communicator, even if a mediocre IT engineer, can facilitate this process by documenting, explaining complex systems in layman’s terms, and ensuring team members are on the same page. They help onboard new developers and make sure knowledge is retained, which is crucial for long-term team resilience and scalability. On the other hand, a brilliant engineer with poor communication skills could inadvertently hoard knowledge, limiting the team's collective growth and causing gaps when they leave or transition. Effective knowledge transfer is what keeps teams adaptable and prepared for future challenges, so I'd prioritize communication skills in those cases where collaboration and learning are critical to success.
“If someone was a very good communicator but a terrible software engineer would you hire them?” I was asked this recently and I think it’s a false dilemma. I have never met a good communicator that doesn't have the core skills for their domain. The reality is, to be a good communicator, you need to understand what you are communicating about. Therefore the great communicator, terrible software engineer doesn't exist. The closest you get is great communicator and mediocre software engineer. I'd take them over great software engineer with terrible communication skills any day.