O equivalente do Joel Test para medir um programador [fechado]

70

Entendo que, para medir um projeto ou código, podemos usar o Teste Joel , mas existe algum teste padrão simples (como o Teste Joel) capaz de medir e filtrar a qualidade de um programador?

Meu plano é ter esse teste como um filtro rápido antes de ir para um teste mais detalhado.

Rudy
fonte
2
Se houver testes como este sendo usados, acho que os programadores devem saber sobre isso. Eles podem ou não ser válidos como: Contrate aquele com mais modificações corporais.
21412 JeffO
2
Interessante, quando eu fiz essa pergunta, ela foi votada para o inferno (agora positiva novamente, sim, e rapidamente fechada). É realmente tão diferente deste? programmers.stackexchange.com/questions/133691/...
ripper234
8
@ ripper234, as razões pelas quais uma pergunta é encerrada no SE são um pouco como os erros inexplicáveis ​​e intermitentes de software - um mistério mesmo. Um pouco como a natureza humana realmente.
31712
8
O próprio Joel fornece um teste simples, porém rigoroso: inteligente e pronto . : P
Dan J
FizzBuzz! Certamente!
CraigTP

Respostas:

67

Existe a matriz de competências do programador .

Como no teste de Joel, é apenas um guia vago. A única maneira de avaliar adequadamente um programador é perguntar a bons programadores que trabalharam com eles.

Tom Squires
fonte
27
Portanto, o único problema que resta é avaliar se os colegas de equipe anteriores / atuais do cara são bons ... Opa.
Péter Török
21
Sim, a sua é :) recursiva
Tom Squires
13
Isso não é nada como o teste de Joel. Sua resposta aponta para uma enorme matriz detalhada; o teste de Joel é uma série de 12 perguntas muito simples de responder.
Bryan Oakley
2
@BryanOakley - isso é verdade, mas o PCM também é a primeira coisa que pensei ao ler a pergunta. O resultado: não há perguntas simples que você possa responder para medir um programador!
Joris Timmermans
2
O ponto @BryanOakley da matriz sendo mais complexo que a série é bem aceito; para mim analogia mais próxima ao teste de Joel seria uma série feita de Nível 1 elementos da coluna em PCM - "explicar e usar matrizes ..., classificação Básico ... etc"
mosquito
25

Eu mudaria o teste de Joel:

Eles usaram o controle de origem?

Eles sabem como automatizar uma compilação de uma etapa?

...

O único que não parece ser particularmente aplicável é a questão dos testadores. Os outros que parecem meio que se voltam para uma: é assim que lidamos com isso, como você lidou com isso no tipo de perguntas anteriores (é assim que lidamos com manter nossa agenda atualizada, como você lidou com a programação no passado?) .

editar:

Basicamente, você não recebe as coisas no teste Joel de graça, precisa contratar pessoas que possam fazer isso acontecer. Você quer estabelecer a capacidade deles de fazer isso acontecer.

pedregoso
fonte
11
Todas as perguntas de Joel são mais sobre o meio ambiente do que sobre o programador. Se minha equipe não usa o controle do código-fonte, a minha não integração com eles usando meu próprio controle de código-fonte dificilmente será uma melhoria. Fazer com que a equipe use o controle do código-fonte é uma melhoria.
Edwin Buck
15

O Teste Joel é apenas uma verificação informal da linha de base para avaliar rapidamente se um local tem boas condições de trabalho para os programadores. Mesmo que tenha 10 pontos perfeitos, ainda pode ser um buraco do inferno que vai à falência seis meses depois. Uma pontuação baixa é uma indicação de que algo não está certo e gera excelentes perguntas para entrevistas ("No momento, você não está usando o controle de origem; há planos para isso no futuro?"), E as respostas podem ser tais que você aceitaria o emprego apesar de uma baixa pontuação no Joel.

O Teste Joel também não é um teste 'padrão'; é apenas uma lista de verificação que Joel Spolsky postou em seu blog.

No que diz respeito à 'medição', a qualidade de um programador vai; infelizmente, as habilidades e qualidades realmente importantes de um bom programador são difíceis ou impossíveis de quantificar; portanto, não há substituto para uma avaliação humana completa. Você pode eliminar facilmente os candidatos completamente sem noção, usando uma tarefa de programação muito simples - idealmente, algo que envolva recursão, estruturas em árvore ou ponteiros (é improvável que um programador que não os 'entenda' seja de grande utilidade). Para aqueles que passarem neste teste, será necessário avaliar as habilidades manualmente: leia o código que eles escreveram, teste os aplicativos que eles escreveram, dê a eles mais tarefas de programação (design e implementação), observe-os trabalhar, converse com eles, veja se você pode desencadear uma discussão profissional. Se você procura um especialista / especialista em idiomas,

tdammers
fonte
11
+1 Julgar as habilidades de um bom programador é uma tarefa difícil de quantificar.
Karthik Sreenivasan
20
("You're not currently using source control; are there any plans to do so in the future?"), and the answers might be such that you'd accept the job despite a low Joel score. Você estaria cometendo um erro ao aceitar o trabalho a propósito. Eventualmente, todo desenvolvedor aprende que isso Plans to do so in the futureé algo que os entrevistadores dizem para enganá-lo, mas que eles nunca agem por causa de um gerenciamento terrível. Quantas vezes ouvimos algo Oh, we are moving towards Agile...nesse sentido e acaba sendo mais uma loja de cascata microgerenciada?
maple_shaft
@maple_shaft: sim, provavelmente não é um bom exemplo ...
tdammers
5
A 10 perfeito no teste Joel seria realmente 12 ... apenas dizendo :)
MattDavey
3
@MattDavey: Isso depende muito de suas competências para gerar mudanças. Eu tive uma dessas experiências quando estive no negócio por dois anos (sim, vamos mudar para C ++) e obtive o resultado esperado. Hoje em dia, seria uma questão diferente. I pode descobrir se é um desejo sincero, mas a incapacidade de mudar, e, em seguida, torná-lo possível.
MSalters
12

