Dicas para atrair, gerenciar e reter desenvolvedores de software
Publicados: 2022-03-11Gestão tem tudo a ver com pessoas. Sejam gerentes ou funcionários, ambos estão pensando em como alcançar seus objetivos pessoais e profissionais. A combinação desses objetivos e os traços pessoais das pessoas envolvidas dão forma a relacionamentos que, com o tempo, podem ser positivos, produtivos e gratificantes, ou às vezes simplesmente estressantes, exigentes e propensos a conflitos.
É claro que, neste último caso, a qualidade do produto diminui, a rotatividade de pessoal aumenta e o alcance das metas se torna cada vez mais difícil. Portanto, encontrar uma forma de estabelecer relacionamentos gratificantes e motivadores entre gestores e funcionários é fundamental quando se trata de eficiência, produtividade e autorrealização para ambos.
Isso é especialmente verdadeiro no gerenciamento de desenvolvedores de software, devido à complexidade técnica e natureza criativa de seu trabalho, compactado em prazos frequentemente estreitos para a produção de resultados. Como em toda relação patrão-empregado, há muitos fatores envolvidos, como:
- Personalidades
- Metas
- Expectativas
- Políticas
- Cultura organizacional
- Detalhes técnicos do projeto
Neste artigo, vamos nos concentrar nos principais aspectos de gestão, e não nos técnicos, que achamos que devem ser considerados por quem quer ter sucesso na gestão da retenção de desenvolvedores de software.
Mas aqui, “sucesso” significa não apenas alcançar resultados e cumprir as políticas, cronogramas e orçamentos da empresa, mas também ter uma equipe de desenvolvimento de software motivada e produtiva, que dá o seu melhor e permanece na empresa por muito tempo.
Isso nos leva ao nosso tema fundamental: O que faz os desenvolvedores de software funcionarem? Pensando nisso, apresentaremos algumas formas de reter colaboradores que identificamos em equipes de desenvolvimento de software de sucesso.
Atraindo as pessoas certas
No desenvolvimento de software, o talento que você contratar fará a diferença entre o sucesso e o fracasso, e fazer mudanças contínuas em uma equipe é sempre caro em termos de tempo e dinheiro. Por isso, um bom processo de seleção é fundamental para o sucesso do seu projeto.
Anúncio de emprego
Os recrutadores de tecnologia sabem que, quando se trata de contratar desenvolvedores de software, tudo começa com um anúncio de emprego cuidadosamente equilibrado. A postagem deve ser motivadora para que os desenvolvedores certos respondam a ela - muitos requisitos ou requisitos muito especializados podem ser desanimadores, mas se você for muito vago, sua empresa pode esperar uma enxurrada de currículos inúteis.
Declarar salários e pacotes de benefícios detalhados também é uma faca de dois gumes, porque seus concorrentes podem usar essas informações para alavancar seus planos de remuneração, e os desenvolvedores podem tentar usá-los como uma linha de base para barganha durante a contratação. É claro que, como sempre deve haver algum espaço de negociação durante o processo de recrutamento, sugerimos que o anúncio de emprego seja menos específico quando se trata de remuneração, usando faixas em vez de valores fixos.
Em contraste, o anúncio de emprego deve ser o mais claro possível nos deveres e requisitos do trabalho, tanto obrigatórios quanto agradáveis. Começar com um ajuste sólido é o melhor contexto para o restante de nossas estratégias de retenção de funcionários.
Entrevistando
Neste ponto do processo, é uma boa ideia obter alguns conselhos sobre como avaliar os candidatos e ver quais armadilhas podem ser evitadas durante o processo de entrevista. Também acrescentaríamos à orientação dos recursos acima que pedir aos candidatos com antecedência algumas referências de seus empregos anteriores geralmente é um bom complemento para outras formas de validar suas habilidades.
A oferta de emprego
A contratação se encerra com uma oferta de emprego ao candidato, quando a empresa apresenta um documento formal que resume as características do cargo (nome, cargo, área etc.), o pacote de remuneração (salário e benefícios como saúde, pensão ou educação etc.) , data de início, horário, local de trabalho e os requisitos para estabelecer um contrato de trabalho, caso o candidato aceite a oferta.
Embora nesta fase tudo esteja mais ou menos cumprido, o candidato pode querer negociar algumas condições, cabendo à empresa aceitá-las ou barganhá-las. Depende das práticas da empresa.
No entanto, certamente, a empresa não desejará perder um bom candidato por uma questão de princípios, portanto, trocas razoáveis não prejudicarão ninguém. Nesse caso, é aconselhável pedir ao candidato algo em troca de cada concessão feita, como, por exemplo, uma data de início mais cedo, um tempo mínimo de permanência na empresa ou qualquer requisito especial que a empresa possa ter.
Gerenciando equipes de desenvolvimento de software para o sucesso
Uma vez que um desenvolvedor de software começa a trabalhar na empresa, seu gerente começa a perceber quem ele é, como trabalha e, o mais importante, os resultados que gera. A retenção de engenheiros de software torna-se então uma prioridade clara.
É aí que entram os insights sobre as personalidades dos engenheiros de software: eles — especialmente os de alto desempenho — geralmente mostram alguns traços comuns. Vamos apontar esses padrões à medida que avançamos, mas lembre-se de que eles podem não se aplicar igualmente a todos os indivíduos. O gerenciamento de projetos de desenvolvimento de software é tanto sobre padrões quanto sobre exceções.
Treinamento
Como o desenvolvimento de software é um trabalho técnico, requer um conhecimento muito preciso da estrutura da empresa, objetivos, procedimentos, políticas (incluindo credos e práticas de negócios) e padrões (técnicos e não técnicos). Portanto, quanto melhor um desenvolvedor entender a empresa, melhor será o produto e menos tempo levará para fazê-lo.
Esse treinamento básico pode ser administrado por documentos, cursos online na intranet ou apresentações. Mas é uma necessidade, pois dará clareza ao novo funcionário.
Se novas tecnologias forem introduzidas, certifique-se de fornecer o treinamento necessário. Os desenvolvedores de software gostam de ser desafiados, mas podem se ressentir de serem lançados em uma nova tecnologia sem aprendê-la adequadamente primeiro.
A internet está repleta de materiais de aprendizado valiosos, e geralmente é o primeiro recurso que os desenvolvedores de software recorrem quando precisam aprender ou reaprender detalhes técnicos. Se você deseja reter desenvolvedores de software, é essencial promover uma cultura de autoestudo e, se necessário, dar tempo de trabalho para isso. Dessa forma, a equipe estará atualizada com tecnologias e métodos de última geração, algo que os desenvolvedores de software geralmente apreciam muito.
Recursos
Alguns pensam que os desenvolvedores de software buscam a mais alta tecnologia para fazer seu trabalho, com as melhores especificações possíveis disponíveis na indústria. Em vez disso, pensamos que depende do trabalho em mãos. Por exemplo, se uma empresa desenvolve jogos em primeira pessoa, será necessário fornecer aos desenvolvedores poder computacional de ponta. Mas se o trabalho é desenvolver serviços web de back-end para um sistema transacional, um computador menos poderoso pode ser suficiente.
O que é realmente importante é dar ao desenvolvedor todas as ferramentas necessárias para fazer seu trabalho e estar aberto a sugestões de novas ferramentas. Logicamente, toda nova ferramenta que o desenvolvedor sugerir terá que ser aprovada (talvez até testada antes) e licenciada pela empresa. Mas vale a pena o custo: ter recursos adequados é um fator chave na motivação e nos resultados do desenvolvedor. (Você não pode esperar reter engenheiros de software se os configurar para falhar!)
Organização
Os desenvolvedores de software gostam de trabalhar em lugares que incentivam e respeitam seus esforços criativos porque seu trabalho é fazer algo do nada, apesar de serem guiados por design, padrões e políticas de TI. Portanto, os desenvolvedores precisam estar razoavelmente confiantes de que pertencem a uma unidade onde toda a burocracia e limitações são mínimas, desde que cumpram as políticas da empresa e estejam de acordo com seus credos.
Isso não significa que os desenvolvedores de software devam ter privilégios especiais em relação ao resto da empresa, mas sim que seu gerente os ajuda a superar ou resolver a burocracia quando necessário. Um aspecto muito importante na retenção de desenvolvedores de software é que seu chefe está aberto às suas necessidades pessoais e os ajuda quando necessário.

