Teste técnico para um desenvolvedor sênior [fechado]

21

Eu tenho um dilema. Tenho um candidato para uma posição de desenvolvedor de software sênior.

O cara parece competente em uma primeira conversa com ele e respondeu às perguntas com precisão e me deu provas de seu trabalho. Além disso, ele foi altamente recomendado por alguns colegas de confiança.

Nesse caso, sou tentado a pular o teste técnico que o RH exige, pois preciso preencher a vaga o mais rápido possível. Por favor, compartilhe sua experiência.

EDITAR:

Contra um julgamento melhor, eu testei. Melhores pontuações em quase todas as perguntas, mesmo em assuntos sobre os quais ele não se gabava. Mas eu apoiei uma certa ironia dele quando viu as perguntas do teste - que claramente não eram para os mais velhos.

Então fizemos uma oferta.

Obrigado a todos pelos insights.

Daniel Voina
fonte
22
recomendado por colegas de confiança deve ser bom o suficiente. A maioria não faria isso como sua reputação em jogo.
Aditya P
28
Se você não tem tempo suficiente para testá-lo agora, como diabos você terá tempo suficiente para demiti-lo, procure um novo candidato e teste esse cara? Faça certo pela primeira vez.
Alex Feinman
1
@ Alex: Não se trata de não fazer o processo corretamente. Quero contratar rápido, porque tenho um prazo a cumprir. Posso testá-lo o quanto quiser, até o fiz projetar soluções sobre o assunto - nenhum código, pois eu realmente não estava interessado na sintaxe da linguagem, mas na solução proposta e nas tecnologias adequadas.
Daniel Voina
Você não poderia contratar durante esse período de pressão?
Kevin Peno 16/05
1
@ Aaron, o RH estaria realmente preocupado com uma posição contratual? Especialmente se o contrato foi estabelecido a curto prazo para evitar dificuldades a longo prazo para a empresa.
Kevin Peno

Respostas:

34

Como sempre...

Depende

Eu nunca vi um teste técnico que demonstrasse competência. Eu já vi muitos testes técnicos que demonstraram ignorância - tanto por parte do testador quanto do testador.

Quanta confiança você tem no teste técnico? Você já pegou? Você acha justo?

Confidencialmente, fiz um teste técnico on-line como um favor para um cliente há um tempo (eles queriam minhas pontuações como uma 'linha de base' para novas contratações) e falhei - principalmente porque as perguntas do teste consistiam apenas em sintaxe e nomes de funções para um determinado versão de um idioma específico. Eu uso o idioma o tempo todo e uso há anos, mas não esses recursos específicos . Essas eram todas as coisas que eu podia procurar quando / se necessário - e, como tal, eram absolutamente irrelevantes para habilidade / competência.

Então isso realmente depende do teste. Se você acha que seu teste técnico é significativo, administre-o por todos os meios. Se não o fizer, livre-se disso . Sua impressão com base em uma entrevista pessoal e recomendações de colegas de confiança são muito mais valiosas do que qualquer teste .

Steven A. Lowe
fonte
:) Não estou realmente interessado na sintaxe ou na formatação de código. Eu só quero um cara experiente que possa lidar com a incerteza e que conheça bem as coisas dele. Além disso, ele é um ID SCJP verificado na Oracle. Vale a pena fazer perguntas sobre C # apenas por uma questão de processo de RH?
Daniel Voina
3
+1 "Ambas as partes do testador e do testador" ... de fato. Gostaria de poder +10 que
P.Brian.Mackey
1
@ Daniel: Eu acho que não - mas tenho uma opinião extremamente baixa dos processos e formalidades de RH. Penso que muito disso existe apenas para justificar a existência do departamento, em vez de agregar valor à empresa. Mas essa é apenas a minha opinião.
Steven A. Lowe
Se for um teste on-line, você pode procurar as respostas como faria normalmente, não?
Zan Lynx
3
risos na sua história sobre a falha no teste de uma tecnologia em que o cliente já sabe que você é especialista. Eu fiz esses tipos de testes antes e eles realmente me fizeram duvidar de minhas próprias habilidades (eu estava muito cedo na minha carreira para perceber o quão inútil o teste era.) Essa é exatamente a razão pela qual a maioria das certificações técnicas é, na melhor das hipóteses, palavras de ordem para colocar. seu currículo para verificadores de RH.
Jhocking 17/05
33

