L'équivalent du test de Joël pour mesurer un programmateur [fermé]

70

Je comprends que pour mesurer un projet ou un code, nous pouvons utiliser le test Joel , mais existe-t-il un test standard simple (comme le test Joel) capable de mesurer et de filtrer la qualité d'un programmeur?

Mon plan est d’avoir ce test comme un filtre rapide d’abord avant de passer à un test plus détaillé.

Rudy
la source
2
Si de tels tests sont utilisés, je pense que les programmeurs devraient le savoir. Ils peuvent ou non être valables comme: Engagez celui qui a le plus de modifications corporelles.
JeffO
2
Intéressant, quand j'ai posé cette question, elle a été réduite en enfer (maintenant positive à nouveau, oui, et rapidement fermée). Est-ce vraiment si différent de celui-ci? programmers.stackexchange.com/questions/133691/…
ripper234
8
@ ripper234, les raisons pour lesquelles une question est fermée sur SE ressemblent un peu à ces bogues logiciels inexplicables et intermittents - un mystère vraiment. Un peu comme la nature humaine vraiment.
Tehnyit
8
Joel lui-même propose un test simple mais rigoureux: Smart et Gets Things Done . : P
Dan J
FizzBuzz! Sûrement!
CraigTP

Réponses:

67

Il y a la matrice de compétences du programmeur .

Comme pour le test de Joël, ce n’est qu’un guide vague. Le seul moyen d'évaluer correctement un programmeur est de demander aux bons programmeurs qui ont travaillé avec eux.

Tom Squires
la source
27
Donc, le seul problème qui reste est d'évaluer si ses coéquipiers passés / actuels sont bons… Oups.
Péter Török
21
Oui, c'est récurrent :)
Tom Squires
13
Cela ne ressemble en rien au test de Joël. Votre réponse indique une énorme matrice détaillée, le test de Joel consiste en une série de 12 questions très simples à répondre.
Bryan Oakley
2
@ BryanOakley - c'est vrai, mais le PCM est aussi la toute première chose à laquelle j'ai pensé en lisant la question. Le résultat: il n’ya pas de question simple à laquelle vous pouvez répondre pour mesurer un programmeur!
Joris Timmermans
2
@BryanOakley le point de matrice étant plus complexe que la série est bien pris; Pour moi, l'analogie la plus proche du test de Joel serait une série d' éléments de colonne de niveau 1 dans PCM - "expliquer et utiliser des tableaux ..., un tri de base ... etc."
gnat
25

Je retournerais le test de Joël autour de moi:

Ont-ils utilisé le contrôle de source?

Savent-ils automatiser une construction en une étape?

...

Le seul qui ne semble pas particulièrement applicable est la question sur les testeurs. Voici ce que nous pensons des autres (nous traitons ainsi le maintien de notre calendrier. Comment avez-vous géré votre calendrier dans le passé?) .

modifier:

Essentiellement, le test de Joel ne comporte pas les éléments gratuitement, vous devez embaucher des personnes capables de les réaliser. Vous voulez établir leur capacité à y arriver.

pierre précieuse
la source
1
Toutes les questions de Joel concernent davantage l'environnement que le programmeur. Si mon équipe n'utilise pas le contrôle de code source, le fait de ne pas les intégrer en utilisant mon propre contrôle de code source ne constitue guère une amélioration. Amener l'équipe à utiliser le contrôle de code source constitue une amélioration.
Edwin Buck
15

Le test Joel est simplement une vérification informelle de base permettant de déterminer rapidement si un lieu offre de bonnes conditions de travail aux programmeurs. Même s'il marque un 10 parfait, il peut encore s'agir d'un enfer qui va faire faillite six mois plus tard. Un score faible indique que quelque chose ne va pas, et donne lieu à d'excellentes questions d'entrevue ("Vous n'utilisez pas de contrôle de source à l'heure actuelle; envisagez-vous de le faire à l'avenir?"), Et les réponses pourraient être telles que vous accepteriez le travail malgré un faible score de Joël.

