Meu colega de trabalho é um cara legal, mas seu desempenho é insignificante. Eu digo ao meu chefe? [fechadas]

24

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:

  1. 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).
  2. 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.

LostInCode
fonte
3
Não seria muito mais fácil se ele não fosse um cara legal? É realmente péssimo estar na sua situação ... Não tenho nenhum conselho real, eu me encontrei em uma situação semelhante, mas ele não estava de acordo com o significado da palavra "legal". Então, o que fazer foi extremamente claro e imediatamente apoiado pela gerência, como se eles apenas procurassem uma desculpa. Mas alguém que você realmente gosta, é difícil. Boa sorte.
yannis 27/05
1
@ Yannis Rizos: sim, sim, certamente. Eu gosto do cara, e odiaria contribuir para que ele possivelmente perdesse o emprego, mas ele simplesmente não parece preparado para as expectativas impostas a um desenvolvedor em uma pequena empresa que faz muito. Tenho apenas 5 anos de experiência e nunca recebi uma tarefa de nível "júnior" aqui. Eu estava escrevendo interfaces de hardware desde o primeiro dia e foi ótimo.
LostInCode 27/05
O que é UX? .....
@ Thorbjørn Ravn Andersen: UX normalmente significa a experiência do usuário
Matt Ellen

Respostas:

24

Eu consideraria pelo menos a possibilidade de que, se ele foi contratado como um UX, pode ser que ninguém realmente espere um código realmente bom dele - eles podem esperar que o código dele seja apenas basicamente um protótipo que descreve o UX, e cabe a outros codificadores escrever código de produção com base nisso.

Agora, certamente não estou dizendo que é esse o caso, mas não me pareceria terrivelmente surpreendente. Pelo menos na minha experiência, não é raro as pessoas UX produzirem principalmente protótipos e storyboards. Se qualquer coisa, se o cara foi realmente contratado especificamente como especialista em UX, estou chocado com a noção de seu código de verificação. Tenho certeza de que nunca vi isso feito.

Se o cara é realmente um especialista em UX, a solução pode não ser tentar fazê-lo produzir um código melhor, mas tirá-lo da codificação (pelo menos qualquer coisa, exceto protótipos). Se ele é honestamente bom em design de UX, o verdadeiro erro é provavelmente pedir-lhe para escrever o código de produção. Em vez disso, ele provavelmente deveria estar (no máximo) trabalhando em uma sandbox de prototipagem de UX, onde seu resultado é usado para orientar a próxima rodada de código real que é produzido, mas nunca fez check-in como código de produção.

Jerry Coffin
fonte
Eu pensei um pouco sobre isso e isso me fez pensar. Eu não estava envolvido no processo de contratação, e ele definitivamente deveria codificar, mas talvez como um UX ele não tenha tido muita experiência em toda a programação. Dito isso, é um pouco difícil de acreditar, pois ele desenvolve software há mais de 20 anos e não havia muitos "UX" acontecendo nos anos 80.
LostInCode 27/05
Não, mas se ele fizer pouco código por (digamos) 10 anos, ele poderá ficar bastante enferrujado (especialmente se ele for um pouco fraco no início do processo). OTOH, quando você trabalha mais de 90 horas por semana, você definitivamente tem motivos legítimos para conversar com seu chefe, embora eu ache que me concentrei mais em resolver esse problema do que na fraqueza desse colega de trabalho.
Jerry Coffin
18

Eu tento ter uma regra de que eu sempre mantenho meu chefe informado das coisas que afetam o projeto. Positivamente e negativamente ... e em casos como esse, tento culpar coisas como o código, em oposição à pessoa que o escreveu. Parece muito menos que você está criticando um colega de trabalho e mais como se estivesse tentando melhorar a qualidade do produto.

Do ponto de vista gerencial, existem três maneiras comuns de lidar com os funcionários nessa situação:

  1. Controle suas fraquezas
  2. Jogue com seus pontos fortes
  3. Livre-se deles (não é realmente sua escolha)

Controle suas fraquezas, procurando ajuda externa.

Ei, chefe, estou um pouco preocupado com o estado do código ... é muito frágil e está quebrando bastante. Vai levar algum trabalho para chegar a um estado em que eu sinta que pode ser confiável. Existe a possibilidade de eu pegar emprestado um dos arquitetos por um dia ou dois para ver se conseguimos criar um bom design?

Você não está pedindo a outra pessoa para participar do projeto, está pedindo mais informações por especialistas por um curto período de tempo. Produza os documentos de que eles precisam, diagramas UML e trechos de código, se é isso que o arquiteto deseja. Eles verão em que estado está o código e, em seguida, seu chefe terá outra pessoa ecoando suas opiniões.

Esperamos que, a partir da reunião, você obtenha um design melhor que você e o outro desenvolvedor possam seguir sem que ele estrague muito. É para isso que projetamos e especificações em muitos casos: reduzindo o dano que desenvolvedores ruins podem causar.

Jogue com seus pontos fortes

