O que eu posso fazer? Como você reagiria? SOCORRO! [fechadas]

13

Estou tentando liderar uma equipe de software que está ficando para trás. Um dos principais problemas é que, sempre que algo é levemente difícil, acabo tendo que atribuí-lo a mim mesmo. Tive outro desenvolvedor com habilidades moderadas e meio estagiário. Infelizmente, as habilidades do outro desenvolvedor não incluem design.

Então eu implorei ao meu chefe por um dos caras de uma das outras equipes, ele está trabalhando aqui há mais tempo do que eu (5 anos). Ele não pode competir comigo no design OU na linguagem que usamos, mas eu pensei que ele era o mais competente além de mim.

Hoje ele me deu um pedaço de código que fazia algo que não era nem um pouco diferente de:

object const& my_class::get_object() const 
{ 
  return *std::unique_ptr<object>(new object());
}

Ele me perguntou se isso era um problema! Eu disse a única coisa que consegui pensar: "Sim. Isso é um problema". Então ele vem até a minha mesa me perguntando como consertar !! Eu disse: "Use um objeto que sobreviva à chamada da função". Então ele começa a surtar: "Sim, mas como, a única coisa que consigo pensar é tornar uma variável de membro".

Eu estava um pouco ocupado nesse momento, porque já estava tentando trabalhar mais, tive que assumir o outro cara do time, porque ele não conseguia descobrir ... Eu disse ao cara para ir embora porque eu estava ocupado e ir descobrir sozinho. Então ele sai zangado, falando sobre como não é culpa dele se ele estraga tudo. Ele está surtando desde que entrou na equipe e não acho que esteja melhorando.

Sinto como se estivesse me afogando aqui. O que posso fazer? Qual era o caminho certo para lidar com isso? Teria sido mais razoável ajudar esse cara que está escrevendo C ++ há 7 anos a descobrir como retornar corretamente uma referência a um objeto que não é destruído no momento em que é devolvido? Eu sinto que isso é ridículo ter que fazer e me pergunto como diabos eu faria algo assim.

Às vezes eu acho que eles estão fazendo isso de propósito, mas isso me parece apenas um golpe ... mas, novamente, o mesmo acontece com a pergunta que acabei de fazer hoje. Não é um garoto sentado em casa tentando descobrir seu primeiro programa, tendo seu cérebro explodido por indicadores.


fonte
4
GRITO!!! E vá em um discurso retórico. Isso faz você se sentir melhor. Oh espera, eu vejo que você já está fazendo isso. Tente sorrir. :): D (sorrisos maus são OK, também>:. D)
Mateen Ulhaq
Ele acabou de me enviar um e-mail dizendo que, como eu tinha um "forte desejo de não ser interrompido", ele não podia continuar e estava voltando para o outro projeto: p
7
Por que alguém que não tem o mínimo conhecimento de ponteiros e gerenciamento de memória está trabalhando em um projeto C ++?
Charles Salvia
2
Uma explicação possível: por muitos anos, a sabedoria popular era que a STL não estava pronta para o horário nobre e produziria código muito inchado para o uso em produção. Era possível ser um programador C ++ relativamente sofisticado sem saber muito sobre o STL. Obviamente as coisas mudaram. No entanto, se ele foi treinado no final dos anos 90, ou foi orientado por alguém treinado no final dos anos 90, ele pode criar um novo objeto () muito bem, mas ficar completamente sem articulações com esse novo std :: unique_ptr <object> () coisinha. Não resolve o seu problema, mas pode explicar de onde ele vem.
Charles E. Grant
2
@ Charles: concordou, tenho vários anos de experiência em C ++ na indústria de jogos e nunca toquei no STL nem sei nada sobre isso. Olhando para o trecho de código acima, tudo o que posso fazer é sacudir a cabeça e pensar: "se você deseja escrever C ++, escreva C ++, mas parece que você não deseja escrever C ++, então por que não usar apenas um nível superior? língua?"
precisa saber é o seguinte

Respostas:

14

Teria sido mais razoável ajudar esse cara que está escrevendo C ++ há 7 anos a descobrir como retornar corretamente uma referência a um objeto que não é destruído no momento em que é devolvido?

Eu entreguei todos os meus livros em C ++ há vários anos, jurando que nunca mais voltaria a tocar nessa linguagem, e até posso dizer que esse cara não sabe o que está fazendo. Eu acho que você deveria se sentar com ele e descobrir exatamente qual é o nível de habilidade dele.

Parece que talvez ele tenha 1 ano de experiência sete vezes - não sete anos de experiência. Nas empresas maiores, é bem possível que trabalhadores não qualificados se escondam e se misturem "ao redor do sistema" sempre que forem pegos.

Estou tentando liderar uma equipe de software que está ficando para trás. Um dos principais problemas é que, sempre que algo é levemente difícil, acabo tendo que atribuí-lo a mim mesmo.

Se for esse o caso, você deve parar e descobrir quais são os níveis de habilidade das pessoas. Entendo que você se sinta sobrecarregado por prazos e coisas do tipo, mas não pode fazer o trabalho quando não pode ter certeza do que sua equipe consiste. Você não pode concluir o projeto se continuar cometendo os mesmos erros - apenas mais rápido dessa vez.

Assumir todo o trabalho em si mesmo significa que você não tem uma equipe, nem tem confiança neles. Isso precisa ser corrigido primeiro.

Tangurena
fonte
7
+1 em "parece que ele tem 1 ano de experiência sete vezes".
Matthew Read
@ Matthew: tão verdade.
iAbstract
13

Esse tipo de problema é o pão com manteiga da administração. Uma pergunta que todos os gerentes precisam fazer é: "Meu pessoal tem as habilidades necessárias para fazer o trabalho?" Se a resposta for "não", um bom gerente não grita ou desiste - um bom gerente corrige a situação.