O arranjo interno da unidade de desenvolvimento também desempenha um papel fundamental aqui. Muitas vezes, existe um grupo de teste, e é dever do gerente de engenharia de software manter o trabalho em equipe fluido entre desenvolvedores e testadores. Isso pode ser alcançado simplesmente por ter metodologias e processos claros. Desenvolvedores tendem a trabalhar muito bem com testadores se houver regras a serem seguidas por ambas as partes, mantendo o conflito baixo ou inexistente.
Comunicação (Reuniões Periódicas)
Se você deseja reter os desenvolvedores de software, é essencial mantê-los informados. Todos os membros de uma equipe devem ser atualizados periodicamente sobre objetivos, situações corporativas que os afetam, estratégias, mudanças na organização e, por último, mas não menos importante, conquistas da equipe.
Mesmo ter vários membros da equipe compartilhando alguns destaques será bom para promover a coesão e o trabalho em equipe da equipe. Normalmente, essas reuniões de equipe - duas horas no máximo - devem ser agendadas regularmente (talvez semanalmente), bem como em ocasiões especiais como a fase final de um projeto, uma situação crítica etc.
Além da comunicação com a equipe, o gestor deve estabelecer uma forma de se manter atualizado sobre a situação de cada membro, seja ela relacionada ao trabalho, técnica ou pessoal.
- Relacionado ao trabalho significa todos os aspectos possíveis da relação do funcionário com a empresa.
- As situações técnicas aparecem quando um desenvolvedor está preso a um problema e, por qualquer motivo, não está procurando ajuda.
- Se o desenvolvedor os compartilhar, situações pessoais que eles estão vivenciando podem afetar seu trabalho e seus relacionamentos com seus colegas de trabalho.
Normalmente, uma reunião semanal de 30 minutos com cada membro da equipe permitirá que um gerente identifique essas situações e forneça ajuda, evitando possíveis crises de pessoal e elevando o moral do membro da equipe dentro da empresa.
Só para deixar claro, não estamos falando de estabelecer uma unidade de desenvolvimento orientada para reuniões, portanto, é necessária uma disciplina rigorosa de reuniões (pontualidade, respeito, participação, duração). Além disso, essa disciplina demonstra aos desenvolvedores que eles trabalham para uma organização muito profissional, algo que normalmente apreciam.
Atribuindo Objetivos e Acompanhamento
Não faz sentido atribuir objetivos gerais anuais ou diretrizes de avaliação semelhantes.
Este é um fator claro ao lidar com desenvolvedores de software: seja qual for o seu papel (recolha de requisitos, arquitetura, design, programação, teste, etc.), os objetivos devem ser dados a eles com a maior clareza possível, então não faz sentido na atribuição de objetivos gerais anuais ou diretrizes de avaliação semelhantes. Como os desenvolvedores devem trabalhar em projetos, ou seja, com escopo e cronograma definidos, a melhor forma de atribuir objetivos é no início do projeto e incluir como os avanços serão avaliados e, se for o caso, como serão reconhecidos.
Felizmente, hoje em dia, existem metodologias cujo objetivo é gerar resultados o mais rápido possível, como Agile e Scrum, que simplificam o acompanhamento e o controle do projeto. Às vezes, isso pode até desempenhar um papel significativo na retenção de talentos de software: muitos desenvolvedores adoram essas metodologias porque podem fornecer resultados rapidamente, dando a eles uma sensação de conquista regularmente.
Além disso, os desenvolvedores geralmente preferem metodologias mais leves. Eles sabem que os de ponta como o Rational – onde o produto final é entregue após um longo projeto de engenharia de requisitos, design, desenvolvimento, teste e implementação – são arriscados e podem ser difíceis de seguir.
Conflito de gestão
Isso se aplica a equipes de desenvolvimento de software tanto quanto a qualquer outro tipo: um gerente de engenharia de software precisa lidar com o conflito de forma rápida e eficaz, ou pode ficar fora de controle e destruir o moral, o trabalho em equipe e a eficácia de toda a unidade.
Assumindo que os desenvolvedores em conflito são profissionais e bem intencionados, uma reunião do gestor com as pessoas envolvidas para iniciar um diálogo claro com pronta resolução posteriormente deve ser suficiente para permitir que a equipe siga em frente. Além disso, às vezes é necessário dar-lhes um aviso claro de que o conflito no nível pessoal, se chegar a isso, não será aceito.
De qualquer forma, ao final dessa reconciliação, é muito importante que ambas as partes sintam que a solução é justa, mesmo que uma delas não goste. O conflito às vezes faz parte da vida, mas reter talentos de software significa tratar todos com dignidade sempre que tais situações surgirem.
Motivação
Embora tenhamos abordado muitos fatores que influenciam a motivação de um desenvolvedor, há um outro aspecto fundamental. Este não é emocional, nem técnico. Estamos falando sobre a taxa de compensação para o seu trabalho.
Apesar de tenderem a ser de natureza idealista, os desenvolvedores de software geralmente gostam das coisas boas do mundo material. É sempre melhor para a empresa garantir que os salários e planos de remuneração estejam alinhados com o mercado de trabalho – os estudos do setor são fáceis de encontrar – e talvez até um pouco mais altos para seus cargos.
Além disso, a maioria dos desenvolvedores de software não fica indiferente a regalias e prêmios, incluindo cursos e eventos de tecnologia onde podem aprender técnicas úteis para enriquecer seu trabalho.
Quando se trata de reter desenvolvedores de software, é importante apoiar seu crescimento dentro da empresa, independentemente de sua direção específica. Quando os engenheiros de software não mostram muito desejo de passar para cargos de liderança ou gerenciamento, eles apreciam avançar na área técnica. Isso inclui certificações mais seniores e programas acadêmicos formais, como mestrados ou até doutorados. O conhecimento é um driver muito forte para eles.
No entanto, quando aspiram a crescer para cargos de liderança, é aconselhável fazer uma análise minuciosa da personalidade e do histórico do candidato na empresa. Isso pode ser feito com a ajuda do departamento de Recursos Humanos ou de outras unidades da empresa, pois uma boa gestão exige um conjunto de habilidades totalmente diferente além da proficiência técnica.
Como reter talentos de software: observações finais
Você pode ter as melhores intenções e seguir todas as dicas acima, mas ainda assim não conseguir reter os desenvolvedores de software 100% do tempo – às vezes, fatores externos simplesmente têm mais influência. Mas achamos que a rotatividade de pessoal pode ser saudável e cheia de oportunidades, desde que:
- Não é frequente. Se for, isso seria um sintoma de algo errado no nível organizacional.
- Só ocorre com os recursos mais valiosos. Nesse caso, pode significar que eles estão usando sua empresa como trampolim, ou seja, estão com você simplesmente para ganhar experiência antes de mudar para outras empresas.
As estratégias de retenção de funcionários devem ser consagradas na política da empresa, não apenas uma reação quando uma pessoa valiosa quer se demitir. A retenção reacionária é muito cara e falha: a pessoa pode concordar em ficar, mas pensa consigo mesma: “Trabalhei aqui por X anos apenas para receber o dobro do salário ao sair – eles acabaram de admitir que não estavam me pagando o suficiente!"
Qual será o próximo passo dessa pessoa? Eles podem procurar outro emprego, mas agora com o dobro do salário mínimo. Neste ponto, tentar reter engenheiros de software a todo custo provavelmente não vale a pena. A menos que a pessoa seja absolutamente fundamental (e insubstituível) para a empresa, pode ser melhor negociar um aviso prévio e encontrar imediatamente um substituto.
É uma tarefa não determinística
Atrair e reter desenvolvedores de software é uma tarefa complexa e não determinista, como em todas as funções do setor de tecnologia. Existem muitas empresas procurando por desenvolvedores de software valiosos por aí, mas, felizmente, o objetivo aqui não é vencer essas empresas, mas sim atrair boas pessoas que possamos manter em nossa empresa.
Os processos de seleção podem levar muito tempo e esforço. Se abordar isso com pressa, é provável que você acabe com as pessoas erradas – e quem quer reter engenheiros de software que são tóxicos para sua equipe? Em vez disso, reserve um tempo para fazê-lo direito.