Le test Joel n'est pas non plus un test «standard»; Joel Spolsky a publié une liste de contrôle sur son blog.

En ce qui concerne la «mesure» de la qualité d'un programmeur, Malheureusement, les compétences et les qualités vraiment importantes d'un bon programmeur sont difficiles, voire impossibles à quantifier. Il n'y a donc pas de solution de rechange à une évaluation humaine approfondie. Cependant, vous pouvez facilement éliminer les candidats complètement désemparés, en utilisant une tâche de programmation très simple - idéalement, quelque chose impliquant de la récursivité, des arborescences ou des pointeurs (un programmeur qui ne les comprend pas aura peu de chances d'être très utiles). Pour ceux qui réussissent ce test, vous devrez évaluer les compétences manuellement: lisez le code qu'ils ont écrit, testez les applications qu'ils ont écrites, attribuez-leur davantage de tâches de programmation (conception et implémentation), regardez-les travailler, discutez-en, voyez si vous le souhaitez. peut déclencher une discussion professionnelle. Si vous cherchez un spécialiste / gourou de la langue,

tdammers
la source
1
+1 Juger les compétences d'un bon programmeur est une tâche difficile à quantifier.
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. Vous feriez erreur d'accepter le travail en passant. En fin de compte, chaque développeur apprend que les Plans to do so in the futureenquêteurs disent que cela vous trompe, mais qu’ils n’agissent jamais en raison d’une gestion épouvantable. Combien de fois avons-nous entendu quelque chose à l'effet de Oh, we are moving towards Agile...et il s'avère être un autre magasin de cascade microgéré?
maple_shaft
@maple_shaft: Ouais, ce n'est probablement pas un bon exemple ...
mercredi
5
Un 10 parfait sur le test de Joel serait en fait de 12 ... juste dire :)
MattDavey
3
@ MattDavey: Cela dépend de vos compétences pour conduire le changement. J'ai vécu l'une de ces expériences lorsque je travaillais dans le secteur depuis deux ans (oui, nous allons passer au C ++) et j'ai obtenu le résultat escompté. De nos jours, ce serait une question différente. Je peux comprendre si c'est un souhait sincère mais une incapacité à changer et ensuite le rendre possible.
MSalters
12

Ouais:

Programmez-vous pendant votre temps libre?

D'après toute mon expérience, cette seule question est le meilleur indicateur de la qualité d'un programmeur. S'ils l'apprécient; s'ils ont la passion de faire la tâche, alors ils vont être bons à la tâche.

Et franchement, beaucoup de 9 à 5 emplois ne nécessitent pas beaucoup de codage . Ils n'impliquent pas beaucoup d'itérations tout au long du cycle de vie consistant à concevoir de nouveaux programmes et à voir comment cette conception fonctionne / échoue. Sans cette itération, les programmeurs n'ont tout simplement pas la pratique nécessaire pour acquérir des compétences de base en matière de conception de programmes.

Et ils ne nécessitent pas beaucoup d'apprentissage. Les programmeurs qui ne font même que pirater des objets chez eux vont explorer de nouvelles solutions intéressantes sans les contraintes des grandes entreprises.

Telastyn
la source
2
Pourquoi cela n'a-t-il qu'un vote? OMI c'est la vraie distinction entre les équipes médiocres et celles qui sont vraiment innovantes.
Repo Man
0

Euh, je me moque de la formulation au début. Ce n'est pas "avez-vous utilisé X" ou "Connaissez-vous Y"? Il s'agit simplement d'utiliser et de faire. Tout programmeur qui n'a pas touché ou entendu parler des éléments du test Joel est simplement déconnecté et doit obtenir un indice. Mais vous avez raison, les magasins de code échouent au test de Joel parce que les employés dans les magasins le laissent échouer. Le seul moyen de défense que je puisse voir est le suivant: "J'ai essayé, mais je n'avais pas le pouvoir. Et maintenant, je présente une demande ici".

