Acho esse tópico interessante porque geralmente é um pouco negligenciado e os devs novos são forçados a “se virar”.
Um pouco de background: trabalhei em empresas de todos os tamanhos, desde pequenas empresas com 5 pessoas até empresas com muita gente. Vou escrever aqui um pouco do que penso sobre onboarding e o que eu vejo que tem funcionado mais.
Acho que a qualidade de um onboard pode ser medida com algumas métricas, sendo que algumas das quais acho mais importantes:
Visto esses objetivos eu vejo que um onboard bem sucedido precisa abordar, pelo menos, os seguintes aspectos:
Quais tecnologias/frameworks/linguagens são utilizados pelo time? Como uma pessoa que está começando no time pega o ritmo com essas tecnologias?
Muito dificilmente uma pessoa entra de cara num projeto que está iniciando. Geralmente novos devs entram em um projeto que já é desenvolvido há algum tempo, que já tem uma certa complexidade. Daí, como essa pessoa que tá começando conseguiria entender a arquitetura do projeto? Como entender os padrões de projetos utilizados no produto?
Um projeto de software geralmente resolve um problema de algum domínio específico. Como a pessoa que tá iniciando vai aprender sobre esse domínio? Quem é o cliente do projeto? Quais as dores desses clientes? Que problemas são mais importantes de serem resolvidos?
Como falei, nem tudo é sobre o projeto. Tem uma parte, muito importante, que é o fator humano: o time e sua cultura. Nesse aspecto, como integrar o novo membro à equipe? Como tornar esse desenvolvedor parte do grupo?
Dado tudo isso, o que eu tenho visto que funciona é o seguinte. Onboarding tem que ser um processo contínuo, feito o tempo todo, mesmo que pessoas novas não estejam entrando no time.
Como fazer isso:
Acho que isso tudo, feito continuamente torna o processo de onboarding muito mais fácil. Aquela pessoa que tá começado vai ter uma imensidão de recursos à disposição e vai conseguir atingir aquelas métricas lá de cima: ser produtivo mais rápido, não diminuir a produtividade do time e se integrar ao time mais rapidamente.
Acho que é isso que já vi de bom por aí, quais sugestões você daria?