Conseils pour attirer, gérer et retenir les développeurs de logiciels

Publié: 2022-03-11

La gestion est tout au sujet des personnes. Qu'ils soient managers ou employés, tous deux réfléchissent à la manière d'atteindre leurs objectifs personnels et professionnels. La combinaison de ces objectifs et des traits personnels des personnes impliquées donne forme à des relations qui, avec le temps, peuvent être positives, productives et épanouissantes, ou parfois tout simplement stressantes, exigeantes et sujettes aux conflits.

Bien sûr, dans ce dernier cas, la qualité des produits diminue, le roulement du personnel augmente et l'atteinte des objectifs devient de plus en plus difficile. Par conséquent, trouver un moyen d'établir des relations enrichissantes et motivantes entre les managers et les employés est essentiel en termes d'efficacité, de productivité et d'épanouissement pour chacun d'eux.

Des relations positives sont le meilleur moyen de retenir les talents du logiciel.

Cela est particulièrement vrai dans la gestion des développeurs de logiciels, en raison de la complexité technique et de la nature créative de leur travail, comprimées dans des délais souvent serrés pour produire des résultats. Comme dans toute relation patron-employé, de nombreux facteurs entrent en jeu, tels que :

  • Personnalités
  • Buts
  • Attentes
  • Stratégies
  • Culture organisationnelle
  • Détails techniques du projet

Dans cet article, nous nous concentrerons sur les principaux aspects de gestion, plutôt que sur les aspects techniques, qui, selon nous, devraient être pris en compte par quiconque souhaite réussir à réussir à retenir les développeurs de logiciels.

Mais ici, le « succès » signifie non seulement obtenir des résultats et respecter les politiques, les délais et les budgets de l'entreprise, mais également avoir une équipe de développement de logiciels motivée et productive qui donne le meilleur d'elle-même et reste longtemps dans l'entreprise.

Cela nous amène à notre thème fondamental : qu'est-ce qui motive les développeurs de logiciels ? Dans cet esprit, nous présenterons quelques moyens de fidéliser les employés que nous avons identifiés dans les équipes de développement de logiciels performantes.

Attirer les bonnes personnes

Dans le développement de logiciels, le talent que vous embauchez fera la différence entre le succès et l'échec, et effectuer des changements continus dans une équipe est toujours coûteux en temps et en argent. Par conséquent, un bon processus de sélection est crucial pour la réussite de votre projet.

Offre d'emploi

Les recruteurs technologiques savent que lorsqu'il s'agit d'embaucher des développeurs de logiciels, tout commence par une offre d'emploi soigneusement équilibrée. Le poste doit être motivant pour que les bons développeurs puissent y répondre - des exigences trop nombreuses ou trop spécialisées peuvent être décourageantes, mais si vous êtes trop vague, votre entreprise peut s'attendre à un flot de CV inutiles.

Indiquer des salaires et des avantages sociaux détaillés est également une épée à double tranchant, car vos concurrents peuvent utiliser ces informations pour tirer parti de leurs plans de rémunération, et les développeurs peuvent essayer de les utiliser comme base de négociation lors de leur embauche. Bien sûr, comme il doit toujours y avoir une marge de négociation lors du processus de recrutement, nous suggérons que l'offre d'emploi soit moins précise en matière de rémunération, en utilisant des fourchettes plutôt que des valeurs fixes.

En revanche, l'offre d'emploi doit être aussi claire que possible dans les fonctions et les exigences du poste, à la fois obligatoires et agréables à avoir. Commencer par un ajustement solide est le meilleur contexte pour le reste de nos stratégies de rétention des employés.

Entrevue

À ce stade du processus, c'est une bonne idée d'obtenir des conseils sur l'évaluation des candidats et de voir quels pièges peuvent être évités pendant le processus d'entrevue. Nous aimerions également ajouter aux conseils des ressources ci-dessus que demander au préalable aux candidats des références de leurs emplois précédents est souvent un bon complément à d'autres moyens de valider leurs compétences.

L'offre d'emploi

L'embauche se termine par une offre d'emploi au candidat, lorsque l'entreprise présente un document formel qui résume les caractéristiques du poste (nom, grade, domaine, etc.), le package de rémunération (salaire et avantages tels que la santé, la retraite ou l'éducation, etc.) , la date de début, l'horaire, le lieu de travail et les exigences pour établir un contrat de travail, si le candidat accepte l'offre.

Bien qu'à ce stade tout soit plus ou moins accompli, le candidat peut vouloir négocier certaines conditions, et c'est à l'entreprise de les accepter ou de les négocier. Cela dépend des pratiques de l'entreprise.

