Recruter un développeur

Comment recruter un développeur ?

Le marché du travail de l’informatique est dense. On entend régulièrement parler de “Pénurie de développeurs” car les entreprises n’arrivent pas à trouver chaussure à leur pied. De plus, certaines entreprises ont également du mal à recruter de bons éléments. Elles viennent donc chercher du côté des freelances en attendant de trouver le bon salarié. Mais que ce soit l’un ou l’autre, et avec cette pénurie de développeurs, il arrive également d’avoir le sentiment de n’avoir plus que le fond du panier de disponible. Pourtant, les développeurs sont biens là mais encore faut-il savoir les trouver sur le marché du travail. Comment ?

Votre recherche est parfois trop spécifique

Je remarque régulièrement que des entreprises cherchent des “experts”, des “seniors” avec de nombreuses années d’expériences. Certes, tout le monde veut ça… Mais l’expertise ne peut se définir qu’à travers un vécu : on est dans le passé. On devient expert qu’à travers l’expérience mais aussi grâce à la fameuse “première expérience” que quelqu’un devra prendre le risque de nous donner. On ne s’invente pas chef de projet, manager, expert ReactJS, etc … et il n’y a pas de formulaire à remplir pour nous certifier qu’on est un bon ou un mauvais chasseur développeur ou autre. On le devient à travers l’apprentissage du monde professionnel et on pourra justifier d’une expertise qu’une fois que du temps sera passé.

Cette expertise sera relative tant que vous lui accordez de la confiance et du crédit sur le poste, le “titre” et les compétences que vous recherchez. Puis, vient le niveau de la personne sur son poste. Celui-ci est relatif au marqueur que vous vous donnez. Quand vous imaginez quelqu’un à des années lumières, sur Mars, parce que vous l’imaginez excellent dans son domaine, il se considère peut-être en réalité que sur la Lune parce que son positionnement, son marqueur, est différent du votre.

De fait, la recherche d’un expert sur la dernière technologie à la mode devient donc très difficile.

Par exemple, recherchons un expert ReactJS en 2015

On souhaite que le candidat sache maîtriser la librairie sur le bout des doigts et que notre futur expert puisse démarrer notre nouvelle application qui sera à la pointe de la technologie avec cet outil. Cependant, ReactJS n’a démarré qu’en 2013 ce qui nous laisse un delta de 2 années. 2 ans d’expériences maximum pour un développeur ReactJS en espérant que celui-ci ait démarré dès la sortie de la librairie! Si on prend en compte le fait que ce genre de technologie évolue énormément et très vite puisqu’il faut bien “essuyer les plâtres”, il me paraît difficile de cibler le bon profil avec la bonne expertise. Soit vous allez trouver votre expert mais son salaire / son tarif risque d’être très élevé, soit vous tomberez donc sur le fond du panier qui ne peut pas prétendre à l’expertise mais qui pourra toujours tenter de se vendre comme tel.

Si on cumule à cela le jeune âge des nouveaux développeurs qui sont souvent attirés par les nouvelles technologies, vous risquez d’être d’autant plus réticent à cause de sa jeuneusse : “c’est un développeur junior”.

Alors que faire ? Doit-on prendre le risque de prendre quelqu’un qui va découvrir et obtenir sa première expérience sur du ReactJS ? Attendons-nous le Messie en tentant de le faire rentrer dans les clous de notre grille salariale ? Ou faut-il vous remettre en question sur votre recherche et sur le fait que même en tant qu’employeur, il ne faut pas chercher à obtenir le beurre et l’argent du beurre ( sans même parler de la suite de la citation… )

Elargissez l’expertise

