Certains estiment que non. Voici deux arguments avancés par cette catégorie de personnes :
- les exercices de codage sont chronophages et stressants. Ils demandent aux candidats de consacrer beaucoup de temps à se préparer, à réviser les fondamentaux de l’informatique, à pratiquer des questions types, à faire des simulations d’entretien. Tout cela en plus de leur travail actuel et de leurs obligations personnelles. Cela peut créer un déséquilibre entre la vie professionnelle et la vie privée, et décourager les personnes qui ont déjà un emploi à temps plein et une famille ;
- les exercices de codage ne reflètent pas la réalité du travail. Ils mettent les candidats dans une situation artificielle, où ils doivent coder sous pression, sans accès aux ressources habituelles (documentation, internet, collègues, etc.), et avec un évaluateur qui les observe et les juge. Cela peut provoquer de l’anxiété, de la confusion et des erreurs. Or, le travail de développeur ne consiste pas à coder seul dans un coin, mais à collaborer avec une équipe, à communiquer avec les clients, à rechercher des solutions, à tester et à déboguer le code.
Lors d'une interview, Kelly Vaughn, directrice de l'ingénierie à Spot AI, a remis en question le fait de donner aux ingénieurs des exercices de codage dans les entretiens techniques. Elle a eu l'opportunité de revenir dessus à l'occasion d'une autre interview (rendez-vous à 3:34 de la vidéo) :
Je suis une fervente partisane des entretiens techniques sans exercice de codage.
La raison est que la plupart du temps, nous embauchons des ingénieurs qui ne sont pas tout à fait nouveaux. Et ils ont déjà codé dans d'autres entreprises, ils ont beaucoup d'expérience dans la construction de production. Et donc, je ne suis pas là pour voir exactement comment tu codes, surtout en live.
Tout d'abord, nous ne sommes pas, vous savez, debout les uns derrière les autres, nous regardant coder mutuellement, donc ce n'est pas pertinent. Et deuxièmement, lorsqu'il s'agit de tâches à emporter, par exemple, ils ont tendance à privilégier ceux qui ont le temps de consacrer à la tâche à emporter. Et donc, si vous cherchez un autre emploi et que vous travaillez toujours à temps plein ou que vous travaillez de longues heures, il est très difficile de trouver le temps de travailler réellement dessus. Aussi, vous ne pourrez peut-être pas faire votre meilleur travail.
Donc ça constitue un désavantage [pour cette catégorie de personnes].
J'aime m'appuyer davantage sur les entretiens de conception de systèmes parce que je veux savoir ce que vous pensez, comment vous résolvez les problèmes, comment vous abordez un problème, je veux connaître l'ensemble de votre flux de pensée, d'autant plus que vous travaillez avec l'un de nos ingénieurs.
Pas de questions stupides dans cet entretien technique.
Et j'ai trouvé que cela fonctionne très bien. Je dirai cependant que la seule mise en garde concerne les ingénieurs juniors. Je sais que vous devez établir un certain niveau de connaissance de base de l'endroit où ils arrivent. Je suis d'accord avec une base "comment allez-vous aborder la résolution de ce problème de codage spécifique.
Mais j'essaie de rendre les entretiens techniques moins stressants pour les candidats.
Comment évaluer les compétences réelles d'un développeur ?
Quand on arrive à la question d’évaluer les compétences réelles d’un développeur au cours d’un recrutement, plusieurs facteurs entrent en jeu. Les compétences du recruteur lui-même, sa connaissance et sa pratique du métier, ainsi que les méthodes utilisées dans le processus de recrutement peuvent permettre d’embaucher l’oiseau rare ou à l’opposé, se retrouver avec un développeur dont les compétences réelles ne reflètent pas celles qu’on a supposées pendant le processus d’embauche. De manière générale, l’évaluation des compétences peut dépendre fortement de la méthode utilisée.
Les entreprises embauchent les développeurs en se basant sur diverses variables comme l'éducation et le niveau d’étude, l'expérience professionnelle, et la capacité à résoudre des problèmes de codage sur un tableau blanc. Cependant, selon Triplebyte, une société spécialisée dans le recrutement de professionnels de l’IT, aucune de ces méthodes ne marche vraiment dans la plupart des cas. Triplebyte a donc opté pour un processus de recrutement qui permet d’identifier les capacités de programmation générale d’un développeur grâce à un système de notation que la société a mis en place.
Dans un billet de blog publié il y a quelques années (avant le rachat par Karat, plateforme spécialisée dans le recrutement), Ammon Bartram de Triplebyte écrit que « ce dont l'industrie a besoin est une façon de sélectionner les candidats en regardant leurs capacités réelles », et non en se basant sur l’école où ils sont allés ou les entreprises dans lesquelles ils ont travaillé dans le passé.
La société a donc mis en place un processus qui lui permet d’atteindre cet objectif. Il s’agit d’un processus en 4 étapes qui débute par un test technique en ligne, suivi par un entretien téléphonique de 15 minutes pour discuter d’un projet technique réalisé par le candidat dans le passé. Le test technique en ligne comprend un exercice de programmation du style FizzBuzz et un quiz de programmation à choix multiples qui nécessite de comprendre du code réel, en analysant par exemple une fonction, et en choisissant lesquels parmi plusieurs bugs proposés sont présents dans le code.
La 3è étape est une interview de 45 minutes par écran partagé où le candidat écrit du code, et la dernière est une autre interview par écran partagé de 2h où le développeur travaille sur un projet technique plus vaste qu’il choisit dans un ensemble réduit de projets.
Pour permettre au candidat d’être à l’aise pendant le codage, ce dernier a le choix de son environnement de développement et du langage de programmation. Il travaille également avec son ordinateur personnel.
Après avoir évalué 300 candidats en 30 jours, la société livre les résultats de l’analyse des données issues de son processus de recrutement.
L’analyse révèle que le quiz de programmation à choix multiples est un fort prédicteur de la réussite dans les entretiens de codage. « Près de la moitié de la performance de l’interview (48 %) peut être expliquée par le score obtenu dans le quiz », explique Bartram en ajoutant que « 39 % peuvent être expliqués par le temps d'achèvement du quiz ». Les candidats ayant terminé le plus vite le QCM sont donc susceptibles d’être de meilleurs programmeurs.
En ce qui concerne le test de style FizzBuzz, il ne permet pas réellement d’expliquer la performance des candidats au test de programmation. L’analyse révèle en fait qu’il n’y a pas de corrélation entre la bonne résolution du test de FizzBuzz et l'obtention d'un bon score dans l'interview de codage.
Un autre résultat qui est ressorti de l’analyse de Triplebyte montre que les candidats qui ont été impressionnants quand il fallait parler des expériences passées ont été dans certains cas très décevants quand il s’agissait d’accomplir des tâches de programmation relativement simples. À l’opposé, les candidats qui ont eu du mal à être convaincants lorsqu’il s’agissait de parler des expériences passées ont été les meilleurs dans les exercices de codage.
Toutefois, les résultats de l’analyse sont à prendre avec un peu de réserve.
Conclusion
Du point de vue de Kelly Vaughn, les exercices de codage ne sont pas nécessairement une bonne unité de mesure du champ de connaissance d'un ingénieur / développeur. Certains proposent des alternatives à son inclusion dans l'entretien technique comme :
- leur demander de présenter leur portfolio ou leurs projets personnels ;
- leur proposer un test technique à faire chez eux, sans limites de temps ni de ressources ;
- leur faire passer un entretien comportemental ou situationnel, pour évaluer leur personnalité et leur adaptabilité ;
- leur offrir un essai rémunéré ou une période d’essai, pour voir comment ils travaillent en équipe et sur des problèmes réels.
Bien entendu, chacune de ces propositions a des forces, mais aussi des faiblesses.
Et un ingénieur de déclarer : « parfois, avec tous les sprints, la pression pour livrer plus vite, les outils pour mesurer les lignes de code écrites, il semble que nous, en tant qu'industrie, oublions un fait simple : les développeurs sont des travailleurs du savoir, pas des robots ».
Sources : vidéo dans le texte, Triplebyte
Et vous ?
Avez-vous déjà passé un entretien technique avec des exercices de codage ? Si oui, comment s’est-il passé ?
Les entretiens techniques sans exercices de codage : une utopie ou une possibilité ?
Quelles sont les compétences techniques que vous considérez comme essentielles pour un développeur ?
Quelle méthode d’évaluation vous semble la plus adaptée pour mesurer ces compétences ?
Quels sont les avantages et les inconvénients des exercices de codage dans les entretiens techniques ?
Quelles sont les alternatives aux exercices de codage que vous avez déjà expérimentées ou que vous aimeriez essayer ?
Voir aussi :
L'entretien technique est-il un bon processus d'évaluation d'un candidat ? Partagez votre point de vue
Programmation : qu'est-ce qui est recherché chez un candidat dans un entretien technique ? Un spécialiste répond à la question
ChatGPT réussit l'entretien de codage Google pour un ingénieur de niveau 3 avec un salaire de 183 000 $, tout en indiquant qu'il ne peut pas reproduire la créativité humaine