O Engineering Manager Eficaz

Esse post foi traduzido automaticamente do inglês. Se você encontrar algum erro, por favor entre em contato.

The Effective Engineering Manager Do MidJourney

Não sei quem precisa ouvir isso, mas o papel principal do Engineering Manager (EM) é criar um time eficaz que consiga entregar resultados excelentes. Isso é controverso? Talvez.

Como indústria, aceitamos e incentivamos a ideia de focar em indivíduos como o trabalho principal de um gestor. Como resultado, é comum ver EMs que enxergam seu papel como trazer engenheiros através de recrutamento e garantir que eles tenham uma boa experiência de trabalho por meio de coaching individual.

Também é difícil ser contra essa perspectiva. Afinal, contratar boas pessoas e manter funcionários engajados são duas atividades muito positivas. No entanto, como tudo na vida, existem trade-offs. E os trade-offs nesse caso são:

  • Recrutar engenheiros só é uma atividade positiva se eles estão se juntando a um time eficaz. Se não, adicionar mais investimento em uma área que não está entregando resultados será mais prejudicial do que não fazer nada.
  • A satisfação do engenheiro só pode acontecer em um ambiente eficaz. O crescimento individual acontece quando as pessoas assumem trabalhos mais desafiadores, e isso só vem quando há confiança de que o time consegue entregar. Nenhuma quantidade de coaching pessoal vai compensar um sistema ineficaz.

Outro anti-pattern comum que tenho visto é quando EMs evitam gerenciar o trabalho do time sob o princípio de empoderar engenheiros e deixá-los liderar o trabalho. Nessa situação, novamente, existem trade-offs implícitos:

  • A menos que o time trabalhe em um ambiente simples, gerenciar um projeto tira os engenheiros do tempo de maker para o tempo de gestor. Em outras palavras, torna o engenheiro menos eficaz porque ele funciona como um gestor de fato.
  • Engenheiros diferentes vão gerenciar projetos de formas diferentes, criando múltiplas maneiras inconsistentes de trabalhar dentro de um time. Isso só aumentará a confusão e diminuirá a eficácia no geral.
  • Contribuidores individuais têm uma visão mais restrita de como o time funciona e nenhuma autoridade oficial para mudá-lo, tornando mais difícil para eles melhorar times ineficazes.

A Verdade Está no Meio

Não queremos EMs que sejam micro-gestores, definindo exatamente como o trabalho precisa ser feito. No entanto, também é verdade que eles não devem ser observadores passivos do time.

Isso porque times sem processos claros criam métodos de trabalho informais, geralmente determinados pelos membros com mais poder (ou seja, tempo de casa e experiência). E isso não será produtivo para o time como um todo.

A verdade, como de costume, está no meio. EMs devem focar em criar um ambiente eficaz onde o time use processos bem desenhados e implementados para o contexto específico do time. Um sistema bem desenhado não significa um time cheio de processos. Significa ter um conjunto mínimo de processos que alcançará os melhores resultados.

Management spectrum Espectro de gestão

Se isso for feito, criará um ciclo virtuoso para o time e os indivíduos:

  • Um time eficaz terá a confiança da organização, levando a iniciativas mais desafiadoras e mais autonomia no seu trabalho.
  • Um time eficaz terá um efeito multiplicador no crescimento e carreira dos indivíduos, já que essas pessoas entregarão mais impacto para a empresa.
  • Um time eficaz será um excelente lugar para novos engenheiros entrarem. Eles terão muitas oportunidades de aprender vendo como entregar software com sucesso.
  • Um time eficaz será um ímã para grandes talentos que querem se juntar a um time que funciona bem.

Como Chegar Lá

Não existe um conjunto de regras sobre o que um time eficaz deve ser. O contexto vai variar para diferentes empresas, contextos e indivíduos. Mesmo dentro da mesma organização, times terão melhores resultados se adaptando à sua situação específica.

No entanto, existem um conjunto de princípios que EMs podem adotar no seu trabalho para criar um.

Principles for effective engineering management Princípios para gestão de engenharia eficaz

Seja um especialista em como o trabalho funciona

O EM precisa ser um especialista em como o trabalho é entregue no seu time. Isso significa entender como conceitos vão da ideia à produção e onde estão os gargalos no sistema.

Entender o trabalho não é sobre entender o desempenho individual (Alice entrega mais Pull Requests que Bob), mas sim focar no trabalho em si. Onde o trabalho passa mais tempo, desde alguém ter uma ideia até estar na frente dos clientes? Onde estão os problemas de qualidade com trabalho indo e voltando entre pessoas? Onde há desperdício, com trabalho esperando alguém pegá-lo?

Somente entendendo profundamente o sistema de trabalho é que o EM será capaz de focar seu tempo onde há maior alavancagem. Uma situação comum na minha carreira foi ser chamado para melhorar um time de engenharia que precisava entregar melhor, apenas para descobrir que, embora a engenharia pudesse ser mais eficiente, a empresa gastava 70% do tempo de um projeto antes do trabalho chegar aos engenheiros. Os resultados não melhorariam focando em como os engenheiros estão trabalhando. Em vez disso, levantar a conversa sobre como os projetos são definidos e entregues era a melhor melhoria com a qual eu poderia ajudar.