Os resultados do teste técnico farão diferença na sua decisão de contratação? A força de sua conversa com ele e as recomendações de colegas altamente confiáveis ​​são fortes o suficiente para tornar irrelevantes os resultados do teste técnico?

Se o teste não fizer diferença, ignore-o.

Gratzy
fonte
2
Se o teste não fizer diferença, ignore-o. - Eu pensei o mesmo. No entanto, há mais uma variável - RH, se exigir fortemente esse teste e não demorar muito tempo, recomendo que faça isso por não ser responsabilizado pelo RH em testes fracos ou por não apoiar as regras / políticas da empresa.
alexb 16/05
1
@alexb Se o RH realmente exige o teste, a pergunta em si é discutível e o teste deve ser administrado. O fato de que a pergunta é feita, devemos assumir que existe a possibilidade de não fazer o teste.
Gratzy 16/05
1
@Gratzy Certamente concordou. Por "RH exige fortemente ", quis dizer que o RH exige teste, mas ainda pode ser ignorado (se o RH puder ser flexível), mas pode ser arriscado para o gerente no caso de contratar engenheiro com falta de alguma habilidade necessária, porque o gerente em tal caso poderia ser responsabilizado por não fazer o teste. É só que eu queria contar.
Alexb
O que eu poderia dizer adicionalmente é: se o teste não levar muito tempo, eu recomendaria apenas fazer, isso deve impedir + algumas informações úteis podem ser recuperadas.
alexb 16/05
1
@alexb Não discordo de você. Mais informações são melhores que menos, eliminar riscos é melhor do que correr riscos; no entanto, o pôster tem um curto período de tempo e deseja tomar uma decisão com base nas informações limitadas que possui, portanto, se fazer o teste não adicionará muito então não é muito útil aqui. Se tivéssemos informações ilimitadas, as decisões seriam fáceis. Ser capaz de tomar boas decisões com informações limitadas é valioso.
Gratzy 16/05
6

Eu não ver um forte argumento para ignorar o teste. Portanto, você deve mantê- lo.

Se você acredita que o candidato se recusará a fazer um teste, isso é revelador.

Se o teste demorar tanto para administrar e verificar se isso significa que a decisão de contratação está atrasada, você provavelmente precisará revisar o teste em si.

Por outro lado, se você planeja contratar a pessoa independentemente do resultado, vá em frente sem ela, mas provavelmente revise a política de teste novamente e torne-a explicitamente opcional.

sdg
fonte
Bom ponto sobre o teste (não o resultado) ser um problema. Definitivamente, verifique se o teste é apropriado.
ChrisF
4

O teste técnico é geralmente útil ou BS? Você quer pular isso porque quer que ele seja contratado mais rapidamente, porque tem medo de conseguir um impedimento para a contratação que deseja ou porque tem medo que isso o ofenda?

Como regra geral, eu gosto de criar regras. Porque se você começar a fazer exceções para uma pessoa, deve começar a fazer exceções cada vez mais até se queimar e aprender por que a regra existe. E confie em mim, uma má contratação é um erro muito doloroso de se fazer. Mas isso só é verdade se a regra for útil. Se essa regra é útil, depende do teste técnico.

Em segundo lugar, não importa quanta pressão você sinta para contratar, não deixe que isso o leve a tomar uma decisão precipitada. A pressa nos leva a dizer sim quando não deveríamos, ignorar os sinais de alerta etc. Na verdade, quanto mais pressão você estiver sofrendo, mais precisará pressionar essa pressão para ter certeza de que toma a decisão certa.

Em terceiro lugar, se você tem uma voz irritante dizendo: "Receio que, apesar de tudo, ele pode não passar no teste", ouça a voz - não pule o teste. Talvez isso não seja a contratação certa.

