Liderança de Projeto e Colaboração
Esse post foi traduzido automaticamente do inglês. Se você encontrar algum erro, por favor entre em contato.
Tenho discutido recentemente sobre a criação de times eficazes como Engineering Managers (EMs) e queria abordar um princípio importante: Colaboração. E como as práticas atuais de liderança de projeto tornam a colaboração em times de software mais desafiadora.
Colaboração é fundamental para criar um time eficaz. A razão para um time existir é a crença de que um grupo de indivíduos entregará resultados melhores do que a soma de seus indivíduos. Portanto, precisamos encontrar maneiras para que um grupo de engenheiros entregue valor de forma consistente.
Uma parte significativa dessa questão é respondida pela forma como as empresas organizam seus projetos e como os engenheiros trabalham juntos durante a execução. Em muitas empresas hoje, isso é fortemente influenciado por líderes de projeto.
Padrões de colaboração
Os padrões de colaboração são definidos principalmente pela forma como os times conduzem projetos individuais.
O desafio da liderança de projeto
Como tudo na nossa indústria, a organização de projetos evoluiu significativamente ao longo do tempo. Atualmente, ela é liderada principalmente por contribuidores individuais que ocupam a posição de líderes de projeto (é o jeito big tech). Existe um aprofundamento excelente sobre como chegamos a essa prática, que destaca alguns pontos importantes de lembrar:
- Impor processos pesados nos times geralmente é contraproducente. Os times precisam ter agilidade para operar.
- A autonomia do time é fundamental para o sucesso. Tanto na direção do produto quanto na definição de processos, os benefícios de se adaptar ao desafio atual superam facilmente o custo da duplicação que inevitavelmente ocorre.
- A engenharia deve liderar a execução dos projetos. EMs e engenheiros têm mais contexto sobre os desafios do dia a dia para decidir como trabalhar de forma mais eficaz.
- Times e projetos devem focar no impacto no negócio. Embora às vezes seja inevitável, introduzir indireção aumentará a ineficiência todas as vezes.
No entanto, um aspecto crucial que falta é como a delegação excessiva da gestão de trabalho cria times mais isolados e menos eficientes. Engenheiros liderando projetos agora são, de fato, gerentes de projeto, o que é um problema real.
Colaboração eficaz não é simples de alcançar
O anti-padrão comum é um engenheiro contribuidor individual sendo o único responsável pela gestão do projeto. Em alguns casos, ele não é apenas responsável por gerenciar o projeto, mas também por encontrar uma necessidade, conseguir aprovação para a iniciativa e então liderar a execução.
Esse padrão geralmente é justificado pelo objetivo de liberdade e impacto individual. A crença é que os engenheiros devem se autogerenciar e encontrar seu caminho para provar seu valor para o negócio.
No entanto, encontrar maneiras eficazes para um grupo de pessoas trabalhar junto não deveria ser um bico. Embora empoderamento e incentivo à liderança sejam objetivos admiráveis, na prática, o resultado é:
- A gestão do trabalho é improvisada e ineficaz, o que parece esperado já que estamos pedindo para pessoas sem experiência fazerem isso sem fornecer nenhum treinamento.
- Os times se tornam mais suscetíveis a autoridade informal e dinâmicas de poder. Engenheiros com mais influência decidem quais projetos executar e como seus projetos devem funcionar, o que impacta não apenas eles, mas também os outros no time.
- Os engenheiros têm menos tempo para focar em engenharia. Como encontrar tempo para trabalho técnico profundo quando você gerencia projetos e acaba na agenda de um gestor?
No fim das contas, isso prejudica a colaboração.
Na realidade, bom trabalho em equipe nem sempre é gratuito ou agradável. Por exemplo, qualquer pessoa que tenha feito pair programming por algumas horas pode dizer o quão desgastante e às vezes desconfortável é. Mas, ao mesmo tempo, é uma maneira muito eficaz de reduzir gargalos e compartilhar conhecimento dentro de um grupo. Da mesma forma, ser detalhista com critérios de aceitação nos seus cards é trabalhoso e tedioso, mas também a melhor maneira de evitar que engenheiros fiquem atolados em aumento de escopo.
Existe um caminho melhor
Felizmente, existem muitas maneiras de criar um sistema produtivo — onde engenheiros têm oportunidades de liderar outros e crescer com suporte. E onde times podem iterar e se tornar mais eficazes como grupo à medida que continuam trabalhando juntos.
Na prática, engineering managers devem liderar a conversa sobre como seu time trabalha, buscando criar um sistema produtivo para todos. E enquanto a execução desse sistema pode ser delegada, isso deve ser feito conscientemente para não tirar o foco dos engenheiros do trabalho técnico. Isso pode ser ilustrado por uma versão simplificada do agora típico diagrama de colaboração.
Responsabilidades práticas para líderes de times de produto
Aqui estão alguns princípios que um gestor pode aplicar para criar um ambiente saudável de colaboração no seu time:
- Entenda e crie um processo aberto de execução no seu time, focado no trabalho, não nas pessoas.
- Forneça suporte aos engenheiros liderando projetos. Embora a delegação seja possível e valiosa, líderes de projeto devem focar seu tempo em liderança técnica em vez de organização do time e gestão de tarefas. Se a delegação for a abordagem preferida, crie frameworks e ferramentas para torná-la menos trabalhosa.
- Reduza ativamente a possibilidade de trabalho individual. Por exemplo, reduza o número de projetos em andamento e incentive os engenheiros a colaborar em vez de trabalhar sozinhos.
- Tenha um processo para determinar como a liderança é atribuída aos projetos, deixando claro para todos como conseguir essa oportunidade.
- Embora ter engenheiros descobrindo oportunidades de projeto seja saudável, isso não deveria ser o único caminho para a liderança. Alguns indivíduos não se destacarão nisso e devem ter um caminho para liderança focado em suas habilidades de liderança técnica, e não apenas em visão de negócio.
Esses princípios de alto nível devem ser adaptados a situações específicas, mas devem levar a um ambiente mais produtivo, onde engenheiros podem liderar e ainda ser engenheiros, não gerentes de projeto. No fim das contas, um grupo de pessoas mais eficaz.
Esse post faz parte de uma série sobre Liderando Times de Software com Pensamento Sistêmico.