Ei, novato, não contratamos você só para terminar as tarefas que recebeu
(newsletter.kentbeck.com)- O valor de um engenheiro iniciante (N00b) não é determinado pelo número de tarefas concluídas, mas pelo potencial de crescer e se tornar um engenheiro que, no futuro, aumentará até a produtividade das pessoas ao redor
- Engenheiros seniores classificam iniciantes como A, que transformam a organização; B, que entregam resultados consistentes; ou C, que podem sair em até um ano. O iniciante precisa emitir sinais de que pertence à categoria desejada
- Para ser B, o código precisa funcionar / é preciso compartilhar o andamento / concluir em um prazo razoável, como dentro de 3 vezes a estimativa / e não criar trabalho desnecessário para revisores e responsáveis pela operação
- A não é quem termina muitas tarefas, mas quem aprende mais a cada tarefa, removendo trabalho desnecessário / encontrando os 10% de maior impacto / melhorando o design / enviando pequenas mudanças em sequência etc.
- Atividades que mostram desempenho excepcional levam mais tempo do que simplesmente fechar tarefas, mas é preciso não se perder indefinidamente em desvios e investir o tempo economizado de uma forma que ajude a si mesmo e aos colegas
Contratamos o engenheiro do futuro, não a produtividade atual
- Os critérios pelos quais engenheiros seniores enxergam iniciantes se dividem, em linhas gerais, em três categorias
- A torna-se um agente de mudança que eleva significativamente até a produtividade das pessoas ao redor
- B entrega resultados estáveis e cresce gradualmente
- C tem chance de não permanecer na organização daqui a um ano
- Seniores precisam realizar seu próprio trabalho e, ao mesmo tempo, julgar em qual categoria cada iniciante se encaixa
- A A, oferecem o máximo de suporte possível
- A B, oferecem suporte suficiente para que se torne um engenheiro maduro
- Para quem não deve permanecer na organização, tentam gastar o mínimo de esforço possível
- As tarefas dadas a iniciantes poderiam ser concluídas com mais rapidez e facilidade se um gerente ou líder técnico as fizesse diretamente
- Se só a produtividade imediata importasse, não haveria motivo para contratar iniciantes; a empresa paga o salário atual como um prêmio de opção para garantir o engenheiro que o iniciante poderá se tornar no futuro
- Se o desenvolvimento der certo, surge uma próxima geração forte de engenheiros; se falhar, os seniores continuarão fazendo o mesmo trabalho de engenharia daqui a 10 anos
Não dá para avaliar iniciantes apenas pelo número de tarefas
- Entre um iniciante que concluiu 40 tarefas em um trimestre e outro que concluiu 20, não dá para saber quem é melhor apenas pelo número de tarefas
- Mesmo que todas as tarefas tenham a mesma dificuldade, ainda faltam informações necessárias para separar A/B/C
- O objetivo da avaliação não é comparar a produção de curto prazo, mas verificar que tipo de engenheiro o iniciante está se tornando
Sinais básicos que separam B de C
- Mais importante do que fechar a tarefa no menor tempo possível são as seguintes condições
- O código escrito realmente funciona
- Avisar outras pessoas sobre o que está fazendo
- Concluir a tarefa em um prazo razoável, como dentro de 3 vezes a estimativa inicial
- Não criar uma quantidade injustamente grande de trabalho adicional para outras pessoas
- Pedir ajuda e consumir o tempo de outra pessoa é aceitável, mas as situações abaixo viram sinais ruins
- Fazer o revisor gastar tempo desnecessariamente excessivo
- Fazer o responsável pelo on-call responder por causa de erros
- Fazer o responsável por DevOps entrar em ação por causa de uma falha causada por você
- Comportamentos que tentam manipular o sistema de avaliação, como mentir dizendo que fez algo que não fez, tornam-se imediatamente um sinal de C
- Qualquer pessoa pode emitir um sinal de C por engano, mas não deve repetir o mesmo sinal de C duas vezes, e, no conjunto, os sinais correspondentes a B precisam ser mais numerosos
A velocidade de aprendizado que separa A de B
- Entre os iniciantes que são pelo menos B, o critério que distingue A não é o número de tarefas concluídas, mas quanto se aprende em cada tarefa
- É esperado que a produtividade atual de um iniciante seja menor que a de um sênior; o importante não é a produtividade em si, mas a velocidade com que ela melhora
Comportamentos correspondentes a A
- As ações a seguir vão além de simplesmente tratar tarefas e se tornam sinais de A, ampliando o aprendizado e a produtividade da organização
- Criar uma justificativa convincente de que aquela tarefa nem precisa ser executada
- Analisar dados e encontrar os 10% de tarefas que geram 90% de todo o benefício
- Implementar a mesma tarefa de várias maneiras
- Descobrir um design melhor e enviar uma série de diffs que não apenas implementam a tarefa, mas também simplificam o código ao redor
- Se você primeiro tornar uma mudança difícil mais fácil antes da implementação e depois executar a mudança que ficou fácil, isso será avaliado ainda melhor
- Enviar vários diffs pequenos em sequência, em vez de um único diff grande
- Subir um diff todos os dias traz uma vantagem adicional
- Escrever uma ferramenta interna que simplifique tarefas semelhantes
- Se não houver tarefas semelhantes que voltem a ocorrer, isso pode até contar contra
- Enviar diffs úteis também para outras equipes ou áreas do código, sem prejudicar a conclusão do trabalho oficial
- Documentar o que aprendeu de forma interessante / útil / convincente
- Fazer reviews com insight e responder rapidamente ao feedback
- Incluir testes unitários robustos
- As formas de demonstrar desempenho excepcional são muito mais variadas do que as formas de evitar erros
Um prazo razoável é mais importante que o menor tempo possível
- Atividades que correspondem a sinais de A levam mais tempo do que fazer apenas a implementação mínima necessária para fechar a tarefa
- Isso não é permissão para gastar tempo indefinidamente em desvios interessantes
- O trabalho oficial deve sempre ser concluído dentro de um prazo razoável, mas não precisa necessariamente ser concluído no menor tempo absoluto possível
Reinvista o tempo economizado em si mesmo e nos colegas
- Pode parecer que não há tempo para aprendizado e melhorias adicionais, mas técnicas como gestão do tempo / gestão da fila de tarefas / gestão da fila de diffs podem acelerar o andamento
- O tempo economizado assim deve ser usado para investir no próprio crescimento de uma forma que também beneficie outras pessoas
4 comentários
Acho que o assunto deveria ser como contratar um júnior com potencial para se tornar um A e como treiná-lo para virar um A...
O conteúdo do texto é bem provocativo..
Contratam A, que transforma a organização / B, que entrega resultados consistentes / C, que pode ir embora em menos de 1 ano
Entendo separar A e B, mas C deve incluir muita gente que é A e B ao mesmo tempo também...
Pelo jeito, é uma empresa com satisfação dos funcionários extremamente alta, que reflete muito bem e imediatamente no salário o desempenho e o impacto de cada um.
Vendo isso, na verdade a possibilidade de sair em menos de um ano pode ser uma forma eufemística de falar em demissão...
Ah, entendi. kkkkkkkkkkkkkkkkkk Eu nem tinha pensado em demissão.