Entenda as pessoas e seus pontos fortes

Existe um equívoco comum de que pensamento sistêmico (ou de processos) significa tratar pessoas como máquinas. No entanto, o pensamento sistêmico e métodos inspirados por ele focam em criar procedimentos para que as pessoas possam utilizar seus pontos fortes.

Em um time de software, é a mesma coisa. Para criar um time eficaz, EMs precisam entender as pessoas dentro do time, seus pontos fortes e suas aspirações. Isso é simplesmente porque diferentes grupos vão performar de maneira diferente em ambientes diferentes. Por exemplo, se o time tem pouca experiência, ter um tech lead que possa definir o trabalho de forma mais formal pode ser útil. Se o grupo é altamente experiente, ter menos documentação e mais autonomia pode ser mais produtivo. Enfatizar a comunicação escrita pode aumentar a eficácia de um time distribuído.

No fim das contas, o desafio do EM é encaixar as pessoas no trabalho de uma forma que leve a resultados eficazes (o trabalho é feito) e utilize os pontos fortes de cada indivíduo.

Seja responsável pelos resultados do time

EMs devem se sentir confortáveis sendo donos dos resultados do time, sendo responsáveis por eles e intervindo quando necessário. Isso não significa que eles precisam ser especialistas em cada detalhe, mas precisam entender o suficiente para avaliar a qualidade do trabalho em diferentes aspectos.

Essa perspectiva não se baseia nos EMs serem os membros mais seniores ou mais importantes do time. No entanto, eles têm uma visão mais ampla de como o trabalho é feito e a autoridade para mudá-lo quando necessário.

Nem todos os membros do time identificarão os mesmos problemas críticos, nem pensarão nas mesmas soluções, mesmo que o fizessem. Algumas soluções resultarão em problemas mais críticos. Dessa cacofonia intelectual, o líder precisa fazer o trabalho de comparar e contrastar conceitos, integrar propostas, responder e fazer perguntas, corrigir mal-entendidos, dar o devido reconhecimento, sequenciar contribuições e, finalmente, produzir um plano de ação para alcançar o objetivo. — Systems Leadership: Creating Positive Organizations

Embora a delegação seja essencial para o papel, entender o que e para quem delegar é uma decisão que o EM precisa tomar. E ele precisa fazer isso com a perspectiva de ser dono do resultado. Tenho visto um anti-pattern comum de gestores se separarem de fracassos porque um engenheiro não executou o trabalho com qualidade suficiente. Como gestor do time, o EM define o sistema para o trabalho e escolhe as pessoas que o executam. Em qualquer situação, o resultado do trabalho passa pela sua decisão.

Na prática, EMs devem entender o trabalho em tecnologia, pessoas e processos e agir quando melhorias são necessárias, apoiando e ajudando o time a alcançar o melhor resultado.

Encontre tempo para liderança ativa

Por fim, EMs precisam de tempo ativo liderando seu time para fazer tudo isso. Ter uma agenda completamente lotada de 1-1s e reuniões regulares não vai deixar tempo para entender e agir no sistema.

Um dos desafios de qualquer papel de gestão é que ninguém mais define como gestores devem usar seu tempo. Por isso, assumir ativamente o controle dele é uma parte necessária do papel para que EMs possam focar onde há maior alavancagem em vez de apenas tentar se manter atualizados com o que está acontecendo.

Para fazer isso, algumas práticas que achei úteis são:

  • Gerenciar ativamente sua agenda, criando blocos de foco e questionando cada reunião da qual você precisa participar.
  • Garantir que cada reunião da qual você participa seja eficaz e, se não for, intervir. Uma cultura de reuniões eficazes vai economizar uma quantidade significativa de tempo para todos.
  • Criar sistemas para substituir reuniões. Por exemplo, atualizações de status são menos necessárias se o quadro do time está atualizado.
  • Revisar e redefinir regularmente sua agenda. Qualquer estrutura que sua agenda tenha vai se degradar com o tempo.

Eficácia Vale a Pena

Criar um time eficaz vai, em última instância, levar a melhores resultados e indivíduos mais satisfeitos. Alcançar esse objetivo é o maior impacto que um EM pode ter no time. Mais surpreendentemente, a eficácia também levará a um ambiente de trabalho mais estável e menos estressante, onde trabalhar de forma mais inteligente supera trabalhar mais.

Quanto menos uma organização precisa fazer para produzir resultados, melhor ela faz seu trabalho — Peter Drucker

Esse post faz parte de uma série sobre Liderando Times de Software com Pensamento Sistêmico.

Gostou deste post? Escrevo sobre liderança em times de engenharia de software. Assine para ficar por dentro.