Comment évaluer les compétences techniques des développeurs avant l'embauche ?

[CG]OlogN
29.7K views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Mesurer les compétences des candidats

L'évaluation des compétences des développeurs est devenue une étape incontournable dans tout processus de recrutement informatique. Dans une étude récente que nous avons menée, nous avons constaté que le principal défi relevé par 60% des recruteurs lorsqu'ils embauchent des programmeurs était de trouver des candidats suffisamment qualifiés. En effet, la majorité des erreurs de recrutement dans la tech sont dues à un manque de compétences techniques.

Les CV sont loin d’être des valeurs sûres pour les profils de développeurs. D’une part, parce qu’ils relèvent du déclaratif et qu’une compétence auto-proclamée reste à vérifier, et d’autre part, parce que les programmeurs ne sont pas toujours les meilleurs pour vendre leur savoir-faire. Résultat : vous risquez de passer à côté de très bons candidats qui ne se démarqueraient pas sur le papier.

Le panel de compétences auquel fait appel un programmeur talentueux est large, mais les compétences techniques sont celles que vous pouvez évaluer avec le plus de précision. Voici 5 façons de valider les compétences en programmation de vos candidats développeurs avant l’embauche.

1. L’étude du portfolio

Tout développeur passionné, aussi junior soit-il, se doit d’avoir un portfolio de programmeur.

Les portfolios sont le meilleur moyen pour les développeurs de mettre en valeur leurs compétences en code par le biais de projets personnels. Ils se présentent sous différentes formes et tailles, allant de simples pages Web, pour ceux qui recherchent leur premier poste junior, à des projets logiciels complexes, pour les candidats seniors et les cadres.

Les portfolios sont précieux dans le processus de recrutement tech car ils donnent des indications sur le niveau en programmation des candidats, leurs objectifs de carrière, et les compétences qu'ils souhaitent acquérir. Observez comment un candidat décrit le contexte de ses différents projets : son code exploite-t-il les librairies et outils existants ? La personne a-t-elle collaboré avec d'autres développeurs ? A-t-elle travaillé sur beaucoup de projets restés inachevés ?

De bonnes compétences en communication seront toujours à privilégier pour un poste de développeur et un portfolio est aussi un excellent moyen de valider la capacité d'un candidat à expliquer et à présenter son travail.

Enfin, l'examen du portfolio et l'exploration du code source de certains projets peut servir de base de dialogue avant un entretien et vous aider à construire des questions sur mesure à utiliser lors du processus de recrutement.

2. Jetez un coup d'œil à leur compte GitHub

GitHub est une ressource inestimable à considérer lors de l'embauche de développeurs. Cette plate-forme peut être vue comme un showroom en ligne qui présente les projets open-source sur lesquels les développeurs travaillent et comment ils contribuent aux initiatives des autres.

Pour les développeurs, l'intérêt de posséder un dépôt GitHub est de montrer qu'ils peuvent écrire du code lisible et maintenable que d'autres personnes peuvent facilement comprendre ou utiliser.

En tant que recruteur, avant de vous plonger dans ce code pour en analyser la clarté, la lisibilité et la structure, commencez par vérifier des métriques très simples telles que :

  • Le nombre d’abonnés qui suivent votre candidat (signe de réputation),
  • La date à laquelle le candidat a rejoint GitHub (il y a un filtre utile dans les options de tri en haut à droite) comme indication de son niveau d'expérience,
  • Les mots-clés pertinents cités sur son profil (langages de programmation et technologies),
  • Le nombre de dépôts que votre candidat possède (projets dont il est l'auteur et ceux auxquels il contribue) pour se faire une idée de l’envergure totale des projets auxquels il participe,
  • L’activité publique du candidat est représentée par le nombre de contributions apportées au site (pull requests, commits, problèmes posés).

Attention cependant : GitHub n'est PAS un CV. C'est davantage une manière d’accéder à des projets tels que des applications mobiles, des jeux, des scripts, des plugins, etc. Plus important encore, GitHub vous permet de voir comment les développeurs collaborent volontairement avec leurs pairs dans des projets collectifs.

3. Demandez-leur comment ils utilisent Stack Overflow

Stack Overflow est, dans sa forme la plus immédiate, un site de questions-réponses sur tout ce qui concerne la programmation informatique.

Les développeurs peuvent poser et répondre à des questions sur tous les sujets qui concernent la programmation et les membres actifs reçoivent des points et des badges pour leurs réponses et contributions.

Le site est une mine de d’informations que tout développeur utilise quotidiennement. Il est parfait pour mesurer le niveau de connaissances d'un candidat et son implication dans la communauté des développeurs.

Vous pouvez rapidement vérifier la réputation des développeurs sur Stack Overflow ainsi que leurs réponses les plus appréciées : le taux de réputation est d'autant plus objectif qu'il a été accordé par les pairs.

Les utilisateurs de renom sur Stack Overflow sont des développeurs qui a) sont régulièrement actifs sur le site b) posent des questions pertinentes c) apportent des réponses utiles grâce à leur expertise.