E, por fim, se o candidato for bom, ele não apenas ficará ofendido por ter que fazer um teste técnico, mas provavelmente o verá como um bom sinal sobre sua organização. É o item 11 do teste Joel amplamente citado . Afinal, eles tiveram o desagrado de trabalhar com desenvolvedores que não teriam passado em um teste técnico e provavelmente não querem repetir essa experiência.

Por todos esses motivos, você deve fazer o teste se (e isso for importante se) o teste não for uma parte óbvia da BS que deve ser substituída por um teste técnico útil .

btilly
fonte
Principalmente BS, principalmente sem relevância para o trabalho. O RH faz perguntas em C #, mas na maioria das vezes somos uma empresa Java / Unix (não ria - eles compraram os testes de um consultor de contratação). Como comentei acima - não foi solicitado "código real" durante a entrevista, mas pseudo-código e alguns esboços UML.
Daniel Voina
1
@ Daniel Voina - Essa pessoa estará em um trabalho de codificação ou em um trabalho de arquitetura? Se for um trabalho de codificação, você precisará que a pessoa escreva o código na entrevista. A sério. Se o candidato rejeitar isso, você precisará saber isso antes de contratar.
btilly 16/05
Ambos. Eu espero que ele se desenvolva. Espero que ele venha com soluções no nível de design / arquitetura, bem como codificá-las. Eu acho que a segunda é naturalmente implícitos nas SCJP + reccomendations anteriores experiência +
Daniel Voina
@ Daniel Voina - Então você definitivamente precisa testá-lo. Alguns candidatos muito experientes, ou muito bons, desenvolvem uma atitude de que a codificação está de alguma forma abaixo deles. Eles podem ser ótimos em uma função de arquitetura pura, se uma função de arquitetura pura fizer sentido para você. Mas se você contratar um e depois pedir que codifique, não haverá ressentimento e problemas. Portanto, você precisa procurar isso no processo de entrevista.
btilly 16/05
4

Estivemos recentemente na mesma situação. Nós pulamos o profundo técnico porque, na inicial, ele parecia ter lido todos os livros certos e trabalhado em todos os tipos certos de projetos. Ele parecia muito bom.

Depois de algumas semanas, ficou claro que ele não era capaz de codificar no nível que sua entrevista dizia que deveria. E sua personalidade não se encaixava na equipe. Era uma bagunça se livrar dele e limpar o que ele havia feito.

Faça o técnico antes de contratar alguém.


fonte
3

Mantenha o teste por uma questão de justiça. Se outros contratados mais tarde descobrirem que precisavam fazer um teste, mas esse cara não, isso poderia causar ressentimentos.

O teste deve ser aplicado a todos ou a ninguém. Se você deseja aplicá-lo seletivamente, verifique se há uma política clara e escrita explicando quando ela pode ser dispensada.

FrustratedWithFormsDesigner
fonte
1

Os valores dos testes técnicos são variados e dependem amplamente da adequação dos testes à função para a qual o desenvolvedor sênior está sendo contratado. Quero dizer, você daria uma lista de perguntas sobre engenharia de sistemas incorporados a um desenvolvedor Oracle (este é um mau exemplo para provar um argumento).

Mesmo que o desenvolvedor sênior tenha uma pontuação baixa no teste técnico, seria um obstáculo para você contratar o candidato?

Como você mencionou que está pressionando pelo tempo, não apresse a decisão por causa disso. Será pior se o desenvolvedor sênior se mostrar alguém abaixo do par na sua área de responsabilidades e acabar atrasando o projeto.

tehnyit
fonte
1

Virar o jogo.

Se for um funcionário sênior permanente que é altamente recomendado por pessoas em quem você confia, ele pode acabar em futuras equipes de entrevistas. Peça a esse desenvolvedor sênior em potencial suas perguntas favoritas sobre o teste de entrevista técnica e como ele pode avaliar os pontos fortes e fracos de várias respostas. Talvez invente novas respostas ruins para testá-las. Você pode até aprender muito com esse uso do seu tempo (ou possivelmente encontrar algo que seja uma bandeira vermelha).

