На мой взгляд, лучше всего навыки коммуникации у программистов развивает командная разработка. Когда ты работаешь в продуктовой команде, тут практически нет вариантов: либо ты активно коммуницируешь с другими членами команды и заказчиками, либо ты просто не сможешь выполнять свои задачи, и, в конечном счёте, станешь бесполезен команде. Конечно, есть жёсткие интроверты, которым тяжело (а может и невозможно) себя перебороть, такие люди ответов и помощи могут поискать, наверное, в области психологии.