Republication du 4 mai 2021
Au-delà de la mission et de la vision de l’entreprise, il est un pan entier qui n’est pas forcément discuter au-delà de la direction technique/informatique – parce que bien souvent pas comprise –, c’est l’intérêt technique des missions proposées par l’entreprise. Au gré des centaines d’entretiens qu’on a pu faire passer, le premier critère pour que les développeurs et développeuses choisissent une société plutôt qu’une autre est la qualité de l’environnement technique, qui détermine en partie la montée en compétence.
C’est un critère d’importance puisqu’il détermine tout le reste, et ce critère se décline de la façon
suivante :
- L’environnement technique
- La qualité de code
- L’état d’esprit de l’équipe
Revenons de manière plus détaillée sur chacun de ces trois points.
Être à jour sur les versions
D’abord l’environnement technique, quel que soient les langages et l’environnement utilisés (.NET, Java, Python, JavaScript, etc.), il est important d’être à jour sur les versions, en effet, comment donner à un développeur l’envie de venir travailler chez vous si vous n’utilisez que les anciennes versions, et n’avez pas mis en place les dernières mises à jour. Un bon développeur ou développeuse, s'il ou elle met son profil en ligne peut recevoir jusqu’à 200 demandes d’entretiens en quelques semaines. Dès lors, même si vous êtes une entreprise qui a le vent en poupe, qui fait la une de la presse, si votre environnement technique n’est pas à jour, il sera difficile pour les développeurs et développeuses de se projeter.
L’environnement technique va bien au-delà du simple langage de programmation. Il recoupe aussi des problématiques autour des délais de mise en production, de la capacité de déploiement, de la possibilité de traiter différents éléments et d’être FullStack, c’est-à-dire la possibilité de traiter les problématiques techniques de A à Z. À savoir ne pas centraliser l’information, mais être capable de toucher à tout, et ainsi permettre à toute l’équipe de disposer du savoir. En effet c’est la meilleure garantie de faire monter ses équipes en compétence, et aussi de faire en sorte de ne pas perdre d’informations.
La qualité du code : éviter la dette technique
Ensuite, il y a la qualité de code. Beaucoup de personnes parlent de Software Craftsmanship (Artisanat du développement), mais derrière cette philosophie, il y a tout un tas de principes. Ceux de bases à respecter pour avoir un code de qualité, pour avoir un code normé, découpé, simple à lire, facile à faire évoluer, sans dépendance, etc. En effet quel développeur aurait envie de travailler dans un contexte où il ne fait que de la maintenance, sur des sujets peu intéressants ? La création de valeur est assez faible. La dette technique, qui peut nous faire penser à la dette financière, effraie, et cause dans beaucoup de projets la fuite des développeurs et développeuses.
Pour aller plus loin, et garantir ces notions autour de la qualité il y a différentes approches. Il existe le TDD (Test-Diven Development) notamment, qui correspond à un GPS pour un·e développeur·euse, afin de permettre de garantir une qualité irréprochable dans le code et dans le manière de construire l’algorithme.
Ces notions ne doivent pas être des mots clés utilisés sur une fiche de poste, mais doivent se traduire dans la réalité d’abord des tests techniques. Privilégiez les approches autour de tests en Pair ou Mob Programming, qui correspond à de la programmation en binôme ou en équipe, plutôt que les Coding Game peu appréciés par les candidats qui les enchainent sans conviction. C’est surtout en permettant de rencontrer les autres membres de l’équipe, que le candidat peut se rendre compte de la réalité de l’environnement technique et de la qualité.
La garantie de l'autonomie
Enfin, il y a bien sûr l’état d’esprit. Tout le monde parle d’agilité aujourd’hui, mais qu’en est-il de la réalité de l’équipe et de l’entreprise ? Les candidat·e·s privilégieront les environnements où il y a une certaine autonomie dans l’équipe. Si celle-ci n’est pas polluée par la politique de l’entreprise. Si finalement il y a une vraie possibilité d’être dans de l’amélioration continue, une forme de pragmatisme collectif, qui viendrait remplacer une agilité théorique qui peut être perçue comme un mur face au changement.
En conséquence on peut dire que la qualité de l’environnement d’une entreprise est un savant mélange, entre l’environnement technique à tous les niveaux : du choix de la stack, à l’environnement de déploiement, à l’autonomie de l’équipe, au pragmatisme et à la capacité d’évolution. Une entreprise qui veut pouvoir séduire les meilleurs développeurs et développeuses ferait bien de se poser les bonnes questions et notamment celle-ci : qu’est-ce qui est le plus important pour eux et elles ?
Cette question coûte d’ailleurs parfois très cher à certaines sociétés, qui dépensent des fortunes
pour leur recrutement, mais peine à garder les profils et subissent un énorme turnover.
César Mourot, cofondateur de Code Insider, société de conseil experte sur les méthodologies logicielles avancées