Ei, chefe, estou trabalhando com o código do projeto x, e é lindo. O código, por outro lado, poderia usar um pouco de trabalho. Eu acho que o projeto ficaria melhor se [ux guy] fosse capaz de se concentrar mais no UX, enquanto eu faço algumas refatorações para colocá-lo em um estado mais estável. Quando o UX estiver sólido, o projeto b provavelmente poderá usar seu toque de Midas.

Aqui, é provável que seu chefe veja através dele; que você está dizendo a ele que o outro desenvolvedor não é muito bom ... mas pelo menos você não está sendo um idiota sobre isso. E se ele for honestamente realmente bom no trabalho de UX, ele poderá encontrar uma posição estável pulando em cada projeto e tornando-os ótimos do ponto de vista da usabilidade. Eu imagino que ele gostaria melhor assim também.

Steven Evers
fonte
+1 Para especificações técnicas e diagramas, reduzindo o dano que os desenvolvedores ruins podem causar. Quão verdadeiro é.
maple_shaft
+1 por colocar o foco no código incorreto em vez de jogar o jogo da culpa. Conflitos internos sempre têm um impacto negativo no cronograma e na qualidade do código em geral.
TMN
9

Pare de corrigir repetidamente seus erros. Ele não aprenderá; Eu sei que não.

A programação é amplamente uma tarefa lógica, mas também envolve a lembrança de memória. Quando você costuma escrever código comum, lembra-se de como implementou a solução da última vez , em vez de descobrir tudo de novo. Se ele nunca implementou o código correto, posso ver por que ele continua repetindo os mesmos erros.

Mostre a ele o que ele fez de errado e, talvez, conserte da primeira vez. Para outras ocorrências do mesmo incidente, peça para ele implementar a correção que você lhe mostrou.

Craige
fonte
5

Eu seria muito cuidadoso por alguns motivos:

  1. Como você tem certeza de que não estará trabalhando com ele após o lançamento inicial? Sua gerência poderia pensar: "Que equipe, veja como eles entregaram essa grandiosidade juntos!" e quero mantê-lo junto.

  2. Se você for ao seu chefe, qual é o seu nível técnico, tentando explicar sua posição? Quanta documentação você tem dos seus colegas com baixo desempenho?

Essas seriam as dicas que eu anotaria do que você pediu. Eu sugiro que você pergunte a ele sobre o código e veja se ele tem algumas justificativas para o motivo. Talvez ele esteja rodando em círculos enquanto o codifica, o que causa alguns problemas. O círculo é onde você codifica algo e, por meio de uma série de alterações, termina quase no mesmo ponto em que você começou, quando a lista de alterações de alguém é cancelada no final. Eu já estive nessas situações em que está mudando e desfazendo alterações após alterações que se cansam muito rapidamente.

JB King
fonte
Sim, eu tive pensamentos semelhantes. Na verdade, tenho medo do número 1, se não digo nada ao meu chefe, porque sinceramente não sou fã das mais de 90 horas que venho empregando para acertar as coisas. Eu não teria nenhum problema em mostrar ao meu chefe o que eu quero dizer, e ele reconheceria os problemas, mas ... eu simplesmente não sei como vou sair se o fizer. Eu tentei resolver isso com meu colega de trabalho de uma maneira educada e prestativa, mas ele continua cometendo os mesmos erros. Obrigado pela contribuição.
LostInCode 26/05
5

Quais são as consequências se você não refazer todo o trabalho dele e deixar o projeto falhar? As consequências para você, quero dizer.

Certamente alguém do seu nível de experiência e posição não chegou lá por acidente, ou o trabalho dele não é tão ruim quanto você o percebe ou toda a sua carreira é composta por pessoas como você, carregando-o junto.

Se você estiver trabalhando mais de 50 horas por semana em qualquer projeto, isso é algo muito errado e você se desassocia por não chamar a atenção do MP ou sair. Sou um forte defensor de trabalhar MAIS INTELIGENTE, NÃO MAIS DURO.

Trabalhe 50 inteligentes e, se o projeto não der certo, NÃO É SUA FALHA. Se falhar por causa de sua incompetência e eles a culparem, provavelmente esse não é o ambiente para o qual você gostaria de trabalhar.

Muitos amigos meus trabalham BEM ao longo das 40 semanas semanais em um projeto mal administrado, porque têm medo do fracasso quando não percebem o quão pouco o fracasso OU o sucesso afeta diretamente toda a sua carreira.

Mais de 80% dos projetos falham, não há vergonha nisso.

maple_shaft
fonte
+1 para uma abordagem adorável e para 69% dos números estatísticos inventados
cregox 27/05
@Cawas, LOL, adivinhei essa estatística, mas de memória. Eu li em algum lugar que quase 80% dos projetos são considerados fracassos, pois eles 1) Corrompeu o orçamento 2) Sob entregue ou 3) Perdeu o prazo e terminou tarde.
maple_shaft
Vi desenvolvedores com 20 anos de experiência que não conseguem codificar. E não trabalhe 50 horas por semana, a menos que tenha um patrimônio sério ou seja bem pago no mercado. Trabalhe com 40 espertos e, se isso não for suficiente, inicie uma busca de emprego.
Kevin cline
4

