Novas tarefas de desenvolvedor sênior

21

Eu tenho um desenvolvedor sênior com oito anos de experiência em .NET a partir de amanhã para trabalhar em um aplicativo de 11.000 linhas de código. Na equipe, eu e outro programador. Ambos temos cerca de três anos de experiência cada.

É o meu primeiro projeto como gerente (também sou desenvolvedor do projeto) e é a primeira vez que introduzi alguém em uma base de código já estabelecida. Obviamente, examinarei cada módulo, o processo de implantação, etc., e entregarei a eles o local do repositório de controle de origem, a documentação (que não é a melhor), etc.

Quanto tempo devo dar a eles antes que eles estejam prontos para começar a escrever novos recursos e corrigir bugs?

MrBliz
fonte
1
Realmente depende de quão complicadas são essas 11.000 linhas de código. Eu esperaria que alguém com 8 anos (isso significa que eles começaram a usá-lo em 2003) seja capaz de rodar a toda velocidade em uma semana.
Ramhound
Como ponto de dados, algumas semanas atrás, transferimos um desenvolvedor para um projeto com 13.700 linhas de código JavaScript e assumimos que ele seria produtivo em um sprint (uma semana) sem sequer pensar nisso.
Gort the Robot
@StevenBurnap: eu gosto :) Acenda seus pés no fogo e veja se ele queima a casa.
Joel Etherton
Eu sou realmente o único que acha que 11k linhas não são muito? Eu teria dado um dia, pela pura bondade do meu coração.
Louis Kottmann 16/05
Parte de sua escolha de tarefas também pode depender de quão atrasado será o seu projeto. Para obter algumas idéias sobre como limitar o impacto da nova equipe na equipe existente, consulte programmers.stackexchange.com/questions/164781/…
DeveloperDon

Respostas:

38

Eu atribuiria alguns bugs de baixa prioridade no primeiro dia, para que ninguém grite se não tiver terminado imediatamente, dando ao novo desenvolvedor algum tempo para se familiarizar com a base de código.

A coisa mais crítica a fazer é fazer uma revisão do código de todo o seu trabalho nas primeiras duas semanas. Você não quer descobrir que o cara está indo na direção errada ou não está seguindo os padrões da empresa há meses. É melhor garantir que ele saiba o que é esperado desde o início, e as revisões de código garantem isso. É claro que acho que as revisões de código são boas para todos os funcionários (revisamos 100% do nosso código antes da implantação), mas são críticas para novos funcionários e devem ser feitas pessoalmente, onde você pode responder a perguntas e encaminhá-las para a documentação que podem não ter. visto ainda, se necessário.

O que você não quer é um cara novo entrando e usando um estilo diferente do resto de vocês. As pessoas geralmente tentam continuar usando o estilo de código de seu trabalho anterior, mesmo quando ele entra em conflito com o estilo de código usado no novo local, o que pode criar confusão e aborrecimento por parte dos outros desenvolvedores.

Uma coisa que notei, mesmo com desenvolvedores experientes, é que alguns deles não são tão bons quanto pareciam na entrevista; a revisão de código ajudará você a descobrir isso rapidamente, para que você possa corrigi-lo. Isso também os incentivará a realizar alguma coisa. Vi novos funcionários que não são revisados ​​por código arrastar um projeto sem mostrar o que estavam fazendo com ninguém e, em seguida, saem uma semana antes do prazo que sabiam que não iriam atingir porque eles estavam loucos e ainda não haviam concluído nenhuma parte do projeto. É melhor verificar cedo e frequentemente com novas pessoas até ter certeza de que elas estão funcionando.

Além disso, é normal que o novo cara fique chocado com o estado do seu projeto legado. Não foi projetado da maneira que ele pensa que deveria ter sido. Espere isso, ouça-o e não descarte automaticamente tudo o que ele diz. Em particular, essa pessoa parece ter mais experiência do que você ou os outros desenvolvedores; pode ver coisas que você não considerou. No entanto, como gerente, você deve equilibrar as alterações propostas com a carga de trabalho e os prazos atuais. Todos vocês podem investir algum tempo aprendendo a refatorar o código existente e investir algumas horas nas estimativas de tempo para fazer isso, especialmente se o novo cara tiver algumas preocupações válidas. Provavelmente, você não pode apoiar uma reescrita total (muitas pessoas que entram no novo grupo pensam que devemos começar de novo e fazer melhor)