Em seguida, marque algumas das respostas para suas próprias perguntas como "teste técnico concluído".

hotpaw2
fonte
1

Pense dessa maneira - qual é a diferença entre contratar alguém excelente um pouco mais tarde do que você gostaria ou contratar alguém potencialmente horrível agora?

Além disso, qual seria sua capacidade de fazer o trabalho que este teste foi projetado para avaliar?

Eu trabalho para uma empresa que exige que cerca de 99% dos candidatos sejam aprovados em um teste de programação. Os 1% que não precisam passar se enquadram em duas categorias. A primeira categoria são os tipos "rockstar" que recrutamos ativamente desde o início. A segunda categoria, e provavelmente mais relevante, são as pessoas para as quais o processo foi renunciado por funcionários seniores com um histórico muito forte de contratações e capazes de realizar o trabalho para o qual estão contratando.

Pessoalmente, acho que essa é uma boa política e a recomendo para sua situação.

Ben Burns
fonte
1

Eu daria o teste de qualquer maneira. Ele pode ser recomendado por várias razões (algumas que podem não ser tão benéficas para você ...). Um benefício da entrevista técnica é iniciar o processo de vínculo com os outros membros da equipe. Não subestime a necessidade da equipe de ser comprada no processo de contratação.

Al Biglan
fonte
1

Dadas as restrições de RH, acho que eu faria o download de uma cópia do cyber-dojo , a instalaria em um servidor local, sentaria seu candidato na frente de um navegador da web que só pode acessar esse servidor e solicitar que eles concluam vários katas (de sua escolha) em um idioma de sua escolha (idealmente, um idioma diferente por kata).

Então olhe para a sequência dos semáforos. Se eles são um bom desenvolvedor de TDD , você deve obter uma boa progressão repetida de vermelho / verde.

Se você quiser brincar com o cyber-dojo, o autor tem uma boa versão online aqui .

Mark Booth
fonte
hmmm ... boa ferramenta. Eu estava pensando em Codility codility.com, mas este é gratuito. Obrigado!
Daniel Voina 17/05
0

Outra pergunta - quanta confiança você tem no seu departamento de RH.

Posso estar bebendo muito o KoolAid psicodélico por aqui, mas muitas vezes me surpreende agradavelmente descobrir que meu departamento de RH tinha um bom plano em mente ao implementar uma determinada medida de proteção para contratação. Por exemplo, parece verdade que seu pessoal mais velho será necessário para o Oracle, e não para o C #, portanto, um teste de C # parece irrelevante. Mas se o seu departamento de RH é muito sensível a quão difícil pode ser demitir alguém quando não consegue atingir a marca em vários projetos diferentes, sua necessidade a curto prazo de alguém pode ser superada pela necessidade a longo prazo, para garantir que todos os O desenvolvedor pode encontrar alguma competência mínima em uma linguagem de programação amplamente usada.

Tudo tem a ver com sua atual metodologia de contratação, as leis que regem sua empresa e as necessidades de habilidades técnicas em todos os setores. Em algumas empresas, a configuração de coisas como um período de estágio facilita a realização de um teste com alguém e, em seguida, deixa-o ir se não der certo nos primeiros três meses. Em outras empresas, no momento em que alguém entra pela porta como funcionário permanente, está sujeito a enormes proteções justas de tratamento, o que significa que você precisa retê-las e treiná-las por um longo tempo antes de se livrar de alguém que não mede acima.

Eu checava a sua empresa e veria se há uma razão para fazer algum nível de diligência, mesmo que esse cara não precise demonstrar essas habilidades no curto prazo. As ramificações de longo prazo - especialmente na taxa salarial de um engenheiro sênior - podem ser enormes.

