Nossa empresa contratou cinco novos desenvolvedores juniores para me ajudar a desenvolver nosso produto. Infelizmente, os novos recursos e as correções de erros recebidas geralmente requerem um conhecimento mais profundo do que um desenvolvedor recém-formado normalmente (segmentação / simultaneidade, depuração de gargalos de desempenho em um sistema complexo etc.)
Delegar (e planejar) tarefas que eles (provavelmente) podem resolver, responder suas perguntas, orientar / gerenciar, revisar seu código consome todo o meu tempo e geralmente sinto que poderia resolver os problemas em menos tempo do que todo o processo de delegação (contando apenas o meu tempo). Além disso, não tenho tempo para resolver as tarefas que exigem conhecimentos mais aprofundados do sistema / habilidades mais avançadas e não parece que isso mude no futuro próximo.
Então, o que é agora? O que devo fazer para usar efetivamente o tempo deles e do meu?
Respostas:
Sim, você pode resolver as coisas mais rapidamente do que elas, é por isso que você é mais velho e elas não. No entanto, um bom aluno sênior também quer levar os juniores para o nível sênior, e a única maneira de fazer isso é deixá-los aprender a fazer as coisas.
A tutoria é o uso mais eficaz do seu tempo agora, não a codificação.
Veja dessa maneira, se você passar os próximos seis meses mentorando de maneira eficaz e os juniores aprenderem o suficiente para se tornarem desenvolvedores intermediários - então você terá 5 desenvolvedores intermediários e um sênior. Se você faz todo o trabalho duro porque é mais rápido, em seis meses ainda terá cinco juniores mexendo o polegar (bem, o melhor deles terá passado para outros trabalhos até então, se você não lhes der um trabalho desafiador, então você pode ter menos ou mais novos devlopers juniores) e um sênior sobrecarregado e irritadiço.
Você sabe quais interações complexas são normalmente encontradas nos bugs; portanto, desenvolva algum treinamento especificamente sobre esses tipos, se necessário, como solucionar problemas e encontrar o problema real e, em seguida, os tipos de métodos normalmente necessários para corrigi-los. Depois, dê a eles esses problemas à medida que surgirem. Sim, eles levarão mais tempo para corrigi-los e você deve permitir isso em suas estimativas de tempo.
A ideia de programação de pares é ótima. Emparelhe com um diferente para cada problema verdadeiramente avançado. Mesmo que eles ainda não saibam o suficiente para resolver o problema, ter o júnior no teclado enquanto você lhes diz o que tentar em termos de procura da causa ajudará a ensiná-los o processo de solução de problemas. Claro, não apenas espere que eles tomem dictaion. explique o que você deseja que eles procurem e por quê. Peça suas idéias e ouça-as. Explique por que a ideia deles não é uma boa escolha, se não for. Use o método socrático de ensino, fazendo perguntas importantes. Eles se lembrarão melhor da solução que surgiram com suas perguntas principais do que a que você ditou a eles sem explicação. Eles também se lembrarão melhor se digitarem a solução completamente, em vez de apenas observá-la.
Depois que o júnior o ajudar a resolver uma classe específica de problemas como parte de um par, você poderá emparelhá-lo com outra pessoa na próxima vez em que essa classe de problema surgir e ficar disponível apenas para consultoria, não ficando por cima dos ombros deles. eles tentam coisas diferentes.
Você tem cinco novas pessoas, o que é realmente difícil. Você precisa ser justo com todos eles e alternar com quem você emparelha ou orienta. Não jogue favoritos. Mas você também precisará ser uma pessoa que forneça "Amor Difícil" se alguém não tiver sucesso e progredir. Você pode precisar chamar um ou mais deles de lado e dizer que eles precisam melhorar e por que você acha que eles não estão conseguindo. Uma única pessoa permitirá que você faça todo o trabalho, se você emparelhar e puder; não permita que isso seja apenas porque é mais fácil. Se a pessoa não puder fazer o trabalho, é mais gentil com ela e muito melhor para a sua equipe se você não a realizar, pois é óbvio que ela não pode ou não aprenderá a ser mais independente.
Lembre-se, você obtém o que espera. Se você não espera muito, não receberá muito. Espere que eles brilhem e a maioria deles chegará ao seu padrão.
fonte
A programação em pares parece uma grande possibilidade aqui.
Para uma anedota / exemplo dessa sugestão de trabalho: Foi assim que fui apresentado à parte mais cabeluda da base de código em que trabalho - com o outro desenvolvedor relativamente novo com o qual me parei, acabamos fazendo algo assim:
Desde então, herdei a manutenção de toda essa parte da base de código, já que sou realmente o único que entende mais como funciona (os desenvolvedores originais que ainda estão por aí nem se lembram totalmente).
fonte
Ensine-os. Atribua-lhes tarefas que eles possam resolver facilmente.
Simplificando, a questão é que a referida força de trabalho não é qualificada o suficiente para ser muito produtiva com a tarefa que possui. Como tal, você pode 1) facilitar a tarefa 2) tentar aumentar a habilidade da força de trabalho.
Problemas semelhantes quase sempre acontecem (até certo ponto) sempre que uma nova pessoa se junta a uma equipe e começa a trabalhar em uma base de código da qual não tem experiência. Isso se torna mais um problema se as ferramentas e metodologias são desconhecidas. Ao treinar a pessoa a se familiarizar com as ferramentas e metodologias, o problema pode ser amenizado mais rapidamente.
No entanto, resolver esse problema leva tempo - não se pode esperar que os outros saibam tudo ou aprendam tudo em um único momento. Talvez a introdução de alguns livros sobre concorrência, otimização de software e metodologias gerais necessárias seja um bom começo.
fonte
Parece que você não fez parte da decisão de contratação. Faça uma avaliação justa de suas habilidades para lidar com as tarefas atuais. Anote um relatório com uma recomendação (treinamento externo e tarefas, desde que isso não afete o tempo de entrega), envie o relatório ao seu gerente, que poderá começar a conversar com quem contratou esses funcionários. Uma nova pessoa pode ser absorvida em uma equipe, mas cinco novas pessoas ao mesmo tempo, não parecem boas, a menos que você tenha uma loja descontraída. O que quer que você faça, não tente ensiná-los no tempo do projeto, a menos que isso seja explicado no plano.
Edit: Pode ser apropriado mencionar a Lei de Brook nesta situação.
fonte
Talvez você possa dedicar algum tempo criando um ambiente de área restrita onde você pode jogá-los para resolver alguns dos problemas difíceis sem causar danos. Peça-lhes que testem suas soluções o máximo possível. Coloque mais de 1 no mesmo problema.
Todas essas coisas oferecem a possibilidade de serem qualificados o suficiente para serem úteis, além de exigirem menos do seu tempo. Obviamente, se você os tem (na maior parte) afundando ou nadando e eles praticamente afundam, é preciso repensar as coisas.
Na profissão de programador, as pessoas que não conseguem aprender principalmente sozinhas provavelmente não valem o esforço necessário para ensiná-las. Mas acho que eles provavelmente o surpreenderão com o desempenho deles quando você reduzir a ajuda.
fonte