4. L’entretien de code à distance ou “Live coding”

Parce qu'il est sans doute l'étape la plus complexe et stressante que les développeurs sont amenés à rencontrer dans un processus de recrutement, l’entretien de code à distance est très peu populaire dans la communauté des développeurs.

Être capable de réfléchir, de coder et de communiquer simultanément en présence d'un intervieweur en visioconférence peut être très éprouvant si l’on n’a pas d’expérience en la matière. Cependant, du point de vue du recruteur, les tests de programmation en direct constituent une source d'informations très pertinentes. Ils permettent d'observer la logique du candidat, sa capacité à expliquer ce qu'il fait, comment il structure sa réflexion et gère sa capacité à coder sous pression.

Non seulement ils permettent aux recruteurs de voir, en temps réel, comment un candidat se débrouille seul, uniquement armé de ses connaissances en programmation, mais ils permettent aussi de tester ses compétences en communication et ses capacités de collaboration au sein d'une équipe (dans le cas d’entretiens collectifs).

La plupart du temps, les entretiens de code à distance se font par partage d'écran. Les indications de l’exercice sont données au candidat et ce dernier est ensuite observé pendant qu'il accomplit la tâche. Ce type d'exercice est très différent d'un examen chronométré. L'objectif pour le candidat n'est pas de fournir une réponse correcte à la question dans un temps minimum, mais plutôt d’aborder la session dans sa globalité comme une opportunité de dialogue constructif avec son futur employeur.

Les recruteurs seront intéressés à voir quelles questions la personne interviewée prendra le temps de poser pour bien cerner le problème avant de se précipiter pour tenter de le résoudre. Ils pourront également apprécier qu’un candidat soit transparent sur les difficultés qu’il rencontre.

En fin de compte, le but de l’exercice n'est pas pour le candidat de produire un code impeccable. Les entretiens de code en live doivent se résumer à permettre aux deux parties de mieux se comprendre dans un contexte interactif et conversationnel.

5. Les tests de programmation automatisés

Les tests techniques en ligne sont l'un des moyens les plus efficaces de sélectionner les développeurs avant l'embauche. Cette méthode d’évaluation a fait ses preuves pour identifier et recruter des développeurs qui possèdent les compétences requises pour un poste donné.

Lors d’un test de programmation en ligne, les candidats sont appelés à coder pour résoudre des problèmes concrets qu'ils pourraient rencontrer en milieu professionnel (par exemple, trouver un bug dans un code défectueux ou synchroniser correctement une application), permettant aux recruteurs de valider leurs compétences en programmation de manière objective et efficace.

Les directeurs techniques tout comme les responsables RH peuvent mettre en place des tests de programmation à l'aide de plates-formes comme CodinGame, en choisissant de tester les candidats dans un langage de programmation spécifique ou sur plusieurs technologies à la fois (Java, Angular, Python, etc.).

Une fois le code des candidats automatiquement analysé par le système, les recruteurs sont destinataires d’un rapport de test qui liste des indicateurs de performance allant de la maîtrise du langage au design, en passant par la lisibilité ou la robustesse du code. Le rapport de test peut être téléchargé et partagé entre collaborateurs RH pour faciliter la comparaison et la présélection des candidats.

En plus d'optimiser le processus de recrutement, ces tests permettent d'améliorer significativement l'expérience des candidats. En effet, une majorité de développeurs souligne qu’elle n’apprécie pas les entretiens avec des personnes qui seraient peu à même de comprendre les implications techniques de leur métier. Les tests de programmation sont un moyen pour les recruteurs de montrer qu’ils comprennent les exigences d’un poste.

Par ailleurs, les tests techniques en ligne peuvent aussi se présenter sous la forme de challenges ludiques qui donnent à votre marque employeur un côté immanquablement technophile.

En résumé, les tests de programmation en ligne permettent aux recruteurs de gagner beaucoup de temps tout en sécurisant leurs embauches sur le plan technique. Ils remplacent avantageusement les tests papier/crayon ou sur tableau blanc, tout en donnant aux développeurs l'occasion de démontrer leurs compétences et d’être évalués de manière objective.

Foo

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content