Eu fui colocado em um projeto há cerca de três meses, que estava sendo desenvolvido até então por um único desenvolvedor recém-contratado, porque estava ficando para trás. Para ser justo, o projeto é uma interface para um dispositivo médico que possui muitas sutilezas e é relativamente complexo, portanto, colocar uma pessoa no projeto que não tinha experiência na empresa foi provavelmente uma má decisão do ponto de vista gerencial.
Enfim, quando comecei a trabalhar, percebi que ... bem, simplesmente não funcionou. A interface do usuário parecia boa, mas na verdade não fazia muita coisa, e o que fazia fazia incorretamente. Mais uma vez, para ser justo, muito disso ocorreu devido ao fato de esse desenvolvedor não estar preparado adequadamente para gravar uma interface em nosso dispositivo. No entanto, também percebi rapidamente que o código existente era frágil e extremamente difícil de manter.
Agora, não pretendo ser o melhor programador do mundo. Eu trabalho com muitas pessoas muito inteligentes, que são melhores desenvolvedores do que eu. No entanto, eu tento muito escrever código tão simples quanto possível e robusto. Eu testo meus checkins. Se vejo que meu código está ficando confuso e difícil de trabalhar desde o início, eu o altero. Eu tive algumas conversas com meu colega de trabalho na tentativa de ajudá-lo a escrever um código melhor. Isso é um pouco complicado, porque a) ele tem mais de 20 anos de experiência no campo e eu tenho apenas 5 eb) foi contratado como o chamado "especialista em UX" e outros o veem como um indivíduo experiente.
Dito isto, eu simplesmente não vejo. Ele é um cara muito legal e é razoável, mas, repetidamente, verifica códigos frágeis, funciona apenas nos casos mais otimistas e 9 em 10 vezes acabo corrigindo bugs em seu trabalho. Seu código parece amador e ele obviamente não tem o nível de experiência que afirmou ter quando foi contratado. Chegou ao ponto em que as horas extras que gasto refatorando seu código e corrigindo seus erros me afetaram. Na minha opinião, tenho duas opções:
- Não faça nada, busque minha bunda para garantir que este produto saia no prazo e seja robusto e espere que ele falhe no futuro (não vou trabalhar com ele nesse projeto após o lançamento inicial).
- Conte ao meu chefe sobre o desempenho dele. Meu chefe é um homem razoável, mas me sinto estranho ao adotar essa abordagem. Eu não gosto de 'bater' (por falta de um termo melhor) com meus colegas de trabalho e não sei como ele o aceitará.
Então é isso. Tentei trabalhar com isso com meu colega de trabalho, explicando por que sua implementação não funcionará ou como seu código pode ser tornado mais sustentável, mas ele continua cometendo os mesmos erros. Estou muito interessado em saber como outras pessoas lidaram com situações semelhantes, especialmente as pessoas na administração atualmente. Agradecemos antecipadamente por qualquer conselho que você possa me oferecer.