7 Dicas Para Gestão de Desenvolvedores de Software
Como liderar uma equipe técnica de maneira eficiente
Por GitPrimeBlog (publicado originalmente aqui, em inglês)
Gerenciar uma equipe de desenvolvimento de softwares tem muita coisa em comum com gerenciar qualquer outra equipe de pessoas. Desenvolvedores querem profissionais de gestão que os ajudem a resolver problemas de negócios, que os protejam de políticas do escritório e os ajudem a atingir suas metas de carreira. Porém, desenvolvedores e desenvolvedoras exigem algumas técnicas específicas de gestão que incentivam sua produtividade.
Zach Holman vai direto ao ponto:
Aqui vão sete dicas específicas de gestão de uma equipe de engenharia de software:
1. Deixe que façam seu trabalho
Um dos desejos mais comuns é por um gestor ou gestora que reconheça suas habilidades e confie que o trabalho será entregue no prazo. Deixe que escrevam códigos — é o que lhes dá mais prazer.
Você só precisa encontrar uma forma para que façam isso beneficiando a empresa. Parte dessa confiança é dar o tempo necessário para pensar além da programação. A oportunidade de inventar soluções por conta própria vai contribuir para manter a criatividade em alta.
2. Tire da frente tudo o que não for programação
Atividades que não envolvem a criação de códigos não têm importância para a maioria das equipes de desenvolvimento. Em sua opinião, o trabalho mais importante da administração de uma equipe é poupá-los da perda de tempo em reuniões que nada têm a ver com a parte técnica e papelada administrativa.
O importante é ter alguém que forneça uma lista de tarefas hierarquizada, com prioridades quem fazem sentido.
Ninguém gosta de deadlines irreais — e uma das únicas formas de mitigar isso é dar clareza aos requisitos logo no início. Seja diligente com bons pré-requisitos. É a única forma de verdadeiramente entender o escopo e administrar expectativas em torno dos prazos de entrega de uma forma razoável.
Quando os entregáveis são muito distantes da expectativa, surge vemos uma sobrecarga operacional. O melhor momento para resolver isso é no começo do processo, investindo em uma organização dos pedidos e garantindo que stakeholders estejam fazendo pedidos de trabalho de forma responsável.
3. Escute e responda
Não importa se você acha que comunicou as especificações corretamente, a equipe ainda vai ter perguntas a fazer. Desenvolvimento é um processo iterativo.
Esse é um outro ponto onde a organização inicial compensa: depois de escolher os requerimentos que fazem sentido, faça seu time se envolver mesmo antes de começar a trabalhar.
Engenheiros e engenheiras devem ter a chance de fazer críticas, estender ou rejeitar logo de cara os pré-requisitos se eles acham que não faz sentido. Aí, começados os trabalhos, a mesma lógica é aplicada: os melhores requisitos são essencialmente um tipo de documento vivo que evolui durante o desenvolvimento.
Assim como “nenhum plano de batalha sobrevive ao primeiro contato com o inimigo”, nenhum grupo de pré-requisitos deve sobreviver à implementação sem um pouco de flexibilidade.
4. Incentive o progresso
Desenvolvedores estão todo o tempo buscando melhorar seu set de habilidades. A gestão mais bem-sucedida é aquela que facilita seu crescimento. Por isso, encontre uma coisa específica e útil onde poderão focar sua energia de evolução.
São frases como “foque em dividir seu trabalho em pedaços menores”, ou “eu gostaria de ver você tomar a dianteira e investir na revisão de códigos legados”. Use um plano pessoal de desenvolvimento para sugerir áreas de pesquisa para a pessoa pesquisar no seu downtime.
Se interessar pela evolução profissional da sua equipe vai ajudar a refinar a direção que sua tecnologia seguirá, resultando, em último efeito, em benefícios para a empresa. Ofereça orientação em seus projetos, mesmo quando não forem diretamente relacionados ao trabalho.
5. Enfatize qualidade mais que quantidade
A inexperiência pode levar você a pensar que agregar mais gente em um projeto vai aumentar a produtividade.
Isso raramente funciona, porque mais profissionais podem atrasar o projeto até que se atualizem e peguem o ritmo. Para aumentar a produtividade é melhor reorganizar a equipe para realizar tarefas pequenas, tipicamente aquelas que podem ser feitas em alguns dias ou semanas.
Distribua para cada pessoa tarefas específicas como codificar, testar e implementar. Garanta que cada time seja composto por pessoas com níveis variados de senioridade, tendo júniors, plenos e sêniores.
6. Revise as métricas corretamente
Relatórios de performance oferecem a melhor oportunidade para medir o desempenho de uma equipe de desenvolvimento e identificar possíveis problemas. Mas é vital escolher apenas as métricas que são aplicáveis, porque é comum reunir todas as métricas disponíveis só para mostrar que o projeto ainda está em desenvolvimento.
Pergunte diretamente à equipe quais são os problemas do projeto e quais métricas refletiriam melhor o status atual do projeto. Revise os tickets abertos semanalmente, mas não foque apenas em resolvê-los. Pode ser melhor deixar um ticket em aberto por um tempo para garantir que o bug associado a ele foi solucionado.
7. Evite mudança de tarefas
Muitos trabalhos exigem profissionais multitarefas, mas essa prática é prejudicial para a eficiência no desenvolvimento de um software. A equipe gasta muito tempo mental em embates com problemas conceituais entediantes. Qualquer disrupção nisso tem um custo imenso — uma interrupção inesperada pode atrasar alguém em meio dia de trabalho.
Mudanças de contexto também são dispendiosas e a sobrecarga cognitiva dos resultados multitarefas geralmente resultam em baixa performance. Se estiverem trabalhando em vários projetos simultâneos, pode ser interessante pedir que se dediquem a um projeto de manhã e outro à tarde. A melhor solução para lidar com múltiplos projetos é redistribuir frequentemente a equipe em grupos menores dedicados a um projeto em particular.