O William Oliveira fez esse tweet aqui:

E eu respondi:

No final do dia, as pessoas são tudo

Tudo vai girar em torno delas. A partir desse momento, você vai ter que lidar com Pessoas Engenheiras de Software, e com isso, todos os desafios de comunicação que podem acontecer:

  • Frases mal colocadas e mal interpretadas;
  • frustrações salarias não resolvidas;
  • expectativas não atendidas;
  • ansiedades por novas oportunidades não endereçadas;

E essa lista é imensa. A partir do momento que você é responsável por um ou mais times de engenharia, é esse tipo de problema que você vai ter que resolver. Esse é seu novo trabalho e, para isso, poucos lugares/literatura vão te ajudar, mas existe uma em especial que adoro recomendar: The Manager’s Path: A Guide for Tech Leaders Navigating Growth and Change.

Seu foco de estudo precisa ser mais sobre pessoas do que sobre tecnologia. Você vai precisar traçar um caminho no qual, provavelmente, você nunca tinha se imaginado. Mas, assim como programação, você só precisa se dedicar e estudar muito, sem parar, assim você obtém sucesso!

Ouça mais, fale menos, converse com todos

Como as pessoas vão ser tudo para você daqui pra frente, você vai ter que se preocupar muito com suas habilidades de comunicação. Por isso, a dica é para que você ouça mais. E aqui é tentar escutar tudo:

  • escute todas as pessoas do seu time;
  • escute todas as pessoas que interagem com o seu time;
  • escute tudo que seus pares falam;
  • ligue o alerta em todas as reuniões que você for participar;
  • ouça pessoas de fora da companhia;
  • ouça um mentor;
  • sempre que possível, fale por último.

Uma vez que você escuta tudo e todos, você tem embasamento para dar melhores feedbacks, para saber quais brigas você deve comprar, quando você deve intervir ou até mesmo quando você deve deixar uma pessoa errar para que ela aprenda por si só com o erro.

E, uma vez que você está escutando mais, você acaba falando menos naturalmente. E falar menos não significa não falar o que você deve falar, mas saber quais palavras usar, como essas palavras vão ser interpretadas pelas outras pessoas e quando sua fala é realmente necessária.

Depois de escutar mais e falar menos, é hora de se comunicar com todos! Você deve ter reuniões de 1:1 (one-on-one) semanais com todas as pessoas que se reportam diretamente a você e essa reunião é da pessoa, não é sua. Esse é o momento que você deve escutar tudo que a outra pessoa tem pra falar e também dar feedbacks sobre ela.

Não use one-on-ones para acompanhamento do trabalho da semana. Use daily meetings para isso, elas são mais apropriadas. One-on-ones são reuniões para as quais os participantes devem se preparar. Tome nota de tudo, não deixe de ter um histórico do que acontece ao longo do tempo.

Estruture one-on-ones para falar sobre futuro, aspirações, evolução pessoal, onde a pessoa quer chegar e mais tópicos nesse sentido. Use bem o tempo em que vocês vão conversar. Tente não mudar com frequência o horário dessas reuniões, é uma tremenda falta de respeito.

Além de one-on-ones regulares com seus diretos, também os faça, com menos regularidade, com as pessoas indiretas, e nesse grupo podem estar as pessoas engenheiras do time, POs, PMs e todo mundo de quem você precisa ouvir e dar feedbacks. Isso é importante, uma vez que todos que estão próximos de você vão ser capazes de te ver com um diferente ponto de vista e isso aumenta a possibilidade de se receber feedbacks valiosos.

Deixe a tecnologia para o time

Você não vai mais ter tempo para codar, essa é a verdade. Logo, não seja o gargalo do time. Não assuma nenhuma responsabilidade de engenharia em que você pode se tornar um bloqueio para outras pessoas. Seja crítico e realista: seu trabalho agora é ser responsável pelas pessoas e não mais ser o herói e escrever código. O código que você vai “codar” vai ser feito através do seu time e do que ele é capaz.

Dito isso, você deve saber quais tecnologias estão sendo usadas pelo time, até porquê você vai precisar guiar as decisões de tecnologia e contratar pessoas para esse time eventualmente. Você pode até travar a stack do time, mas com toda a certeza do mundo as pessoas vão querer usar coisas novas e legais em produção e você é a pessoa responsável para que isso aconteça.

O seu papel quanto ao código no time é tirar todos os impedimentos que por ventura possam aparecer, é negociar prazos e entregas com outras áreas e liderar o time de engenharia para desenvolver novas features, apagar incêndios e controlar os danos que eventualmente podem aparecer no dia a dia.

Você vai guiar, vai pensar em como o time vai continuar aprendendo e aplicando coisas novas em produção, mas não seja autoritário e nem o dono da verdade. Use o que você tem de melhor, que é a sua equipe de engenharia.

Melhore/crie um sistema de contratações, seja inclusivo nesse ponto

Como seu trabalho é cuidar das pessoas, aumentar o time também faz parte, e você precisa fazer isso de forma certa. Gaste muito tempo pensando no melhor processo seletivo e em como evitar vieses, ser mais inclusivo e assertivo nas contratações.

Um time diverso consegue olhar de formas diversas para um mesmo problema e isso aumenta as chances de que o trabalho seja feito com maior qualidade. Mas, para contratar com diversidade, é preciso ser intencional, então:

  • escreva descrições de vaga com uma linguagem inclusiva
  • garanta que existam pessoas diversas participando do processo seletivo
  • garanta que todas as pessoas que participam do processo seletivo estejam informadas sobre os possíveis vieses inconscientes

Você não precisa baixar a sua barra de qualidade para contratar pessoas diversas. Dado que nem todas as pessoas tiveram as mesmas oportunidades, é seu papel entender como fazer com que seu processo selecione pessoas extremamente talentosas, mas que não tiveram os mesmos privilégios e oportunidades.

Uma dica que não estava no tweet!

Mas está em um outro tweet meu, mais recente:

Essa frase é do livro High Output Management, do Andrew Grove, ex CEO e Chairman da Intel e ele resume muito bem em uma frase o que é o trabalho de desenvolvimento de software: um trabalho em conjunto, de equipe.

A partir de agora, seu trabalho vai ser o de técnico. Você precisa inspirar o melhor do seu time para todas as pessoas terem sucesso! Desenvolvimento de software é um trabalho coletivo, em que cada integrante do time precisa estar no seu melhor, assim como em qualquer esporte coletivo.

Agradecimentos

Obrigado para Ana Cardoso, Betina Ribeiro, Lucas Ferraz e João Daniel que revisaram o texto!