Cependant, l'entreprise ne voudra sûrement pas perdre un bon candidat pour une question de principes, donc des compromis raisonnables ne feront de mal à personne. Dans ce cas, il est conseillé de demander quelque chose au candidat en échange de chaque concession faite, comme, par exemple, une date de début anticipée, un temps minimum de permanence dans l'entreprise ou toute exigence particulière que l'entreprise peut avoir.

Gérer les équipes de développement de logiciels pour réussir

Une fois qu'un développeur de logiciels commence à travailler dans l'entreprise, son responsable commence à réaliser qui il est, comment il travaille et, surtout, les résultats qu'il génère. La fidélisation des ingénieurs logiciels devient alors une priorité claire.

C'est là qu'interviennent les informations sur la personnalité des ingénieurs en logiciel : ils, en particulier les plus performants, présentent souvent des traits communs. Nous soulignerons ces modèles au fur et à mesure, mais gardez à l'esprit qu'ils peuvent ne pas s'appliquer de la même manière à chaque individu. La gestion de projet de développement logiciel concerne autant les modèles que les exceptions.

Formation

Le développement de logiciels étant un travail technique, il nécessite une connaissance très précise de la structure, des objectifs, des procédures, des politiques (y compris les croyances et les pratiques commerciales) et des normes (techniques et non techniques) de l'entreprise. Par conséquent, mieux un développeur comprend l'entreprise, meilleur sera le produit qu'il fabriquera et moins il lui faudra de temps pour le fabriquer.

Cette formation de base peut être administrée par des documents, des cours intranet en ligne ou des présentations. Mais c'est une nécessité, car cela donnera de la clarté au nouvel employé.

Si de nouvelles technologies doivent être introduites, assurez-vous de fournir la formation nécessaire. Les développeurs de logiciels aiment être mis au défi, mais ils peuvent être mécontents d'être lancés dans une nouvelle technologie sans l'avoir correctement apprise au préalable.

Internet regorge de précieux supports d'apprentissage, et c'est souvent la première ressource vers laquelle les développeurs de logiciels se tournent lorsqu'ils ont besoin d'apprendre ou de réapprendre des détails techniques. Si vous souhaitez fidéliser les développeurs de logiciels, il est essentiel de promouvoir une culture d'autoformation et, si nécessaire, de lui accorder du temps de travail. De cette façon, l'équipe sera à jour avec les technologies et méthodes de pointe, ce que les développeurs de logiciels apprécient souvent beaucoup.

Ressources

Certains pensent que les développeurs de logiciels recherchent la plus haute technologie pour faire leur travail, avec les meilleures spécifications possibles disponibles dans l'industrie. Nous pensons plutôt que cela dépend du travail à accomplir. Par exemple, si une entreprise développe des jeux à la première personne, il faudra fournir aux développeurs une puissance de calcul de pointe. Mais si le travail consiste à développer des services Web back-end pour un système transactionnel, un ordinateur moins puissant peut suffire.

Ce qui est vraiment important, c'est de donner au développeur tous les outils nécessaires pour faire son travail et être ouvert à ses suggestions sur de nouveaux outils. Logiquement, chaque nouvel outil suggéré par le développeur devra être approuvé (peut-être même testé auparavant) et licencié par l'entreprise. Cependant, cela en vaut la peine : disposer de ressources adéquates est un facteur clé de la motivation et des résultats des développeurs. (Vous ne pouvez pas vous attendre à retenir les ingénieurs logiciels si vous les mettez en échec !)

Organisation

Les développeurs de logiciels aiment travailler dans des endroits qui encouragent et respectent leurs efforts créatifs, car leur travail consiste à créer quelque chose à partir de rien, même s'ils sont guidés par la conception, les normes et les politiques informatiques. Par conséquent, les développeurs doivent être raisonnablement sûrs qu'ils appartiennent à une unité où toute la bureaucratie et les limitations sont au minimum, tant qu'ils respectent les politiques de l'entreprise et sont conformes à ses croyances.

Cela ne signifie pas que les développeurs de logiciels doivent avoir des privilèges spéciaux par rapport au reste de l'entreprise, mais plutôt que leur responsable les aide à surmonter ou à résoudre la bureaucratie en cas de besoin. Un aspect très important pour retenir les développeurs de logiciels est que leur patron est ouvert à leurs besoins personnels et les aide en cas de besoin.

