Embaucher un développeur : comment trouver le bon ?
1. Comment trouver le candidat idéal ?
1.1. La définition du poste à pourvoir
Avant de se lancer dans la recherche de candidats, vous devez savoir qui vous cherchez.
La méthode pour définir votre besoin et les compétences attendues qui en découlent ne change pas lorsque l’on recrute un développeur ou une autre fonction dans l’IT d’ailleurs.
Généralement, les premières étapes du recrutement sont prises en charge par les Ressources Humaines. Le piège, lorsque l’on n’est pas un opérationnel, est de prendre tous les critères comme argent comptant et se retrouver à chercher le mouton à 5 pattes.
Sur les connaissances techniques (langage de programmation, architecture, micro service, API …), vous devez être à même de savoir quelles sont les compétences essentielles au poste et celles sur lesquelles des souplesses sont autorisées.
Ex : Vous cherchez un développeur back-end sur un langage précis. Doit-il absolument maîtriser ce langage ? Peut-il maîtriser un autre langage proche lui permettant d’avoir les prérequis pour monter en compétence sur le langage utilisé sur votre projet ?
Côté soft skills, tout dépend de votre culture d’entreprise mais sur l’aspect métier, 2 compétences sont généralement présentes chez les meilleurs développeurs.
- Ils aiment apprendre : les technologies ne cessant d’évoluer, ils doivent sans cesse se former pour rester à jour
- Ils sont capables de faire face à l’incertitude. Ils n’ont pas peur lorsqu’un problème inconnu jusqu’alors se présente à eux et vont tenter de le résoudre même s’ils ne connaissent pas les résultats qu’ils obtiendront en avance.
1.2. Les 4 canaux d’acquisition de candidats développeurs
Pour trouver des candidats, plusieurs moyens s’offrent à vous :
- Le sourcing (ou approche directe)
- L’annonce de recrutement
- L’inbound recruiting
- Les événements
Et pour maximiser vos chances de trouver le bon candidat, vous pouvez même les cumuler.
1.2.1. Le sourcing ou l’approche directe
Où peut-on sourcer des développeurs ?
Le réflexe, c’est souvent LinkedIn.
L’erreur, c’est penser qu’il n’y a QUE LinkedIn.
Oui c’est utile d’aller sur LinkedIn, c’est un réseau social professionnel. De très nombreux développeurs y sont présents, détaillent leurs expériences professionnelles et indiquent même parfois qu’ils sont en recherche d’un nouveau poste.
Mais ce n’est pas sans inconvénient.
Vous dépendez de l’algorithme de LinkedIn (et de ses plantages aussi). Vous voyez souvent les mêmes profils.
Vos concurrents y sont aussi. Et en masse !
L’activité de certains recruteurs est même suivie sur le nombre de profils consultés et le nombre de messages envoyés chaque jour.
Par conséquent, les développeurs reçoivent beaucoup (beaucoup, beaucoup) de messages via LinkedIn.
Il est difficile de se démarquer dans le flot.
Même avec le meilleur message d’approche, les personnes qui reçoivent le message risquent de ne pas le lire.
Pour augmenter le nombre de profils intéressants, variez les sources.
Vous pouvez sourcer sur :
- GitHub,
- Stack Overflow,
- Google,
- Medium,
- Twitter,
- Meet-up
Ce qui est intéressant avec ces sites, c’est qu’au-delà du parcours professionnel, vous allez voir si la personne est passionnée au point d’y consacrer du temps en se formant, en partageant avec des communautés ou encore en contribuant à des projets open-source.
Ensuite, vous pouvez aller chercher des candidats sur les CVthèques comme celle de Pôle emploi. Et vous pouvez - devez même - aller chercher sur votre ATS (votre outil de gestion des candidats internes) pour voir si vous n’avez pas déjà rencontré vous ou un de vos collègues, un candidat qui correspond à la personne que vous recherchez.
Le candidat sera plus facile à approcher car il vous connaîtra déjà.
Comment approcher des développeurs sursollicités ?
Un·e bon·ne développeur·se peut recevoir jusqu’à 200 messages dans les semaines qui suivent la mise en ligne de son profil ou de l’indication de son ouverture à changer de poste.
En tant qu’employeur potentiel, vous ne devez pas être dans une logique de sélection à cette étape.
D’une part parce que les informations fournies sur les CV ou profil ne sont pas suffisantes généralement. D’autre part, pour retenir l’attention et avoir une réponse de votre interlocuteur, vous allez plutôt devoir le séduire, le convaincre qu’il doit vous rencontrer dans le cadre de sa démarche pour changer de poste.
Que vous êtes une bonne option pour lui.
Si vous contactez le candidat pour la première fois, vous allez lui envoyer ce que l’on appelle un “message d’approche” dans le jargon du recrutement.
Rédigez un message personnalisé plutôt qu’un envoi de masses de mails qui est souvent rédhibitoire pour les développeurs.
Privilégiez des messages courts. Mettez-vous dans la peau de votre interlocuteur, imaginez votre réaction en voyant un gros pavé envoyé par un inconnu.
Allez à l’essentiel :
- pourquoi vous le contactez lui
- quel est le projet (logiciel, application)
- quelle est la stack technique (le langage, les frameworks, les technos)
- comment est composée l’équipe
- quelle est la méthode de travail utilisée (une méthode agile, DevOps, TDD …)
- quel est le salaire prévu
- où se trouve le lieu de travail et s’il y a la possibilité de faire du télétravail
Une fois le premier contact fait, entretenez votre relation avec cette personne pour ne pas gâcher vos efforts. Si vous avez obtenu une réponse, même négative, vous pourrez continuer d’échanger et le jour où il cherchera un nouveau poste, il pourrait revenir vers vous.
De même, si vous avez fait tout le processus de recrutement et que finalement le candidat venait à refuser votre proposition, gardez le contact. Parfois, la prise de poste ne se passe pas comme prévu, entraînant une nouvelle recherche. Dans ces cas-là, bien souvent le candidat n’ose pas revenir vers l’employeur éconduit alors prenez les devant en montrant qu’il n’y a pas de rancune 😉
Toutes les occasions sont bonnes : féliciter pour un nouveau poste, un anniversaire, une formation, une certification …
1.2.2. L’annonce de recrutement
Pourquoi continuer à écrire des annonces
Stack Overflow a réalisé une étude montrant que 26,5% des développeurs ayant répondu à l’enquête avaient trouvé leur poste actuel grâce à une offre d’emploi.
Pourquoi pas plus ? 2 explications à cela :
- Une majorité de dev ont pris l’habitude d’être contactés et ne regardent pas les annonces
- D’autres préfèrent être actifs dans leur recherche et faire un premier filtre quant aux entreprises rencontrées pour éviter de multiplier les processus de recrutement. Mais la qualité des annonces laisse souvent à désirer (erreurs dans les technos, des missions peu détaillées, un nombre d’années d’expérience demandée sur un langage supérieur à son ancienneté, un salaire non indiqué)
Pour améliorer vos annonces, l’élément central est le détail des missions car c’est ce qui intéresse le plus.
L’élément central : l’explication précise de la mission du développeur web
Les développeurs recherchent principalement les missions dans une annonce pour se faire une idée de la qualité de l’environnement technique.
Ils vont donc s’intéresser à :
- L’environnement technique : le langage de programmation utilisé (et attention à l’orthographe et aux associations de technos pour ne pas perdre en crédibilité), la version utilisée, le choix de la stack, les délais de mise en production, la capacité de déploiement, la possibilité de traiter différents éléments (d’être full-stack)
- La qualité du code : pour voir s’il est facile à lire et à faire évoluer pour éviter trop de dettes techniques et donc une maintenance lourde. Si vous appliquez des principes du Software craftmanship, mentionnez-le !
- Le travail d’équipe : application des principes de l’agilité, autonomie dans les missions, une démarche d’amélioration continue …
Remettez les missions dans leur contexte. Par exemple, si la personne sera impliquée dans la conception du produit et dans son évolution, c’est intéressant de l’indiquer. Indiquez également les objectifs attendus du collaborateur qui vous rejoindra.
Les autres éléments à indiquer dans l’annonce
Avoir des missions détaillées c’est déjà un grand pas vers une annonce de qualité sur laquelle votre cible s’arrêtera mais cela ne fait pas tout.
Vous devez montrer que vous savez ce que vous cherchez. Cela rassure sur votre vision sur le projet et sur la montée en compétences que les dev peuvent espérer en vous rejoignant.
Pour cela :
- Ayez un intitulé précis. Évitez les “développeurs web”, “ingénieur informatique”, “analyste programmeur”. Ajoutez le langage à minima
- Ayez une définition du profil recherché précise avec les compétences techniques essentielles et les bonus
Pour se positionner, les candidats ont aussi besoin de connaître :
- La rémunération (au minimum une fourchette)
- Le type de contrat
- La localisation précise du travail
- Les possibilités de télétravailler
- L’activité de l’entreprise (mais plutôt en fin d’annonce)
La rédaction d’une bonne annonce respecte globalement les mêmes principes quel que soit le poste sur lequel on recrute (et si vous voulez creuser le sujet, il suffit de cliquer ici). Les conseils indiqués ici prennent en compte les centres d’intérêt de la cible recherchée, à savoir ici les développeurs.
1.2.3. L’inbound recruiting
L’inbound recruiting est une stratégie de recrutement qui consiste à attirer des candidats qualifiés grâce à la création et la diffusion de contenus, les convertir en collaborateurs et les engager sur votre marque employeur.
Cela repose sur 3 piliers :
- Le développement de votre marque employeur
- La promotion de vos annonces de recrutement (et comme vous venez de les refaire, ça tombe bien)
- La mise en place d’une stratégie de contenus de qualité
L’idée est d’agir sur le long terme en se faisant connaître de votre cible, pas juste en montrant qu’on est bien chez vous mais aussi que vous avez une forte expertise et qu’elle est reconnue. Une bonne stratégie d’inbound recruiting vous permettra de rendre les bons développeurs actifs dans leur recherche d’emploi, ce sont eux qui postuleront chez vous.
Cela implique une bonne connaissance de sa cible (d’où l’importance de travailler les candidates persona) pour traiter les sujets qui leur apporte de la valeur et les intéresse.
C’est pour cela que l’on voit de plus en plus des blogs tech, afin que votre cible vous trouve lors de sa veille. Vous pouvez également communiquer sur les réseaux sociaux, animer des communautés, envoyer des newsletters …
Mais l’on peut également opter pour l’organisation d’événements.
1.2.4. L’organisation et la participation à des événements
Vous pouvez organiser ou participer à des événements du type Jobdating, webinar sur des sujets techniques, des meet-up ou encore des hackathons.
Vous pouvez également créer des partenariats avec des écoles. Même si vous ne recherchez pas de profils juniors pour le moment, s’ils entendent déjà parler de vous à leurs débuts, ils penseront à vous après quelques années d’expérience.
Les développeurs de votre entreprise ont aussi leur réseau. Vous pouvez en profiter en mettant en place une politique de cooptation afin de faciliter l’identification de candidats.
D’autant que ce sont des profils généralement qualifiés, le développeur chez vous n’a pas tellement intérêt à vous recommander d’embaucher un mauvais développeur. Et en termes de savoir-être, étant donné qu’il est recommandé par un collaborateur interne à l’entreprise, il y a de fortes chances pour que le profil recommandé s’intègre facilement dans l’entreprise.
2. Comment évaluer les compétences d’un développeur web ?
2.1. Les questions à poser en entretien de recrutement
Tout dépend de la définition du profil et de vos critères. À partir de cet élément, vous allez créer votre grille d’entretien.
Toutefois, voici quelques questions que vous pouvez intégrer dans votre grille qui pourront vous donner des éléments de réponses intéressants pour évaluer vos candidats.
Attention toutefois à laisser du temps à votre interlocuteur pour poser ses questions. Cela vous permettra de savoir quels sont ses leviers de motivation et traiter ses objections.
Des questions sur sa réflexion :
- Comment aborderiez-vous tel problème ?
- Quel est le projet dont vous êtes le plus fier ? Quelle était l’approche adoptée ?
- Quel est le projet dont vous êtes le moins fier ? Que feriez-vous différemment ?
- Que faites-vous quand une application cesse de fonctionner ?
- Avec quel système de gestion des contenus avez-vous déjà travaillé ?
Des questions sur son esprit d’équipe :
- Avez-vous déjà formé un nouveau collaborateur / Stagiaire / Alternant ? Comment vous y êtes vous pris ?
- Quel est votre avis sur la revue de code entre pairs ? Cela vous permet de savoir s’il reçoit facilement du feedback sur son code, s’il a l’esprit collaboratif et voit la qualité du code avant tout.
- S’il aura des interactions avec des personnes non techniques, vous pouvez le mettre en situation d’expliquer certains termes.
- Qu’est-ce qui est important pour vous pour travailler en équipe efficacement.
Des questions sur ses motivations dans la programmation :
- Pourquoi aimez-vous développer ? Vous verrez si le candidat est passionné par son métier ou si c’est un poste “alimentaire”
- Qu’est-ce que vous avez aimé et détesté dans votre précédent environnement de travail ?
- Quelle techno / Quel langage souhaitez-vous apprendre cette année ? Et pourquoi ?
2.2. Les tests techniques
Le développement demande des compétences techniques, comme tout métier. Il peut donc être intéressant de compléter les entretiens d’embauche avec des tests techniques.
Attention toutefois car le test technique n’évaluera que certaines compétences. Choisissez bien en fonction des critères les plus importants du poste à pourvoir.
Plusieurs options sont possibles mais toute ne se valent pas.
Vous pouvez faire passer :
- Un QCM mais cela reste très théorique et ne dit pas grand chose de ses performances en pratique
- Un test d’algorithmiques ou de code en ligne (moyennant finance)
- Une mise en situation
- Un échange entre pairs (attention toutefois aux biais dans l’évaluation)
- Un “chercher l’erreur” dans un morceau de code où des erreurs sont placées à des endroits stratégiques
- Un problème réel du projet
- Un test en pair ou Mob programming
- Un test de code écrit (mais ces tests sont peu appréciés par les candidats, ne prennent pas en compte le fait de tester son code et d’y revenir ni l’utilisation des outils d’assitance et de correction)
- Un coding game
Quelle que soit l’option que vous choisissez, si vous prévoyez un test technique au cours du processus de recrutement, vous devez prévenir votre candidat en avance. La surprise nuira à son expérience candidat et n’aura pas grand impact sur ses performances.