Pessoas, produtos e tecnologia: um guia para iniciantes em gerenciamento de engenharia
Publicados: 2022-03-11Como engenheiro de software, suas responsabilidades geralmente são definidas com muita clareza: as tarefas são atribuídas a você e seu trabalho é implementá-las no prazo e com eficácia.
Na função de gerente de engenharia, no entanto, as responsabilidades geralmente não são definidas com tanta clareza. A gestão não é binária; não há respostas diretas para certas perguntas e problemas. O quão bem-sucedido você é como gerente dependerá de quão bem você é capaz de liderar seu pessoal, gerenciar seu produto e administrar suas tecnologias.
As pessoas são sua prioridade
Na função de gerente de engenharia, sua nova prioridade é sua equipe. Então, como você garante que você tem uma grande equipe?
Construindo uma equipe e estabelecendo confiança
O primeiro passo é garantir que você contrate as pessoas certas para sua equipe, caso ainda não tenha uma equipe.
Uma contratação ruim não apenas desperdiçará seu tempo, mas também desperdiçará o tempo de outros membros de sua equipe, que precisarão pegar a folga. Isso vai desmoralizar o resto de sua equipe. Mesmo que uma pessoa seja um programador brilhante, ela ainda pode ser uma má contratação se não se adequar à cultura da equipe.
Certifique-se de fazer não apenas perguntas técnicas, mas também perguntas abertas sobre como trabalhar em equipe ou assumir um papel de liderança. Por exemplo, pergunte a um candidato:
- Para descrever um problema recente que eles tiveram que resolver
- Como eles implementaram a solução
- Quais abordagens alternativas eles consideraram
- Para falar sobre um momento em que eles tiveram um problema crítico na produção, como responderam a isso e o que fizeram para evitar o mesmo tipo de problema no futuro
Depois de ter uma equipe, dedique tempo para ganhar o respeito de sua equipe e estabelecer confiança. Para liderar uma equipe de forma eficaz, você precisa desenvolver um relacionamento saudável com os membros de sua equipe. Tire um tempo para entender seus objetivos de carreira e o que é importante para eles.
A reunião individual é uma ferramenta essencial para formar um vínculo com cada um dos membros de sua equipe e conhecê-los melhor. Qual é a frequência ideal de reuniões individuais? Isso dependerá das necessidades específicas dos membros de sua equipe, mas é uma boa ideia se reunir com eles pelo menos algumas vezes por mês.
No entanto, se você e sua equipe colaborarem de perto ou tiverem uma equipe grande, poderão realizar reuniões uma vez por mês.
Como os gerentes de engenharia capacitam e melhoram as equipes
Uma grande parte do seu trabalho se baseia na identificação dos pontos fortes e fracos dos membros individuais. Ajude-os a lidar com seus pontos fracos, combinando-os com um engenheiro sênior e realizando revisões de código frequentes e concentrando-se em seus pontos fortes. Afinal, são nossos pontos fortes que nos motivam e moldam o que gostamos de fazer.
Atribua tarefas com base nas habilidades e características de cada engenheiro para extrair o melhor de cada pessoa e criar uma grande equipe. A automação pode percorrer um longo caminho nesse sentido. Configure a integração contínua para identificar código quebrado ou abaixo do ideal e a pessoa que comete esse código com frequência.
Os membros de sua equipe procurarão constantemente aprender, melhorar e crescer em áreas que são importantes para eles ou para a equipe. As funções e responsabilidades que faziam sentido para cada membro da equipe no ano passado podem não ser mais adequadas este ano. Para garantir que cada membro da equipe continue se sentindo desafiado e melhorando:
- Preste muita atenção ao seu crescimento pessoal, invista em seu desenvolvimento e ajude-os a alcançar suas ambições.
- Reúna-se individualmente com os membros da equipe para criar planos de desenvolvimento pessoal e capacitá-los a mapear suas estratégias de carreira.
- Tente alocar tempo extra para o autodesenvolvimento, permita que os membros da equipe troquem de função periodicamente e organize workshops internos ou cursos de treinamento.
Além de garantir o crescimento profissional de todos, a responsabilidade de um gerente de engenharia é proteger sua equipe. Você deve capacitar sua equipe para tomar decisões sem medo do fracasso. Se as coisas falharem, assuma a responsabilidade e aprenda com os erros.
Isso promoverá ousadia em sua equipe à medida que tenta novas abordagens e desenvolve uma mentalidade de crescimento. Dito isso, os erros não devem acontecer mais de uma vez se você fornecer feedback adequado e tomar medidas oportunas para orientar sua equipe na direção certa.
Gerentes de produto e gerentes de engenharia
O segundo aspecto importante do papel de um gerente de engenharia é o produto. Você terá que formar um relacionamento próximo com o gerente de produto para alinhar as expectativas e alavancar a tecnologia e as habilidades de sua equipe para entregar um ótimo produto.
Aqui estão seis responsabilidades do gerente de engenharia que você deve seguir:
Garantir que o projeto seja bem priorizado
Qual é a meta de seis a 12 meses para sua equipe? Quem é o seu público? O que seus clientes esperam do produto? Sua equipe provavelmente sabe no que estará trabalhando nas próximas semanas, mas é crucial entender o produto completo e para onde ele está indo.