L'arrangement de l'unité de développement interne joue également un rôle clé ici. Souvent, un groupe de test existe et il est du devoir du responsable de l'ingénierie logicielle de maintenir un travail d'équipe fluide entre les développeurs et les testeurs. Cela peut être réalisé simplement en ayant des méthodologies et des processus clairs. Les développeurs ont tendance à très bien travailler avec les testeurs s'il y a des règles à suivre par les deux parties, en gardant les conflits faibles ou inexistants.

Communication (réunions périodiques)

Si vous souhaitez fidéliser les développeurs de logiciels, il est essentiel de les tenir informés. Tous les membres d'une équipe doivent être informés périodiquement des objectifs, des situations d'entreprise qui les affectent, des stratégies, des changements dans l'organisation et, enfin et surtout, des réalisations de l'équipe.

Même avoir un certain nombre de membres de l'équipe partager certains faits saillants sera bon pour favoriser la cohésion et le travail d'équipe de l'équipe. Normalement, ces réunions d'équipe - deux heures maximum - doivent être programmées régulièrement (peut-être hebdomadairement) ainsi que lors d'occasions spéciales comme la phase finale d'un projet, une situation critique, etc.

Outre la communication avec l'équipe, le manager doit établir un moyen de se tenir au courant de la situation de chaque membre, qu'elle soit professionnelle, technique ou personnelle.

  • Par rapport à l'emploi, on entend tous les aspects possibles de la relation de l'employé avec l'entreprise.
  • Des situations techniques apparaissent lorsqu'un développeur est coincé avec un problème et, pour une raison quelconque, il ne cherche pas d'aide.
  • Si le développeur les partage, les situations personnelles qu'ils vivent peuvent affecter leur travail et leurs relations avec leurs collègues.

Normalement, une réunion hebdomadaire de 30 minutes avec chaque membre de l'équipe permettra à un gestionnaire d'identifier ces situations et de fournir de l'aide, évitant ainsi d'éventuelles crises de personnel et améliorant le moral des membres de l'équipe au sein de l'entreprise.

Juste pour être clair, nous ne parlons pas d'établir une unité de développement axée sur les réunions, donc une discipline stricte des réunions (ponctualité, respect, participation, durée) est nécessaire. De plus, cette discipline démontre aux développeurs qu'ils travaillent pour une organisation très professionnelle, ce qu'ils apprécient normalement.

Attribution d'objectifs et suivi

Il est inutile d'assigner des objectifs généraux annuels ou des directives d'évaluation similaires.

Il s'agit là d'un facteur évident lorsqu'on traite avec des développeurs de logiciels : Quel que soit leur rôle (recueil de besoins, architecture, conception, programmation, tests, etc.), les objectifs sont à leur donner avec la plus grande clarté possible, il ne sert donc à rien dans l'attribution d'objectifs généraux annuels ou de directives d'évaluation similaires. Étant donné que les développeurs sont censés travailler dans des projets, c'est-à-dire avec une portée et un calendrier définis, la meilleure façon d'assigner des objectifs est au début du projet et d'inclure comment les progrès seront évalués et, le cas échéant, comment seront-ils reconnus.

Heureusement, il existe aujourd'hui des méthodologies dont le but est de générer des résultats le plus rapidement possible, comme Agile et Scrum, qui simplifient le suivi et le contrôle du projet. Parfois, cela peut même jouer un rôle important dans la rétention des talents logiciels : de nombreux développeurs adorent ces méthodologies car elles peuvent fournir des résultats rapidement, ce qui leur donne régulièrement un sentiment d'accomplissement.

De plus, les développeurs privilégient souvent des méthodologies plus légères. Ils savent que les produits haut de gamme comme Rational, où le produit final est livré après un long projet d'ingénierie des exigences, de conception, de développement, de test et de mise en œuvre, sont risqués et peuvent être pénibles à suivre.

La gestion des conflits

Cela s'applique aux équipes de développement de logiciels autant qu'à tout autre type : un responsable de l'ingénierie logicielle doit gérer les conflits rapidement et efficacement, sinon cela peut devenir incontrôlable et détruire le moral, le travail d'équipe et l'efficacité de toute l'unité.

En supposant que les développeurs en conflit soient professionnels et bien intentionnés, une rencontre du manager avec les personnes impliquées pour initier un dialogue clair avec une résolution rapide par la suite devrait suffire à permettre à l'équipe de passer à autre chose. De plus, il est parfois nécessaire de leur donner un avertissement clair que les conflits au niveau personnel, s'ils en viennent à cela, ne seront pas acceptés.