bethlakshmi
fonte
Francamente? Não muito. Eles parecem dissociados da tecnologia e, talvez sem querer, não seguem as tendências do mercado local de TI.
Daniel Voina
@ Daniel Voina - Você já tentou demitir alguém antes?
Bethlakshmi
Eu até consegui.
Daniel Voina 17/05
@ Daniel Voina - ótimo ... mas já vi situações em que são necessários 6 meses a 1,5 anos para demitir alguém. Dada a dor e o sofrimento envolvidos, não apenas para a pessoa e as pessoas que os gerenciam diretamente, mas para toda a equipe, eu diria que há um ponto válido para fazer a pessoa pular por alguns obstáculos aparentemente desnecessários, especialmente se fizer parte de um CYA mecanismo.
Bethlakshmi 17/05
0

Você repetiu várias vezes que os prazos estão se aproximando - suponho que você conheça a lei de Brook.

Dito isto, aqui você deve ver que tipo de atraso o processo real de entrevistas pode causar. Se ele é um candidato muito competente que você acha que pode entrar e resolver os problemas de prazo rapidamente, ele não deve ter problemas em passar algumas horas entrevistando / programando em pares. Outro fator a considerar seria seus colegas atuais. Você não quer dar a sensação à sua equipe maior de que as pessoas entram / saem de acordo com seus caprichos - porque geralmente reflete mal se o cara sair. Essa é uma das principais razões pelas quais o RH insiste em várias entrevistas para que uma pessoa não domine o sucesso.

Boa sorte com a contratação e o projeto!

Subu Sankara Subramanian
fonte
Os prazos estão chegando em cerca de 5 meses. Não espero superpoderes dele, apenas seja capaz de lidar com novos recursos, entender a atual base de código, familiarizar-se com algumas das tecnologias e corrigir erros, se necessário. Os prazos são um problema meu e quero contratar para mantê-los o máximo possível, sem consumir muito a equipe. Os caras da minha equipe o conhecem melhor do que eu - eles trabalharam juntos em outra empresa.
Daniel Voina 17/05
Então isso significa que você está assumindo que ele será capaz de bater no chão correndo. Por que você não faz uma sessão de programação de 1 hora e toma uma decisão?
Subu Sankara Subramanian
Eu tinha em mente dar a ele um problema e obter uma solução em alguns dias (solução = código + testes). A programação em pares também seria excelente. O problema é que, se eu não contratar, posso perder a janela da oportunidade - o cara também é perseguido por outros. O que me incomoda é que não posso mais mantê-lo na cidade (atualmente ele mora em outro lugar) por mais tempo, até que o RH decida que o teste de contratação está ok. Acho que vou seguir minhas entranhas, afinal.
Daniel Voina 17/05
A menos que você esteja tentando contratar uma pessoa de Richard stallman, tenho certeza de que existem outros programadores equivalentes :). Mas, novamente, temos que seguir nosso instinto de vez em quando - Então, como eu disse antes, boa sorte :). Atualize esta postagem sobre como ficou mais tarde!
Subu Sankara Subramanian
0

Normalmente, como parte do contrato, você tem seis meses como período de avaliação no início do emprego. Se o candidato for completamente incompetente, isso será bastante óbvio durante os primeiros meses e você terá pelo menos a opção de terminar após o período de avaliação. Eu também enfatizaria que ninguém pode saber tudo e as pessoas geralmente precisam de tempo para assumir o cargo e, de fato, podem estar subindo na carreira, portanto, um pouco de tempo para resolver antes de fazer qualquer julgamento é sempre sábio (de ambos partidos!)

Matt Wilko
fonte
0

Para ser sincero (e repetir minha resposta para outra pergunta), eu próprio teria receio de ser contratado por uma loja que não me desse uma entrevista técnica. Duvidaria do compromisso com a excelência técnica e não gostaria que não tivesse a oportunidade de "conversar" com a equipe antes de tomar minha decisão.

Faça da entrevista técnica também uma oportunidade para os membros da equipe conhecerem o cara e para ele conhecê-los. Como o cara é mais velho, é muito importante que você possa se comunicar com ele claramente sobre questões técnicas. Como você vai testá-lo sem uma entrevista técnica aprofundada?

Em resumo: se ele é importante o suficiente para renunciar à entrevista técnica padrão para ele, ele é importante o suficiente para realizar uma entrevista técnica especial com ele.

quant_dev
fonte