18 pontos por GN⁺ 2025-06-06 | 4 comentários | Compartilhar no WhatsApp
  • Equipes grandes centradas em especialistas sofrem com dependências internas, falhas de repasse, gargalos e responsabilidade difusa, o que leva a uma queda acentuada de produtividade e eficiência na colaboração
  • Em reuniões diárias de stand-up, grande parte do conteúdo se torna desnecessária ou entediante; com o aumento da equipe e da especialização, surgem desconexão na comunicação e desinteresse
  • Houve várias tentativas, como separação por tecnologia (front/back-end), feature teams temporários e uso de consultores externos, mas no fim a mudança para papéis mais generalistas foi a que trouxe o efeito mais prático
  • A colaboração em grupo, como Mob programming, incentiva compartilhamento de conhecimento, autonomia, senso de responsabilidade e motivação, sendo mais vantajosa para colaboração orientada a resultados e crescimento do que insistir em uma única especialidade
  • Ainda assim, existem efeitos colaterais da generalização (redução da especialização, risco de burnout), e experimentação contínua e melhoria cultural são indispensáveis

Os problemas quando a equipe fica grande demais

  • Problemas que começaram em uma equipe grande de 14 pessoas: a maior parte das conversas no stand-up era desnecessária, e falhas na transmissão de trabalho e tarefas informais ocorriam com frequência
  • Mesmo mudando para stand-up assíncrono (Slack etc.), perderam-se conversas essenciais e oportunidades de colaboração, e o ritual acabou virando apenas um relatório

Vários experimentos de divisão e operação

  • Separação por tecnologia (Task Force): dividiram entre frontend e backend, mas surgiram imediatamente problemas de interdependência, além do aumento de tempo com participação em stand-ups adicionais
  • Feature teams temporários: realocação temporária de pessoas conforme a implementação de funcionalidades específicas, o que gerou problemas de manutenção e gestão de recursos
  • Entrada de consultores externos: mesmo com a equipe já grande, a operação continuou ineficiente, impulsionada pela pressão da alta gestão para aproveitar recursos

A solução que no fim funcionou melhor

  • Adoção do modelo de generalistas em vez de especialistas
    • Em vez de separar funções como frontend, backend, QA e DevOps, a equipe passou a compartilhar o conjunto de habilidades em torno de um mesmo objetivo/produto
    • Isso possibilitou compartilhamento de conhecimento, menos dispersão de responsabilidade, eliminação de gargalos e entregas mais rápidas com mais qualidade
    • Colaboração coletiva, como Mob programming, fortaleceu comunicação, autonomia e senso de ownership

Por que os generalistas foram eficazes

  • Contexto e objetivo em comum: mesmo em áreas novas, a curva de aprendizado foi suavizada por ter o mesmo produto/objetivo como referência
  • Necessidade limitada: bastava aprender ferramentas específicas (como CI/CD); a prioridade era produtividade e manutenibilidade, não especialização profunda
  • Atendeu aos 3 elementos da motivação (autonomia, domínio e propósito), apoiando o senso de dono e o crescimento da equipe
  • Cultura igualitária: acesso equitativo, aprendizado autônomo, distribuição de autoridade e responsabilidade, aprendizado coletivo
  • Os 3 elementos da responsabilidade (conhecimento, autoridade e responsabilidade) ficaram claros, permitindo resultados rápidos e de alta qualidade com base em ownership

Efeitos colaterais e limites

  • Saída de especialistas: a generalização não serve para todo mundo, e pode causar burnout e sobrecarga de recursos em algumas pessoas
  • Menor profundidade técnica: ao lidar superficialmente com várias stacks, a proficiência profunda em uma área pode ser prejudicada

Conclusão e lições

  • Não existe solução única, e uma cultura de experimentação e melhoria é mais importante
  • Os pontos fracos do modelo especialista (gargalos, ruptura na comunicação, trabalho de fachada, perda de contexto) podem ser mitigados com generalistas e colaboração coletiva
  • No fim, o modelo ideal pode variar conforme objetivos, pessoas, orçamento e características do produto
  • O essencial é uma cultura de experimentação aberta, feedback e melhoria contínua

4 comentários

 
codemasterkimc 2025-06-06

Eu sou um generalista, mas o que senti na prática é o seguinte.
O que é útil é o generalista, mas quem realmente tem seu "valor" reconhecido é o especialista.
Mesmo vindo da mesma universidade e com as mesmas notas, a realidade é que, no fim, os especialistas recebem remunerações 2 a 3 vezes maiores.

 
kandk 2025-06-09

Eu também penso de forma parecida.
Mas, na minha opinião, no caso de software, a menos que seja deep tech nos EUA, especialistas não parecem ser realmente tão especiais.

 
roxie 2025-06-09

Será que você poderia dar um exemplo? Fiquei curioso sobre o quão “especial” alguém precisa ser, na prática, para ser chamado de especialista...

 
codemasterkimc 2025-06-09

Pelos critérios de RH, parece que grandes empresas ou empresas de médio porte exigem cerca de 3 anos de experiência, e, pelo meu critério, um “especialista” é alguém que, na perspectiva de backend, consegue usar LLM para projetar uma arquitetura fácil de usar por qualquer pessoa e que também considere alta disponibilidade.
Por exemplo, eu sou generalista, mas consigo projetar de forma tão simples que até uma criança do ensino fundamental entenderia uma estrutura para lidar com tráfego de mais de 100 milhões de usuários em qualquer serviço da Coreia.
Mas, por eu ser generalista, meu currículo é cortado nas grandes empresas também kkk