Soft skills para devs: comunicação é tão importante quanto código
1. Por que comunicação é skill técnica (e não “bônus”)
O mito do “gênio isolado” ainda persiste em muitas culturas de desenvolvimento. A imagem do programador que resolve tudo sozinho, com fones de ouvido e sem falar com ninguém, é romântica, mas profundamente ineficaz no mundo real. O custo de um dev que não se comunica bem é mensurável: retrabalho por requisitos mal interpretados, horas perdidas em reuniões de alinhamento que poderiam ser evitadas, e bloqueios que poderiam ser desfeitos com uma simples mensagem clara.
Documentação, code review e alinhamento não são atividades “administrativas” — são parte do fluxo de entrega. Um Pull Request mal descrito gera mais perguntas do que respostas. Uma especificação vaga leva a implementações erradas. Um dev que não pergunta “por quê?” entrega código que resolve o problema errado.
Estudos informais em equipes de tecnologia indicam que até 40% do tempo de um desenvolvedor pode ser perdido em desalinhamentos de comunicação. Isso não é “soft” — é custo direto de produção.
2. Escuta ativa e perguntas estratégicas no dia a dia
A diferença entre ouvir e escutar é sutil, mas crucial. Ouvir é captar sons; escutar é processar significado. Em reuniões de requisitos, suposições são o maior inimigo. Um pedido como “faz uma tela rápida aí” pode significar coisas completamente diferentes para um product owner, um designer e um desenvolvedor.
A técnica das 5 perguntas transforma pedidos vagos em especificações acionáveis:
- O quê? Qual é a funcionalidade exata que você espera?
- Por quê? Qual problema de negócio isso resolve?
- Para quem? Quem vai usar isso e em que contexto?
- Como medir? Qual é o critério de sucesso?
- Quando? Qual é o prazo real e os marcos intermediários?
Exemplo prático: transformar um pedido vago em especificação clara.
Pedido original:
Cliente: "Precisamos de uma tela de relatório rápido. Faz aí pra mim."
Após escuta ativa e perguntas estratégicas:
Dev: "Entendi. Para eu conseguir entregar algo útil, preciso entender melhor:
- O quê: é um relatório de vendas por período?
- Por quê: o gerente precisa acompanhar metas semanais?
- Para quem: só o gerente ou a equipe toda?
- Como medir: os dados precisam ser exportáveis?
- Quando: precisa para a reunião de segunda-feira?"
Com essas respostas, o dev não apenas entrega o que foi pedido, mas entrega a solução certa.
3. A arte de dar e receber feedback técnico
Code review é uma das ferramentas mais poderosas de comunicação técnica, mas frequentemente é mal utilizada. Quando vira fiscalização ou competição de ego, perde seu valor. O objetivo não é apontar erros, mas compartilhar conhecimento e melhorar o código coletivamente.
A estrutura SBI (Situação, Comportamento, Impacto) é eficaz para feedback técnico:
Situação: "No PR #42, na função `calcularDesconto`, linha 37..."
Comportamento: "...você usou um loop aninhado para comparar listas."
Impacto: "Isso pode causar lentidão com grandes volumes de dados. Que tal usarmos um Set para busca O(1)?"
Receber críticas sem defensividade é igualmente importante. Quando alguém aponta um problema no seu código, lembre-se: a crítica é ao código, não a você. Agradeça, peça exemplos e transforme o feedback em aprendizado.
4. Comunicação em momentos de crise: bugs, prazos e mudanças de escopo
Bugs acontecem. Prazos estouram. Escopo muda. A diferença entre um profissional maduro e um iniciante está na comunicação durante a crise.
A técnica do “semáforo” é simples: avise cedo, com dados, e ofereça alternativas.
Comunicação ruim de um bug crítico:
Dev: "O sistema quebrou. Não sei o que acontece. Estou tentando arrumar."
Comunicação eficaz (técnica do semáforo):
Dev: "Identifiquei um bug crítico no módulo de pagamentos (vermelho).
Impacto: transações estão sendo rejeitadas desde as 14h.
Causa: mudança na API do gateway.
Alternativas: (1) rollback imediato da última release, (2) hotfix em 2 horas.
Recomendo opção 1. Aguardo decisão."
Negociação de escopo também exige comunicação clara. Quando o prazo não vai caber, não espere o último dia. Diga cedo, com dados:
Dev: "Para entregar tudo até sexta, preciso de 3 dias extras.
Sugiro priorizarmos as funcionalidades A e B (80% do valor de negócio)
e adiarmos C para a próxima sprint. Concorda?"
5. Documentação que realmente ajuda (e não vira lixo digital)
Documentação não precisa ser enciclopédica. O mínimo viável inclui: decisões arquiteturais, “porquês” e contexto. Nada de descrever o óbvio.
Um README eficaz:
# Projeto: API de Pagamentos
## Por que existe
Processa transações B2B com suporte a múltiplos gateways.
Decisão arquitetural: usamos filas (RabbitMQ) para garantir resiliência.
## Como rodar
docker-compose up
## Decisões importantes (ADRs)
- ADR-001: Escolha do gateway Stripe (ver /docs/adrs)
- ADR-002: Cache Redis para taxas de câmbio
## Contato
#team-pagamentos no Slack
ADRs (Architecture Decision Records) são documentos curtos que registram decisões e seus motivos. Ferramentas como docs as code (MkDocs, Docusaurus) mantêm a documentação viva e versionada junto com o código.
6. Comunicação assíncrona e escrita clara para times remotos
Em times remotos, a comunicação escrita é o principal canal. Mensagens mal estruturadas geram dezenas de perguntas de esclarecimento.
A técnica “contexto + pedido + deadline” é simples e eficaz:
Mensagem ineficaz:
Dev: "Alguém sabe como resolver esse erro de CORS?"
Mensagem eficaz:
Dev: "Contexto: estou integrando a API de pagamentos com o frontend.
Erro: CORS bloqueando requisições de localhost:3000.
Pedido: alguém já configurou CORS nesse projeto? Se sim, onde?
Deadline: preciso resolver até amanhã às 10h para o deploy."
Quando escrever um documento vs. marcar uma reunião? Regra prática: se a resposta pode ser dada em texto, escreva. Se a discussão envolve múltiplas opiniões e decisões complexas, marque reunião. Mas sempre com pauta definida e tempo limitado.
7. Apresentações técnicas para diferentes audiências
Falar para devs é diferente de falar para gestores ou clientes não técnicos. Adaptar a linguagem é essencial.
Estrutura de uma proposta técnica clara:
Problema: O módulo de relatórios está lento (5 minutos para carregar).
Solução: Implementar cache com Redis (reduz para 2 segundos).
Trade-offs: Custo adicional de infra (~R$200/mês) vs. ganho de produtividade.
Próximos passos: Se aprovado, implemento em 2 dias.
Para audiências não técnicas, use analogias. Explicar cache é como “guardar respostas prontas em vez de calcular tudo de novo toda vez”. Explicar microsserviços é como “ter equipes especializadas em vez de uma pessoa que faz tudo”.
8. Comunicação como alavanca de carreira
Não é injusto: devs que se comunicam bem sobem mais rápido porque resolvem problemas reais, não apenas problemas de código. Um dev que escreve documentação clara, participa de code reviews construtivos e consegue explicar decisões técnicas para stakeholders não técnicos entrega mais valor.
Construir reputação técnica vai além de código. Writing (artigos, documentação), mentoring (ensinar outros devs) e talks (apresentações em eventos) são formas poderosas de comunicação que alavancam carreira.
Checklist prático para melhorar suas soft skills de comunicação:
[ ] Antes de perguntar, tente responder com pesquisa própria
[ ] Em code reviews, use a estrutura SBI
[ ] Em mensagens assíncronas, use contexto + pedido + deadline
[ ] Documente decisões, não código óbvio
[ ] Peça feedback sobre sua comunicação
[ ] Pratique explicar conceitos técnicos para não técnicos
Comunicação não é um “bônus” no currículo de um desenvolvedor. É uma skill técnica essencial, que impacta diretamente a qualidade do código, a velocidade das entregas e a saúde da equipe. Invista nela com a mesma dedicação que investe em aprender uma nova linguagem ou framework. O retorno é imediato e duradouro.
Referências
-
The Art of Code Review: A Guide for Developers — Guia oficial do Google sobre práticas de code review, com foco em comunicação construtiva e eficiente entre desenvolvedores.
-
Writing Effective Documentation for Developers — Guia da comunidade Write the Docs sobre como criar documentação técnica clara, útil e que não vira lixo digital.
-
Crucial Conversations: Tools for Talking When Stakes Are High — Metodologia baseada em anos de pesquisa sobre comunicação em momentos de crise, aplicável a bugs, prazos e mudanças de escopo.
-
Remote Work Communication Best Practices — Guia da Basecamp sobre comunicação assíncrona eficaz para times remotos, com técnicas práticas de escrita clara.
-
Architecture Decision Records (ADRs) — Documentação oficial sobre ADRs, uma técnica leve e eficiente para registrar decisões arquiteturais e seus porquês.
-
The Five Whys Technique for Root Cause Analysis — Técnica originada no Toyota Production System, adaptada para desenvolvimento de software como ferramenta de escuta ativa e perguntas estratégicas.
-
SBI Feedback Model: Situation-Behavior-Impact — Modelo de feedback do Center for Creative Leadership, aplicado aqui a revisões de código e comunicação técnica.