É chamado de revisão por pares. Seu gerente espera isso de você e precisa ser informado sobre o tempo gasto com o valioso desenvolvedor. Estou surpreso que ele já não saiba disso - mas, novamente, já vi coisas piores.

Não fale com ele em termos do outro cara, fale com ele em termos do trabalho diário que você faz. Se isso significa dissing seu código, que assim seja. Vá armado com links de check-in, etc., para dar algum tipo de prova do seu trabalho diário. Seu gerente pode querer exatamente isso de você - ele traz os 20 anos de experiência do usuário e você obtém o código robusto. Em vez de fazer wireframes, ele apenas escreve código de nível de protótipo. Converse com seu gerente.

E espero que você não tenha sido contratado como babá. Boa sorte.

Subu Sankara Subramanian
fonte
3

O projeto será iniciado mais cedo se você não tiver que reescrever / refazer o trabalho dele? Ajudará a entrar abaixo do orçamento? Você não precisa se intimidar, para levantar suas preocupações em particular. Aqui é onde a maioria das pessoas erra, elas reclamam sem oferecer soluções.

Existem recomendações específicas que você pode oferecer ao seu chefe para melhorar o resultado. Melhor documentação? Teste de usuário robusto? Seu objetivo é tornar a empresa, o projeto, seu colega e você mesmo um sucesso. Fingir que não há problema garante falha para três dos quatro - e você não é o sortudo.

Ray Mitchell
fonte
1

Você precisa ir ao seu chefe o mais rápido possível e claramente dizer o que disse aqui.

Primeiro, este é um dispositivo médico. Alguém pode se machucar ou morrer se houver um bug? O código no qual a vida ou a saúde das pessoas depende precisa ser o mais robusto possível humanamente, não o lixo de buggy, escrito por um otimista para o melhor cenário.

Ok, colocando meu chapéu de ex-gerente ... você não tem idéia se o seu chefe sabe disso, ou qual será a resposta dele se for novidade para ele. Mas se ele não sabe, ele precisa, e você não deve adivinhar, escondendo essas informações. Se ele concordar com seu colega de trabalho que codifica dessa maneira, ele informará você.

Eu me deparei com uma situação como essa há muitos anos. Eu e um "guru da rede" estávamos trabalhando em uma prova de conceito como contratados. Na verdade, ele mal estava conseguindo fazer alguma coisa, e principalmente brincando. Um dia, nosso chefe nos disse que tínhamos uma demo chegando. Logo, o "guru da rede" começou a receber muitas ligações telefônicas, e ele finalmente me disse que iria sair antes da demonstração para fazer outro show de contratação. Assim que pude pegar nosso chefe sozinho, contei a ele. Ele largou o "guru da rede" e trouxe alguém que eu recomendei, que produziu mais código em três dias do que o "guru" em três meses. A demo foi um sucesso - mas se eu tivesse ficado quieto, o projeto teria falhado completamente.

Bob Murphy
fonte
1
Eu também sugeriria que o autor informe seu gerente sobre o que eles estão gastando no tempo.
Ramhound 27/05
0

Sim, conte ao seu chefe. Então você verá se não é você quem está fora do lugar. O trabalho do gerente é saber como a equipe está se saindo e, se o chefe ainda não percebeu, talvez eles não se importem tanto com você quanto pela codificação adequada - como em muitos lugares em que estive.

E entre todos esses locais de trabalho diferentes, se eu tiver uma mão cheia (ou seja, 5) de amigos de todos eles já é um grande número. Todos eles tinham bons rapazes e moças, mas você não perde uma amizade por fazer seu trabalho - se você os perder, isso é uma coisa boa. No seu caso, ele estaria valorizando o trabalho mais do que você.

É verdade que não é uma tentativa de despedi-lo. Isso está apenas mostrando sua preocupação com o bem-estar do projeto, e é por isso que todos vocês estão (ou deveriam) estar lá.

Você tentou conversar com ele, afinal de contas, e se você não fizer nada, estará arriscando seu emprego lá.

cregox
fonte
2
Não mencionei que tentei, inúmeras vezes agora, explicar por que o código dele não está funcionando ou como poderia ser melhor. ele continua repetindo os mesmos erros, infelizmente.
LostInCode 26/05
Eu tive o mesmo problema com outro membro da equipe, embora, felizmente, tenha sido um projeto de classe "pequeno". Enquanto você trabalha no código, tente ensiná-lo, fazendo-o emparelhar com você. Espero que ele veja alguns de seus erros por conta própria, em vez de você dizer que isso está errado. Ele também pode ver como alguém da empresa trabalha.
27411 Jonathan
Cuidado para parecer MUITO preocupado com o projeto. Muitos lugares sofrem com a gestão arraigada e, muitas vezes, estão mais preocupados com sua lealdade a si mesmos do que com o projeto. Eles mesmos podem não ver o projeto tão importante quanto você, o que pode ser o motivo pelo qual eles nunca se incomodaram em abordar o fraco desempenho do outro desenvolvedor.
maple_shaft
@LostInCode Sim, e meu conselho não melhorou muito, mesmo depois que eu o editei completamente para corresponder às novas informações. Eu acho que sou Chandler.
Cregox 27/05