Sim:

Você programa no seu tempo livre?

Em toda a minha experiência, essa pergunta única é mais indicativa de quão bom é um programador. Se eles gostam; se tiverem paixão por fazer a tarefa, serão bons nisso.

E, francamente, muitos de 9 a 5 trabalhos não envolvem muita codificação . Eles não envolvem muita iteração durante o ciclo de vida do design de novos programas e ver como esse design funciona / falha. Sem essa iteração, simplesmente não existe a prática necessária para que os programadores adquiram habilidades básicas de design de programas.

E eles não envolvem muito aprendizado. Os programadores que simplesmente simplesmente cortam as coisas em casa vão explorar soluções novas e interessantes sem as restrições dos grandes negócios.

Telastyn
fonte
2
Por que isso tem apenas um voto? Na IMO, essa é a verdadeira distinção entre equipes medíocres e aquelas que são verdadeiramente inovadoras.
Repo Man
0

Eh, eu tenho um problema com a redação no começo. Não é "você usou X" ou "Você conhece Y", é uma questão de realmente usar e fazer. Qualquer programador que não tenha tocado ou ouvido falar dos itens do teste Joel é simplesmente desconectado e precisa ter uma pista. Mas você está certo: as lojas de códigos não são bem-sucedidas no teste de Joel porque as pessoas nas lojas deixam isso falhar. A única defesa que eu vejo é executada como "Tentei, mas não tinha autoridade. E agora estou me inscrevendo aqui".

Philip
fonte
0

Você usa o controle de origem?

Sim mas

  • Realmente não lhe diz nada.
  • Como você sabe se eu encaminhar a mesclagem?
  • Como você sabe se eu faço alterações antes de pressionar?
  • Como você sabe se eu construo antes de confirmar o repositório.

Você pode fazer uma compilação em uma única etapa?

  • Sim, nosso líder de IC grava scripts e apenas os executo no PowerShell.

Você faz construções diárias?

  • Nosso servidor de CI faz

Você tem um banco de dados de bugs?

Sim, mas não o configurei e não o administro, simplesmente o uso.

Você corrige bugs antes de escrever um novo código?

  • Em um mundo perfeito, onde eu tenho recursos ilimitados - sim, eu tenho. No mundo real, às vezes sou forçado a registrá-los e trabalhar em outra coisa.

Você tem um cronograma atualizado?

Não, esse não é o meu trabalho.

Você tem uma especificação?

Recebo uma especificação, depois a analiso e produzo documentos relevantes.

Os programadores têm condições de trabalho silenciosas?

  • Você não vai me contratar se eu ouvir música, conversar com meu colega e fazer uma piada? O desenvolvimento de software deve ser criativo - as condições de trabalho variam de uma organização para outra.

Você usa as melhores ferramentas que o dinheiro pode comprar?

Você não sabe quais são as melhores ferramentas e, se pensa que sim, sempre haverá alguém para discutir o seu ponto.

Você tem testadores?

Sim. Na verdade, sim, e eles não são muito bons, mas isso não estava em questão.

Os novos candidatos escrevem código durante a entrevista?

Sim e eles falham. Sim e eles passam. O que isso diz a você?

Você faz testes de usabilidade no corredor?

Não, mas e se fizermos algo melhor?

Concluir:

  • Esse teste pode funcionar bem em um mundo acadêmico perfeito, onde tudo simplesmente funciona, todo mundo se dá bem, compartilha conhecimento e há recursos ilimitados.
  • O que você quer saber é que tipo de engenheiro eu sou. Respostas bit a bit simples não lhe dirão nada de útil e acho que alguém tem que ser muito ingênuo para se apaixonar por eles.
  • As respostas acima, tanto negativas quanto positivas, não dizem nada sobre minha capacidade de produzir código limpo.

Isso não é um discurso retórico, mas eu ficaria muito interessado em saber que tipo de desenvolvedor você acha que sou baseado nas respostas que forneci. Espero que isso prove meu argumento.

CodeART
fonte
8
Eu realmente não entendo isso. Essas perguntas são sobre a equipe / empresa, não o programador individual. E o OP não sugeriu usar as mesmas perguntas para avaliar o programador, ele só quer um conjunto de perguntas simples.
código é o seguinte
11
Eu acho que sou tão bom quanto minha equipe ou a empresa em que trabalhamos. Na minha opinião, testes como esse causam muita confusão, mas eles realmente não dizem nada de útil sobre a empresa ou o desenvolvedor.
CodeART
3
How do you know whether I pull changes before pushing? Bem, não sei qual controle de origem você está usando, mas pelo menos no SVN, se você tentar confirmar uma pasta com alterações que ainda não possui, a confirmação falhará até você executar o Update.
Mason Wheeler
Estamos usando o TFS :) Eu realmente preciso colocar minhas mãos em outros sistemas de controle de versão.
CodeART
Então, as pessoas realmente usam o TFS. Eu aprendi alguma coisa
Fabinout