Estar envolvido nas decisões de desenvolvimento de produtos
Como gerente de engenharia, você trabalhará com diferentes equipes e estará mais engajado na direção do produto e nas atualizações do produto do que como colaborador individual. Você não precisa necessariamente concordar com todas as decisões em relação ao produto, mas deve acreditar no produto e querer torná-lo melhor. Você pode desafiar o gerente de produto se não concordar com a decisão dele, mas lembre-se de que o gerente de produto tem a palavra final. Respeite-os e apoie suas decisões.
Definir e conduzir a estratégia técnica e a metodologia de desenvolvimento
Enquanto o trabalho do gerente de produto é definir a estratégia e os conceitos do produto, seu papel é definir a visão arquitetônica e o design técnico do produto. Você também é responsável por definir a metodologia de desenvolvimento e garantir sua adoção pela equipe. Lembre-se: o gerente de produto pode ser o proprietário do produto, mas você e sua equipe são os donos da implementação do produto.
Em alguns casos, pode ser possível implementar recursos úteis com um pequeno esforço de engenharia. Por exemplo, verifique se a atualização para a versão mais recente da estrutura que o produto usa pode ajudá-lo a implementar algum recurso específico com mais rapidez ou eficiência. Ter uma boa visão geral do produto pode ajudar você e sua equipe a identificar esses casos e sugeri-los ao gerente de produto.
Equilibre a criação e o pagamento da dívida técnica e o desenvolvimento de novos recursos
Quando você constrói seu produto mínimo viável, o tempo de colocação no mercado é a principal prioridade, então você pode acumular alguma dívida técnica. À medida que o produto evolui, o foco muda para adicionar novas funcionalidades e melhorar o produto enquanto paga a dívida técnica. Sem abordar as compensações feitas inicialmente, adicionar novos recursos levará mais tempo e será mais caro. Reserve um tempo para entender e acompanhar os compromissos que você fez e encontrar um equilíbrio entre resolver a dívida e adicionar novos recursos.
Use tecnologia e automação para ajudar a gerenciar a dívida técnica**
Use análises estáticas de código-fonte para identificar o código com o maior número de índices de manutenibilidade e priorize a refatoração do código. Dessa forma, fica mais fácil trabalhar em novos recursos e o desempenho do produto será aprimorado.
Garantir que a execução do produto esteja no caminho certo
Você deve ter uma compreensão do status atual do trabalho de sua equipe. Se sua equipe está atrasada, identifique os bloqueios aparentes e remova-os. Por exemplo, se a equipe trava regularmente em problemas técnicos, configure sessões frequentes de programação em pares para melhorar o compartilhamento de conhecimento dos membros da equipe. Se a equipe gastar muito tempo implantando o código nos servidores, automatize o processo para economizar tempo e torná-lo menos propenso a erros. Minimize as interrupções e crie processos claros sobre como assumir novos trabalhos e lidar com relatórios de bugs.
Tecnologia e Delegação
Mesmo que você ainda seja um engenheiro, como gerente, desenvolver soluções de software não é mais sua função principal. Você tem engenheiros seniores em sua equipe e eles são responsáveis pela maioria das soluções técnicas. Os generais não travam guerras com rifles; os gerentes não deveriam ter que microgerenciar cada linha de código.
No entanto, você deve usar seu conhecimento e experiência para garantir que as decisões tomadas pelos engenheiros seniores se ajustem ao roteiro e à direção técnica do produto. Delegue decisões técnicas a seus engenheiros seniores, mas faça as perguntas certas para garantir que o produto seja escalável, seguro e confiável.
Por exemplo, desafie suas escolhas com “E se tivéssemos 20 vezes mais usuários? Isso seria sustentável?” ou "Esta tecnologia ainda será suportada em dois ou três anos?"
Você pode e deve propor soluções e frameworks alternativos com base em seu conhecimento e áreas de especialização, mas não force ou pressione sua equipe a aceitá-los. Além de sugestões tecnológicas, você também pode fazer recomendações relacionadas ao processo de desenvolvimento e à metodologia.
Além disso, certifique-se de monitorar as principais métricas do produto. Métricas de negócios e técnicas são igualmente importantes. Trabalhe com a equipe de DevOps para criar alarmes para monitorar o sistema e mantenha sua equipe informada sobre problemas de operação. Finalmente, desenvolva uma metodologia para lidar com incidentes quando eles ocorrerem para garantir que eles não aconteçam novamente.
Por último, mas não menos importante, mantenha-se atualizado com as últimas tecnologias e tendências. Quanto mais opções você tiver e quanto mais souber, mais soluções e frameworks terá à sua disposição. Reserve um tempo para ler artigos, fazer revisões de código e participar de discussões técnicas com sua equipe.
Quanto mais você souber sobre assuntos técnicos, mais sua equipe o respeitará. Ficar familiarizado com tecnologias novas e emergentes – e incentivar sua equipe a fazer o mesmo – ajudará você a criar uma atmosfera de curiosidade e desafiar sua equipe a buscar maneiras novas e inovadoras de resolver problemas técnicos complexos.
