12 pontos por GN⁺ 2 시간 전 | 4 comentários | Compartilhar no WhatsApp
  • 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

 
loblue 2 시간 전

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..

 
kimjoin2 1 시간 전

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.

 
cartwheel8815 1 시간 전

Comportamentos que tentam manipular o sistema de avaliação, como fingir que fez um trabalho que não fez, tornam-se imediatamente um sinal C

Vendo isso, na verdade a possibilidade de sair em menos de um ano pode ser uma forma eufemística de falar em demissão...

 
kimjoin2 1 시간 전

Ah, entendi. kkkkkkkkkkkkkkkkkk Eu nem tinha pensado em demissão.