Se você tiver algum tempo em que não se espera que ele esteja contribuindo totalmente (e contabilizando totalmente seu tempo pelo cliente), também pode ser um momento em que ele poderá começar com algumas daquelas coisas de refatoração que você queria fazer, mas que ainda não fez ' Não tive tempo de fazer. Às vezes, é bom usar o período de treinamento da nova pessoa para abordar algumas coisas que não estão no plano do projeto. Eles podem aprender a base de código e, se o que eles querem fazer não funcionar, você não afetou as agendas existentes porque ainda não as incluiu na agenda existente. E se funcionar, você poderá obter uma grande vitória, facilitando a manutenção futura ou melhor a segurança ou seja qual for o problema.

HLGEM
fonte
Essa é uma ótima resposta, especialmente a parte sobre revisões de código e a opinião dos desenvolvedores sobre o estado atual do projeto. Felizmente, não é um projeto legado, é de fato muito novo e está se movendo em um ritmo muito rápido.
MrBliz
1
+1 - Muitos pontos positivos, mas gostaria de reiterar que é absolutamente essencial revisar todo o trabalho deles, para que você possa avaliar o nível de habilidade deles e garantir que eles cheguem à mesma página da equipe. Infelizmente, isso leva muito mais tempo do que nas primeiras duas semanas. Outro +1 por não ser tão bom quanto na entrevista. O que acontece com muitas pessoas entre a entrevista e o dia em que aparecem é um mistério para mim. As lobotomias são realmente tão comuns quanto parecem? Essa é a única explicação que posso encontrar.
Dunk
Sim, revise o trabalho deles para garantir que não estejam se desviando dos padrões estabelecidos. Mas se eles têm oito anos de experiência e você tem três , provavelmente sabem mais do que você . Certifique-se de não forçá-los a fazer as coisas do seu jeito.
DJClayworth
2
@DJClayworth, embora eu concorde que é provável que a nova pessoa tenha mais conhecimento e o OP deva prestar muita atenção ao que ele quer fazer de maneira diferente, há momentos em que seu conhecimento do sistema e os requisitos podem superar seus melhores conhecimentos gerais e pode ser necessário instruí-lo a seguir um caminho abaixo do ideal por razões baseadas no histórico do sistema e nos requisitos. Às vezes, você precisa insistir para que eles façam as coisas do seu jeito por razões que talvez ainda não tenham conhecimento. É claro que quando você o faz, precisa explicar o porquê, não apenas o fazemos sempre assim.
HLGEM
@ Dunk: na minha experiência, até as piores pessoas do mundo podem se comportar por algumas horas durante uma entrevista, quando estão desesperadas por um emprego. É por isso que contratos de contratação, estágios e exemplos de código são tão importantes para as novas contratações.
Jordan
18

Inicie-os imediatamente em pequenas tarefas - coisas que não exigem uma imagem maior.

À medida que eles se tornam mais confiantes e familiarizados com a base de código, gradue-os para tarefas cada vez maiores. A rapidez com que isso acontece depende principalmente deles.

Oded
fonte
Isso é praticamente o que eu estou pensando.
MrBliz #
+1, este é um acéfalo, especialmente porque a base de código é pequena.
Louis Kottmann
8

Eu sempre gosto de ter as tarefas que me foram designadas diretamente, com o entendimento de que levará muito mais tempo para pesquisar o código, e muitas perguntas serão feitas nos primeiros dias / semanas.

Acho que não sou capaz de envolver completamente a cabeça em um projeto até ter que realmente entrar e consertar ou mudar alguma coisa.

