IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Directrice de l'ingénierie Spot AI : « Je suis une fervente partisane des entretiens techniques sans exercice de codage »
Kelly Vaughn propose d'autres méthodes d'évaluations des compétences

Le , par Stéphane le calme

20PARTAGES

15  0 
Les entretiens techniques sont souvent redoutés par les candidats aux postes de développeur. Ils consistent à résoudre des problèmes algorithmiques en utilisant du code réel, sous la surveillance d’un évaluateur. Le but est de tester les compétences techniques, la logique et la créativité des candidats. Cet exercice s'accompagne parfois d'un exercice de codage, mais ce module en guise de méthode d’évaluation est-il efficace ?

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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de AaâÂäÄàAaâÂäÄàAaâÂäÄ
Membre expérimenté https://www.developpez.com
Le 25/06/2023 à 3:30
j'ai déjà arrêté des processus de recrutement à cause de tests techniques débiles - c'est aussi un bon moyen de voir si le processus de recrutement est sérieux, ce qui est un indice de la crédibilité d'un futur employeur.

Par exemple, on m'a demandé de décrire les options possibles de la fonction RESTORE dans MS SQL Server sans accès à la documentation ( PVI https://learn.microsoft.com/en-us/sq...l-server-ver16 ), je savais dès lors que je ne travaillerai jamais avec la personne qui avait construit ce test débile. J'ai refusé de me déplacer à l'entretien suivant, sans aucun regret.

C'est aussi à nous, gens de TI, de se tenir debout et de faire valoir nos compétences et de démontrer l'absurdité des processus de recrutement.
5  0 
Avatar de pmithrandir
Expert éminent https://www.developpez.com
Le 25/06/2023 à 7:53
Le test de codage m'a semblé aussi rapidement peu pertinent.
Il oblige le candidat a travailler avec un stress important et finalement je pense que si le candidat est recruté, c'est la chose que l'on va détecter au bout de qq jours sans difficulté à la première revue de code.

En revanche, j'aime bien demander à la personne de me décrire un projet de son choix.
But du projet
Desc fonctionnelle
Schéma archi technique, flux entrants sortants... Sur tableau blanc.
Et après discussions du type : vous avez fait tel choix, pourquoi, quelles alternatives...

Cela permet de mettre le recruté en position confortable sur le sujet, de vérifier sa capacité à expliquer un sujet qu'il maîtrise, éventuellement à collaborer dans l'exercice d'explication.
On voit dans 80% des cas les gens emmètre eux même les limites dans leur participation (c'est le senior qui a fait ça) et donc souvent leur avis dessus.(hors de portée pu atteignable)

Au final, ça permet de recruter des gens enrichissant pour l'equipe.
4  0 
Avatar de foetus
Expert éminent sénior https://www.developpez.com
Le 25/06/2023 à 8:37
Je me demande si les tests (C.V. et lettre de motivation également) ne servent pas à sauver le recruteur en cas d'échec (si le recruteur est encore en poste)/ justifier son salaire : "c'est la faute à pas de chance, ces références sont solides, ses tests sont bons, …"
Les tests pour moi, sert essentiellement à départager des candidats avec des profils [presque] équivalents.

Et les CodingGames, ne sont pas des tests, mais des jeux Il faut apprendre par cœur les réponses. De toutes façon les ESNs se partagent les CodingGames : on voit revenir les mêmes questions, les mêmes exercices.
Pour les exercices (en C et C++), à force d'échouer j'ai cherché sur Internet (Stack Overflow essentiellement) et à chaque fois, il y a toujours 1 réponse courte (2-5 lignes) (<- c'est pour cela que le temps imparti est souvent très court voire impossible si tu ne t'es pas entrainé)
2  0 
Avatar de pmithrandir
Expert éminent https://www.developpez.com
Le 25/06/2023 à 19:10
Si je regarde mon projet actuel.

On discute beaucoup avant de trouver la bonne manière de faire
On jongle avec différents concepts théoriques
On choisi parfois la solution moins élégante mais plus rapide

La part de dev pur est vraiment pas importante... En revanche la capacité à échanger et projeter sa pensée est vraiment essentielle.
1  0 
Avatar de TotoParis
Membre expérimenté https://www.developpez.com
Le 15/08/2023 à 13:40
le recrutement n'est certes pas aisé. Mais ensuite il y a la période d'essai, non ?
1  0 
Avatar de Escapetiger
Expert éminent sénior https://www.developpez.com
Le 25/06/2023 à 12:47
Citation Envoyé par Stéphane le calme Voir le message
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 (.../...)
C'est valable pour tous les métiers développeurs & IT pro, à placarder en affiche 4x3 sur toutes les entrées des SSII/ESN de France et de Navarre; combien de fois ai-je vu des recrutements bâclés avec l'argument «nous on n'est pas techniques, etc.»; c'est la conséquence de l'industrialisation à bas-coût du recrutement propulsée par les dirigeants, beaucoup de postes sont occupés par des juniors qui eux-mêmes, ont le plus souvent eu du mal à trouver un premier poste; c'est pourquoi - avec le temps et l'expérience - je leur souhaite une bonne réussite en toute bienveillance.
0  0 
Avatar de binarygirl
Membre chevronné https://www.developpez.com
Le 25/06/2023 à 15:52
Inviter un candidat à parler de ses expériences et illustrer ses projets est une bonne façon de décrisper l'entretien. Cela peut déjà mettre en évidence certaines lacunes, ou au contraire des points forts. Et dans la foulée, l'employeur peut alors présenter ses projets et inviter le candidat à donner son avis sur ce qu'il voit.

Je ne crois pas beaucoup à l'utilité des tests, sauf peut-être pour des postes où l’algorithmique est importante, par exemple ce qui touche à l'ingénierie.

Une seule fois j'ai eu un test et çà s'est mal passé. En gros, le but était d'analyser un bout de code en C# ou Python au choix et de déterminer la valeur finale d'une variable après différents traitements et assignations, mais sans la possibilité de faire tourner le code. C'était donc un exercice purement intellectuel. Et pas pertinent à mon avis. Le pire c'est que ceux qui vont réussir le test ne seront pas forcément les meilleurs candidats pour le job... à mon humble avis.
0  0 
Avatar de smarties
Expert confirmé https://www.developpez.com
Le 26/06/2023 à 8:44
Ca a le don de m'énerver de faire des test de code surtout quand il faut écrire des algo compliqués et que celui-ci d'une 1h.

En écriture éventuelle du code, un hello word avec des appels de fonctions et 2-3 trucs suffiraient à déterminer si la personne connaît le langage. En moins de 15 minutes c'est plié au moins et c'est pas moins stressant si c'est devant le recruteur.
Comme dit plus haut débattre sur différentes implémentations me semble bien plus pertinent.
0  0