Philippe
la source
0

Utilisez-vous le contrôle de source?

Oui mais

  • Cela ne vous dit rien vraiment.
  • Comment savez-vous si je fusionne en avant?
  • Comment savoir si je tire les changements avant de pousser?
  • Comment savoir si je construis avant de m'engager dans le référentiel.

Pouvez-vous faire une construction en une étape?

  • Oui, notre responsable CI écrit des scripts et je les exécute simplement dans PowerShell.

Faites-vous des builds quotidiens?

  • Notre serveur de CI ne

Avez-vous une base de données de bugs?

Oui, mais je ne l'ai pas configuré et je ne l'administre pas, je l'utilise simplement.

Corrigez-vous les bugs avant d'écrire du nouveau code?

  • Dans un monde parfait où j'ai des ressources illimitées, oui. Dans le monde réel, je suis parfois obligé de les connecter et de travailler sur autre chose.

Avez-vous un horaire à jour?

Non, ce n'est pas mon travail.

Avez-vous une spec?

On me donne une spécification, je l’analyse et produis les documents pertinents.

Les programmeurs ont-ils des conditions de travail silencieuses?

  • Ne m'engage-tu pas si j'écoute de la musique, parle à mon collègue et fais une blague? Le développement de logiciels est supposé être créatif - les conditions de travail varient d’une organisation à l’autre.

Utilisez-vous les meilleurs outils que l’argent peut acheter?

Vous ne savez pas quels sont les meilleurs outils et si vous pensez le faire, il y aura toujours quelqu'un pour faire valoir votre point.

Avez-vous des testeurs?

Oui. En fait, oui et ils ne sont pas très bons, mais ce n'était pas dans la question.

Les nouveaux candidats écrivent-ils du code lors de leur entretien?

Oui et ils échouent. Oui et ils passent. Qu'est-ce que cela vous dit?

Faites-vous des tests d'utilisabilité des couloirs?

Non, mais si on faisait mieux?

De conclure:

  • Ce test pourrait bien fonctionner dans un monde académique parfait où tout fonctionne, tout le monde s'entend, partage ses connaissances et dispose de ressources illimitées.
  • Ce que vous voulez savoir, c'est quel genre d'ingénieur je suis. Les réponses simples au niveau des bits ne vous diront rien d'utile et je pense que quelqu'un doit être très naïf pour craquer.
  • Les réponses ci-dessus, à la fois négatives et positives, ne vous disent rien sur ma capacité à produire du code propre.

Ce n'est pas un diatribe, mais je serais très intéressé de savoir quel type de développeur vous pensez que je suis basé sur les réponses que j'ai fournies. J'espère que cela prouvera mon point.

CodeART
la source
8
Je ne comprends pas vraiment le point. Ces questions concernent l'équipe / la société et non le programmeur individuel. Et le PO n'a pas suggéré d'utiliser les mêmes questions pour évaluer le programmeur, il veut juste un ensemble de questions simples.
CodesInChaos
1
Je pense que je suis aussi bon que mon équipe ou la société pour laquelle nous travaillons. À mon avis, des tests comme celui-ci font beaucoup de bruit, mais ils ne vous disent rien d'utile sur la société ou le développeur.
CodeART
3
How do you know whether I pull changes before pushing? Eh bien, je ne sais pas quel contrôle de source vous utilisez, mais dans SVN au moins, si vous essayez de valider dans un dossier avec des modifications que vous n'avez pas encore, la validation échouera jusqu'à ce que vous exécutiez Update.
Mason Wheeler
Nous utilisons TFS :) J'ai vraiment besoin de mettre la main sur d'autres systèmes de contrôle de version.
CodeART
Soooo les gens utilisent réellement TFS. J'ai appris quelque chose.
Fabinout