Além disso ... Não importa o quão bem você pense que tenha explicado como um projeto funciona, sempre haverá o 'ah, sim, eu esqueci de lhe contar', 'encontramos esse problema, então fizemos isso' momentos que não são provocados até você realmente começa a trabalhar.

aceinthehole
fonte
+1 Quanto antes o novo contratado começar a analisar o projeto, mais cedo o novo contratado ficará confortável (disposto a assumir a responsabilidade / responsabilidade) do que está fazendo.
Chad Harrison
3

Quão mais?

Quanto tempo dura uma corda?

Quando ele está confortável: quando ele corrige seu primeiro erro -> ele está pronto .

Noite escura
fonte
3

Na comunidade de código aberto, todos os que desejavam ingressar no projeto lidam primeiro com alguns pequenos problemas. Se ele ou ela puder lidar muito bem com o problema, a tarefa mais importante será atribuída a ele. Dessa forma, eles se tornariam o desenvolvedor principal do projeto.

Esse desenvolvedor sênior tem oito anos de experiência em .NET, então você pode atribuir a ele alguns bugs simples para corrigir. Se for fácil para ele lidar com eles, você poderá atribuir-lhe problemas complexos para ajudá-lo a se familiarizar com todo o aplicativo. Depois disso, ele poderia começar a escrever novos recursos e analisar problemas estranhos. Basta fazê-lo, não há tempo de configuração!

Aprenda todos os dias
fonte
2

8 anos de experiência. Eu apenas o jogava. Ele deveria nadar. Como outros observaram, comece com pequenas tarefas fáceis. Isso permitirá que ele atrapalhe o processo de check-in / check-out de código e quaisquer outros processos de desenvolvimento que você tiver.

Mudei de emprego muitas vezes e fui colaborador de todos eles na primeira semana. O mais difícil levou uma semana para compilar o código (pelo menos 100 mil linhas de código). Uma compilação completa levou 8 horas para esse projeto.

Trabalhei algo como 80 horas na primeira semana (o projeto estava seriamente atrasado).

Bill Leeper
fonte
Interessante que todo mundo está assumindo que é um cara ... :)
MrBliz
1. Eu diria que em inglês o pronome padrão é masculino, digitar "ele ou ela" o tempo todo seria adequado, mas mais esforço do que a maioria das pessoas deseja oferecer. 2. Qual a porcentagem de programadores do sexo feminino? Nesse caso, o padrão para masculino tem estatísticas do seu lado ... Então, eu imagino que é mais apenas usar a maneira simples padrão de se referir a um indivíduo aleatório, não assumindo especificamente que eles são homens ou mulheres.
Timina
Eu sou um cara e todo mundo também deve ser :-). Apenas minha maneira de escrever, eu não sou disciplinado o suficiente para escrever ele / ela o tempo todo.
Bill Leeper
1

Para um aplicativo tão pequeno e um desenvolvedor experiente, acho que um dia é suficiente para erros básicos. Bugs envolvidos ou pequenos recursos próximos a uma semana (depois de serem mais claros no domínio e na arquitetura do problema).

Telastyn
fonte
2
Acho que meus padrões provavelmente são muito altos, mas o seu ... 1 dia ... e 1 semana para ser realmente produtivo? IME, isso não é muito realista.
Dunk
@ Dunk: receber tarefas e poder abordá-las sem se perder completamente? Eu não estou dizendo que vai ser a toda a velocidade, mas nesse ponto que deve ser capaz de caçar através do código-base, sabe a quem perguntar para saber mais, etc.
Telastyn
Sim seriamente. 11k LoC não é muito grande. Faça com que ele seja configurado para que ele seja compilado e executado no depurador e mostre a ele como ele funciona. Isso deve ser o suficiente.
gbjbaanb
1

A resposta é: depende. Se você deseja que ele conserte um erro em algo ou mude a cor de um elemento da GUI, cerca de 5 minutos (aqui é onde mantemos nosso código), se você deseja um redesenho total de toda a arquitetura do aplicativo que será exigir um pouco mais.

Realmente depende da tarefa que você espera que ele realize.

jmoreno
fonte