Aqui está uma observação - o C ++ não é uma linguagem trivial; portanto, é possível usar algo em que seus desenvolvedores juniores são mais competentes? Se ele deve estar em C ++, então você quer necessidade de treinar seus desenvolvedores existentes, ou contratar novos desenvolvedores com as habilidades apropriadas.

Eu estava em uma situação não diferente há um ano. Fui contratado para liderar uma equipe de programadores de VB6 trabalhando em código espaguete, e o desejo do gerenciamento era mudar para sistemas orientados a objetos e bem arquitetados, escritos em .NET. Fizemos um excelente progresso nessa área, portanto, esse tipo de mudança é possível.

Um comentário final. Se você não gostar de lidar com esse tipo de problema, eu sairia da gerência e voltaria a uma função puramente técnica. Esse tipo de problema bagunçado é o pão com manteiga da vida de um gerente, e não combina com todos.

Craig Schwarze
fonte
4
Este é um bom exemplo da visão de gerenciamento que muitos funcionários parecem não ter.
Mark C
Sim, eu não sou de gestão. Às vezes eu gostaria de ter, para ter mais tempo para trabalhar nessas questões. Outras vezes, fico feliz por não estar, porque não preciso. Eu sou apenas um líder técnico.
Edward Strange
1
Oi Noah, eu conversaria com quem estivesse gerenciando a equipe - eles são responsáveis ​​por garantir que as pessoas certas estejam disponíveis e tenham as habilidades certas.
Craig Schwarze
9

Consiga um emprego em uma empresa melhor, onde você pode trabalhar com pessoas competentes.

Matthew Read
fonte
7
Ou, alternativamente, pare de usar C ++. Isso resolverá muitas classes diferentes de erros desagradáveis.
Mason Wheeler
3
@Mason: Eu concordo. Todos escrevem C # e sejam felizes. :)
IAbstract
2
C ++ deve ser usado apenas onde C ++ é apropriado. Não conheço nenhuma linguagem existente que possa realizar o trabalho de C ++ tão bem quanto ele.
Mateus Leia
2
@ Matthew leia, com programadores tão incompetentes quanto no exemplo do OP, C ++ NUNCA seria apropriado?
Dan Rosenstark
4
@ Yar: Embora um programador ruim escreva códigos ruins em todos os idiomas.
Jon Purdy
7

O certo seria ajudá-lo com o problema. Não precisava estar no local certo. Você poderia ter dito: "Estou empatado agora. Leia o capítulo X do C ++ STL e vamos entrar em contato novamente amanhã às 11h".

Gritar pode funcionar para algumas pessoas e algumas situações, se for apenas uma questão de motivação. Mas, se é uma questão de competência ou conhecimento, gritar com as pessoas e explodi-las não ajuda em nada. É como gritar com pessoas que não falam inglês. isso não os ajuda a entender o que você está tentando dizer e pode matar qualquer motivação que eles tenham para tentar ajudá-lo. Eles estão onde estão, e nenhuma raiva ou frustração de sua parte os tornará melhores para escrever C ++ nas próximas 48 horas. Você também pode precisar voltar ao gerenciamento e explicar que o escopo do projeto está além das habilidades atuais de sua equipe. Coisas assim são por que ser um líder de equipe é muito difícil.

Charles E. Grant
fonte
Eu não gritei. Eu apenas disse, estou ocupado agora. Eu o explodi embora.
Edward Strange
3
@Noah, eu não estava lá, você estava, então eu me rendo. Considere o seguinte: as pessoas que estão tão frustradas que acham que estão deliberadamente fazendo coisas estúpidas, em vez de estúpidas, tendem a falar com uma voz muito tensa através dos dentes cerrados, enquanto pensam que estão sorrindo e se divertindo. A outra pessoa também pode estar tão estressada que ouve: "Você poderia voltar em cerca de 10 minutos?" como "Tire a folga do meu escritório, seu saco de lixo!". Ser líder de equipe geralmente envolve manipular o comportamento dos primatas através da linguagem corporal e do tom de voz.
Charles E. Grant
3

Bem, se alguém que escreve código há 7 anos perguntar algo que parece bastante básico, teria que me perguntar o que mais está acontecendo. Eu não sou um programador de C ++, então não posso comentar sobre esse aspecto.

O que eu gostaria de saber, como seu supervisor, eu assumiria, se algo mais estivesse acontecendo que o estivesse distraindo. Sei que você pode não ter tido tempo naquele momento, mas a última coisa que você deve fazer é afastar alguém assim.

Reserve um momento para conversar com ele e informá-lo imediatamente: "Entendo sua urgência nisso, mas não tenho tempo para isso agora. Assim que fizer isso, eu o informarei. Eu esperaria não mais que uma hora ".

Dessa forma, você demonstrou sua urgência, que não tem tempo e que voltará com ele. Mesmo que seja uma expectativa de quando você voltará com ele. Ele se sentirá muito melhor com isso do que ser espantado (é assim que eu aceitaria).

O que você deve fazer agora é reservar um tempo e avisar quando puder conversar com ele sobre o assunto. Acompanhe e engula um pouco de orgulho, deixe a pessoa saber que você entende sua urgência e simplesmente não teve tempo para lidar com isso. Você também deve ver se ele tem algo em suas áreas pessoais que poderia estar afetando sua atenção - ou seja, o que mais poderia estar distraí-lo. As vidas pessoais também nos afetam programadores. ;)

IAbstract
fonte
2

Eu acho que você precisa sentar com seu chefe e explicar tudo a ele. Isso soa maluco - o que esse cara está fazendo até trabalhando lá se não sabe o básico?

sevenseacat
fonte