Je comprends que pour mesurer un projet ou un code, nous pouvons utiliser The Joel Test, mais existe-t-il un test standard simple ( comme le test Joel) qui est capable de mesurer et de filtrer la qualité d'un programmeur?
Mon plan est d'avoir ce test comme un filtre rapide avant de passer à un test plus détaillé.
Il y a matrice de compétences du programmeur .
Comme pour le test Joel, ce n'est qu'un vague guide. La seule façon d'évaluer correctement un programmeur est de demander à de bons programmeurs qui ont travaillé avec eux.
Je retournerais le test de Joel:
Ont-ils utilisé le contrôle de code source?
Savent-ils comment automatiser une construction en une étape?
...
La seule qui ne semble pas particulièrement applicable est la question des testeurs. Les autres qui semblent un peu éteints se résument à ceci: comment nous le traitons comment l'avez-vous géré dans le passé sorte de questions .
éditer:
Fondamentalement, vous ne recevez pas les choses gratuitement dans le test Joel, vous devez embaucher des personnes qui peuvent y arriver. Vous voulez établir leur capacité à y arriver.
Le test Joel n'est qu'une vérification de base informelle pour juger rapidement si un lieu offre de bonnes conditions de travail aux programmeurs. Même s'il obtient un score parfait de 10, il peut toujours s'agir d'un enfer qui va faire faillite six mois plus tard. Un faible score est une indication de quelque chose qui ne va pas tout à fait, et donne d'excellentes questions d'entrevue ("Vous n'utilisez pas actuellement le contrôle de source; est-il prévu de le faire à l'avenir?"), Et les réponses pourraient être telles que vous accepteriez le travail malgré un faible score Joel.
Le test Joel n'est pas non plus un test "standard"; c'est juste une liste de contrôle que Joel Spolsky a publiée 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 ou impossibles à quantifier, il n'y a donc pas de remplacement pour une évaluation humaine approfondie. Cependant, vous pouvez éliminer les candidats complètement désemparés assez facilement, en utilisant une tâche de programmation très simple - idéalement, quelque chose qui implique une récursivité, des structures arborescentes ou des pointeurs (un programmeur qui ne les `` obtient '' ne sera probablement pas d'une grande utilité). Pour ceux qui réussissent ce test, vous devrez évaluer les compétences manuellement: lire le code qu'ils ont écrit, tester les applications qu'ils ont écrites, leur donner plus de tâches de programmation (à la fois la conception et la mise en œuvre), les regarder fonctionner, leur parler, voir si vous peut spark une discussion professionnelle. Si vous recherchez un spécialiste/gourou de la langue, vous voudrez peut-être aussi poser quelques questions sur les connaissances, mais pour un candidat à la programmation générale, je ne me dérangerais pas.
Ouais:
Programmez-vous pendant votre temps libre?
D'après toute mon expérience, cette seule question est la plus révélatrice de la qualité d'un programmeur. S'ils l'apprécient; s'ils ont la passion de faire la tâche, ils vont être bons dans ce domaine.
Et franchement, beaucoup de 9 à 5 tâches n'impliquent pas beaucoup de codage. Ils n'impliquent pas beaucoup d'itérations tout au long du cycle de vie de la conception de nouveaux programmes et de voir comment cette conception fonctionne/échoue. Sans cette itération, il n'y a tout simplement pas la pratique nécessaire pour que les programmeurs acquièrent les compétences de base de conception de programmes.
Et ils n'impliquent pas beaucoup d'apprentissage. Les programmeurs qui piratent même simplement les choses à la maison vont explorer de nouvelles solutions intéressantes sans les contraintes des grandes entreprises.
Ce n'est pas aussi détaillé que le test Joel, mais leur demander d'écrire un programme fizz buzz sera une bonne indication pour voir s'ils peuvent coder du tout.
http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html et http://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding /
Cela ne vous renseignera pas sur la maturité de l'ingénierie logicielle de l'individu, mais cela éliminera le pire.
Eh, j'ai du scrupule avec le libellé au début. Ce n'est pas "avez-vous utilisé X" ou "Connaissez-vous Y", c'est une question d'utilisation et de pratique. 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 codes échouent au test Joel parce que les gens dans les magasins le laissent échouer. La seule défense que je puisse voir va dans le sens de "J'ai essayé, mais je n'avais pas l'autorité. Et maintenant je postule ici".
Utilisez-vous le contrôle de code source?
Oui mais
Pouvez-vous créer un build en une seule étape?
Faites-vous des builds quotidiens?
Avez-vous une base de données de bogues?
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 un nouveau code?
Avez-vous un calendrier à jour?
Non, ce n'est pas mon travail.
Avez-vous une spécification?
On me donne un cahier des charges, je l'analyse ensuite et je produis les documents pertinents.
Les programmeurs ont-ils des conditions de travail tranquilles?
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 de vue.
Avez-vous des testeurs?
Oui. En fait, oui et ils ne sont pas très bons, mais ce n'était pas 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 fait quelque chose de mieux?
Pour conclure:
Ce n'est pas une diatribe, mais je serais très intéressé d'entendre 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.