Fondamentalement, vous souhaitez quand même quelqu’un qui fasse du ReactJS. Or, cette libraire est développé en JavaScript et, à mon sens, c’est là dessus que vous devriez axer votre recherche. Si vous trouvez un développeur très qualifié dans le domaine du JavaScript et même s’il ne maîtrise pas encore totalement cette nouvelle librairie, il peut être attiré par le challenge d’apprendre ou de perfectionner celle-ci. C’est à dire qu’en recherchant une expertise dans un langage prend plus de sens puisque ces différents langages informatiques sont installés depuis quelques années pour la plupart d’entre eux. Si le langage que vous ciblez est maîtrisé par le candidat, vous avez déjà un potentiel plus élevé.

Prenons un autre exemple, être un très bon développeur WordPress (développé en PHP) n’équivaut pas forcément à être un très bon développeur PHP pour autant (l’inverse est également vrai). L’équation entre un langage, un framework et le métier de développeur (Back ou Front) n’est pas une équation aussi simple que la seule maîtrise d’une de ces 3 composantes ; c’est pourquoi…

Vous avez besoin de cerveaux et pas juste d’un expert

La science de l’informatique ne date pas d’hier et même si l’on voit sortir de nouveaux langages et de nouveaux frameworks, les fondamentaux ne changent pas tous les ans. Une structure conditionnelle, un algorithme de tri, une communication synchrone ou asynchrone, … ne changent pas. Que vous soyez en PHP, JavaScript, Ruby, Python, etc … les principes sont les mêmes. La programmation orientée objet existe depuis plus de 20ans. Etc…

En bref, toutes ces choses qui font le logiciel et le web d’aujourd’hui n’existent pas depuis 1 ou 2ans mais depuis bien longtemps. Ce sont ces fondamentaux qui font les capacités d’un développeur à s’adapter au changement continu et qui lui permettent d’exercer ses compétences au plus haut niveau.

En informatique, on dit régulièrement que lorsque vous traitez un problème au plus bas niveau, les couches du dessus en sont implicitement impactées. Je pense que cela est également vrai pour les compétences d’un développeur. Plus les fondamentaux sont solides, plus le développeur sera en capacité de maîtriser les différentes technologies à sa disposition et à résoudre des problèmes. L’ingénierie en informatique n’est pas la capacité à écrire des structures conditionnelles classiques mais bien le besoin de résoudre nos problèmes de tous les jours au niveau informatique. Cela demande donc de prendre en compte généralement plusieurs problématiques : la sécurité, la performance et la maintenabilité d’une application.

On ne demande pas à un développeur de l’expertise sur tous les sujets en même temps mais de connaître et de comprendre les différentes implications de ce qu’il va produire. Après, libre à chacun de se spécialiser et de créer son expertise sur différents domaines. C’est ce qui va vous permettre, par la suite, de construire une équipe complémentaire.

Au final, comment devez-vous recruter un développeur ?

Positionnez un marqueur en fonction d’un niveau de compétences que vous attendez, des technologies sur lesquelles vous en avez besoin et de la productivité “immédiate” attendue. Mettez le en corrélation avec la réalité du moment (par rapport aux technologies) et ensuite, qu’on le veuille ou non… avec le salaire. Jusqu’à preuve du contraire, on ne travaille pas juste pour du vent et la réalité fait que le marché des développeurs est tendu.

Mais ne vous y trompez pas, le salaire n’est pas la solution qui va résoudre tous vos problèmes. C’est un compromis, un juste milieu à trouver entre votre projet et ce que vous apportera le développeur. Parce qu’il reste ensuite la partie “humain” à traiter. Payer à prix d’or un développeur qui va satisfaire toutes vos attentes techniques ne vous garantit pas d’être la bonne solution. Vous pouvez tomber sur le fameux “développeur toxique” qui va miner vos équipes et se rendre indispensable. Au final, vous allez y perdre plus que de l’argent.

En bref, c’est compliqué n’est-ce pas ? Je vous l’accorde ! Je pense qu’au final il n’y a pas de réponse universelle qui pourra vous satisfaire. En revanche, pour ce qui relève de la technique et du jugement sur : est-ce que je fais le bon choix en recrutant tel ou tel profil technique, c’est un domaine sur lequel je serai ravi d’en discuter avec vous, voire même de vous accompagner.