Dans tous les cas, à l'issue de cette réconciliation, il est très important que les deux parties sentent que la solution est juste, même si l'une d'elles ne l'aime pas. Les conflits font parfois partie de la vie, mais retenir les talents logiciels signifie traiter tout le monde avec dignité chaque fois que de telles situations se présentent.

Motivation

Bien que nous ayons abordé de nombreux facteurs qui influencent la motivation d'un développeur, il existe un autre aspect clé. Celui-ci n'est ni émotionnel, ni technique. On parle du taux de rémunération de leur travail.

Bien qu'ils aient tendance à être de nature idéaliste, les développeurs de logiciels aiment souvent les bonnes choses du monde matériel. Il est toujours préférable pour l'entreprise de s'assurer que les salaires et les plans de rémunération sont alignés sur le marché du travail - les études de l'industrie sont faciles à trouver - et peut-être même un peu plus élevées pour leurs postes.

De plus, la plupart des développeurs de logiciels ne sont pas indifférents aux avantages et aux prix, y compris les cours et les événements technologiques où ils peuvent apprendre des techniques utiles pour enrichir leur travail.

Lorsqu'il s'agit de retenir les développeurs de logiciels, il est important de soutenir leur croissance au sein de l'entreprise, quelle que soit son orientation spécifique. Lorsque les ingénieurs logiciels ne montrent pas beaucoup de désir d'accéder à des postes de direction ou de gestion, ils apprécient plutôt d'évoluer dans le domaine technique. Cela inclut des certifications plus avancées et des programmes académiques formels comme des diplômes de maîtrise ou même des doctorats. La connaissance est un moteur très puissant pour eux.

Cependant, lorsqu'ils aspirent à évoluer vers des postes de direction, il est conseillé de faire une analyse approfondie de la personnalité et de l'histoire du candidat dans l'entreprise. Cela peut se faire avec l'aide du service des ressources humaines ou d'autres unités de l'entreprise, car une bonne gestion nécessite un ensemble de compétences entièrement différent au-delà de la compétence technique.

Comment retenir les talents logiciels : remarques finales

Vous pouvez avoir les meilleures intentions et suivre tous les conseils ci-dessus, mais ne parvenez toujours pas à retenir les développeurs de logiciels à 100 % du temps. Parfois, des facteurs extérieurs ont simplement plus d'influence. Mais nous pensons que le roulement de personnel peut être sain et plein d'opportunités, tant que :

  1. Ce n'est pas fréquent. Si c'est le cas, ce serait le symptôme de quelque chose qui ne va pas au niveau organisationnel.
  2. Cela ne se produit qu'avec les ressources les plus précieuses. Dans ce cas, cela pourrait signifier qu'ils utilisent votre entreprise comme un trampoline, c'est-à-dire qu'ils sont avec vous simplement pour acquérir de l'expérience avant de passer à d'autres entreprises.

Les stratégies de rétention des employés doivent être inscrites dans la politique de l'entreprise, et pas seulement une réaction lorsqu'une personne de valeur veut démissionner. La rétention réactionnaire est très coûteuse et imparfaite : la personne peut accepter de rester, mais se dit : « J'ai travaillé ici pendant X ans juste pour qu'on me propose le double de salaire en partant ; ils viennent d'admettre qu'ils ne me payaient pas. assez!"

Quelle sera la prochaine étape de cette personne ? Ils peuvent chercher un autre emploi, mais maintenant avec le double du salaire comme minimum. À ce stade, essayer de retenir les ingénieurs logiciels à tout prix n'en vaut probablement pas la peine. À moins que la personne ne soit absolument fondamentale (et irremplaçable) pour l'entreprise, il peut être préférable de négocier un délai de préavis et de trouver immédiatement un remplaçant.

C'est une tâche non déterministe

Attirer et fidéliser les développeurs de logiciels est une tâche complexe et non déterministe, comme pour tous les rôles dans l'industrie technologique. Il existe de nombreuses entreprises à la recherche de développeurs de logiciels de valeur, mais heureusement, le but ici n'est pas de gagner contre ces entreprises, mais plutôt d'attirer de bonnes personnes que nous pouvons réussir à garder dans notre entreprise.

Les processus de sélection peuvent prendre beaucoup de temps et d'efforts. Si vous abordez cela à la hâte, il y a de fortes chances que vous vous retrouviez avec les mauvaises personnes - et qui veut retenir les ingénieurs logiciels qui sont toxiques pour leur équipe ? Prenez plutôt le temps de bien faire les choses.