Não concordo com a afirmação de que os gerentes não olham para o código. Quando gerenciei equipes, observei algumas das saídas de todos os engenheiros - e uma grande delas é o código. Mas não o único - e-mails, documentos de design, documentos técnicos - tudo isso leva em consideração.
Mas esse definitivamente não é o único fator. Se um cara está sentado em um canto e escrevendo um código brilhante , mas é um animal com quem conversar, não responde perguntas, não compartilha status e não se compromete quando surgem problemas de desenvolvimento - não tenho tanta certeza de que ele seja um ativo para a equipe. Especialmente comparado a um cara que escreve código moderadamente decente, mas pode fazer tudo o que precede.
Aqui estão algumas coisas que olho quando estou em posição de dar recompensas, mas com a enorme ressalva de que é absolutamente uma reação intestinal, porque nada disso pode ser quantificado:
- Status - é claro, preciso e oportuno? Quando discutida, a pessoa está no topo do status ou está um pouco embaçada nas questões atuais? A pessoa tem o julgamento certo para levantar uma bandeira vermelha quando algo pegar fogo?
- Solução de problemas - perguntar e responder é importante. A pessoa sabe quando pedir ajuda ou onde está girando suas rodas indefinidamente? Melhor ainda, quando outros têm problemas, a pessoa ajuda a encontrar a solução ou se torna parte do problema? Mesmo tendo o bom senso de recuar quando o problema não está na sua área de especialização, vale alguns pontos. Também há pontos para sair do grupo ou da empresa e acessar sites como esse ou outras respostas da Internet.
- Atenção ao processo - geralmente isso é bastante óbvio - mesmo em uma empresa sem retenção anal, se alguém está impedindo o sistema, isso é visto no caos que eles deixam para trás. Se outras pessoas estiverem limpando os recursos de outras pessoas porque não aderiram às orientações ou à arquitetura, temos um problema. Os pontos de bônus vão para aqueles que descobrem maneiras de tornar a consistência e a qualidade mais fáceis .
- Taxas de conclusão vs. bugs versus complexidade - faça as coisas, mas faça as coisas da maneira certa. Todo mundo tem alguns bugs, mas se o cara faz coisas rapidamente e com bugs, temos um problema. Em geral, acho que isso não é algo que você possa avaliar no sentido diário - deve ser uma retrospectiva, uma fase ou um trimestre fiscal.
E a contribuição de outras pessoas. Frequentemente, estive em uma posição em que vários engenheiros estavam encarregados de várias partes do projeto. Às vezes, a equipe lidera e, às vezes, apenas os proprietários de uma parte específica da produção (como "o cara da construção"). As pessoas gostam de falar sobre os extremos - os atos de heroísmo ou a frustração das crianças problemáticas. Geralmente, no ato de acompanhar essas questões, eu descubro muito sobre as duas partes.
Também há um fator no gerenciamento de humanos . Nenhum engenheiro é exatamente como qualquer outro. Para que nem todos brilhem na mesma luz. Um escreve código brilhante sem erros, mas outro ajuda a resolver problemas transversais que quebram o código de todos. Um é ótimo pessoalmente, um é melhor por escrito. Um é incoerente às 9:00 da manhã, um sai daqui às 15:00. Há uma certa necessidade de dar um passo atrás, descobrir o que é mais benéfico para a equipe e o que pode ser um fator de viés pessoal (como o desejo de matar aquele cara picador às 4:00 da manhã, só porque eu não posso funcionar até as 11: 00:00).