La pyramide de Maslow transposée sur les développeurs
Alors que la bataille du recrutement des développeurs fait rage, que les ressources sont rares et font l’objet de surenchères, que les sites de recrutement inversé tels que Choose your boss se développent, il est plus, que jamais, important de bien gérer et motiver ses développeurs.
Interrogez des managers de commerciaux, et ils vous expliqueront que rien ne vaut une bonne carotte pour motiver n’importe quel collaborateur. Interrogez des managers d’équipes techniques, ils vous expliqueront que cela ne fonctionne pas, et, s’ils managent des développeurs, que c’est une population très particulière à manager.
Pourtant, si vous interrogez des professionnels des ressources humaines, ils vous confirmeront tous que le management s’apprend, que les théories et bonnes pratiques du secteur recèlent de clés sur le sujet, et que des hommes restent des hommes (ou des femmes), qu’ils soient développeurs ou non.
Alors, qui a raison et comment s’y prendre ?
Ayant désormais passé pas mal de temps à manager des développeurs, directement ou indirectement, ou à auditer des sociétés qui en étaient fortement constituées, j’ai pu me faire quelque avis sur la question.
Une des théories les plus accessibles sur le management est celle de la pyramide de Maslow. Elle explique que la motivation est une sorte de hiérarchie, et que les niveaux de motivation s’établissent par palier. C’est vrai de la vie en général, et l’univers professionnel n’y échappe pas. Le principe est que vous ne pouvez passer au niveau supérieur de motivation que si les besoins inférieurs sont assouvis. Et plus on se situe haut dans la pyramide, plus notre motivation est forte.
En voici une représentation graphique avec les 5 niveaux identifiés par Maslow :
La pyramide de Maslow

De mon expérience, voici une suggestion de 15 points que j’ai regroupés dans les 5 niveaux, selon ma perception de ce qui constitue “ La pyramide de Maslow du développeur ”.
Besoins physiologiques
1. Donner aux développeurs les bons outils pour travailler
Pour un développeur, être équipé du bon matériel est aussi important que de respirer. Si vous ne leur donnez pas les bons outils, non seulement vous allez perdre des heures précieuses de productivité mais surtout vous ne pouvez pas vous attendre à ce qu’ils aillent plus haut dans la pyramide. Donnez du matériel sous-dimensionné ou installez vos développeurs dans un “open-space” bruyant et vous les dévaloriserez avec tous les impacts associés.
2. Bannissez les contraintes de processus trop lourdes
Le développement exige un certain niveau de créativité, qui, mal utilisé peut être un problème (cf notre livre blanc “La performance des équipes de développement”), mais n’en est pas moins un besoin primitif. C’est pour cela que les approches consistant à faire “ pisser du code ” sans valeur ajoutée se révèlent inefficaces. Etre créatif est incompatible avec des contraintes lourdes de processus. Vous ne pouvez pas trouver une solution à un problème en planifiant chaque seconde de votre temps ou en étant constamment en réunion.
3. Réduisez autant que possible les contraintes techniques
Les systèmes vivent toujours plus longtemps que prévu (… ou ne voient pas le jour). En conséquence, des contraintes techniques apparaitront dans votre projet : un schéma ancien de base de données qui ne peut pas être modifié, un vieux système mal conçu rigide ou un client historique imposant une technologie spécifique. Plus il y en a, moins le développeur sera à l’aise. Réduisez les contraintes autant que vous le pouvez. L’idéal est de faire de cette réduction un objectif, quitte à opter pour une approche progressive afin de la rendre compatible avec votre entreprise. S’imposer des contraintes d’héritage technologique est, de toute façon, très coûteux en termes de maintenance.
Besoins de sécurité
4. Assurez-vous de l’utilité du travail effectué
Cela peut sembler évident, et pourtant… Dans la mesure où il existe un niveau élevé d’échecs de projets dans l’industrie du logiciel, les développeurs qui ont vécu une situation dans laquelle tout leur code a été abandonné pourraient se sentir en insécurité en cas de difficultés sur le projet. Et vous en connaissez, vous, des projets sans problème ? La meilleure façon d’y échapper est de procéder par itération, la livraison continue grâce à des méthodes agiles devenant une garantie d’éviter l’effet tunnel. Une perte importante de code serait non seulement une perte financière, mais aussi un énorme frein à la motivation future.
5. Rémunérez les développeurs au bon niveau
La rémunération n’est clairement pas le but ultime des développeurs passionnés. Pourtant, elle est bien évidemment une nécessité inéluctable pour tout être humain. Vous travaillez beaucoup mieux quand vos exigences personnelles sont remplies avec un certain niveau de confort. La rémunération doit également avoir pour contrepartie les progrès accomplis en compétences et en réalisations. C’est pourquoi, la surenchère au recrutement suivi d’un blocage des salaires pendant 3 ans pratiquée par nombre de société de services est une très mauvaise pratique. Il vaut mieux offrir une rémunération juste et régulière, ce que je positionne au niveau de la sécurité dans la pyramide.
6. Fournissez une visibilité raisonnable d’évolution
De même, les développeurs se sentent en sécurité si leur poste est stable, et s’ils bénéficient d’un plan d’évolution. Cela ne signifie pas forcément un besoin de type ‘plan de carrière’ avec une évolution managériale (ce n’est pas pour rien que je préside l’association “Fier d’être développeur”), mais une prise en compte et une valorisation de leurs connaissances et expertises, ainsi que de leur capacité accrue à concevoir et maîtriser des systèmes complexes. Les éditeurs de logiciels anglo-saxons abusent des titres tels que “ distinguished engineer ” ou “ technical fellow ”.
Besoin d’appartenance
7. Partager la vision
Une fois les besoins ci-dessus assouvis, vous devez être capable de grimper au niveau ‘Appartenance’ de la pyramide en créant un esprit d’équipe. Un élément clé de la création du sentiment d’appartenance consiste à partager la même vision du projet. N’attendez pas trop des développeurs, si vous leur donnez les tâches l’une après l’autre sans donner de sens à ce qu’ils font. Il est très dur de motiver les équipes, si vous n’êtes pas transparent sur les grands objectifs du projet.
8. Privilégiez un management issu du développement
C’est un point très important. Un développeur ne trouverait pas légitime d’être managé par des gens qui ne comprennent pas leur travail. Compte tenu de la nature du développement logiciel, c’est tout-à-fait normal. Il est quasi-impossible de comprendre les problèmes des développeurs si vous n’avez pas développé avant. Il n’est pas indispensable d’avoir développé pendant 20 ans, mais avoir fait cela pendant quelques années au minimum est crucial pour prendre les bonnes décisions lorsqu’elles deviennent nécessaires. Les exceptions à cette règle sont, selon moi, très rares et ne fonctionnent qu’avec un manager très intelligent qui s’entoure d’un expert de confiance.
9. Favorisez les discussions techniques entre collègues
Plus les développeurs participent aux discussions ayant trait aux problèmes techniques et aux solutions, mieux c’est. Non seulement l’équipe sera plus efficace et qualifiée au fil du temps, mais cela contribuera aussi à ce sentiment d’appartenance qui favorise la satisfaction et la motivation des développeurs. Créez les espaces de discussion, en ligne ou par revue croisée, et encouragez ces échanges.
Besoin d’estime
10. Assurez-vous que les développeurs apprennent toujours
Ce n’est pas toujours facile à réaliser à tout moment, en fonction des contraintes de l’entreprise. Heureusement – pour ce point, car cela peut aussi être une contrainte – la technologie évolue très vite. Donc, si vous travaillez de façon proactive sur l’élimination des contraintes liées à l’existant et si vous guidez correctement les développeurs, il y a matière à apprendre de nouvelles choses sur tous les projets que j’ai vus.
11. Reconnaissez le travail bien fait
Cela peut sembler évident, mais beaucoup le négligent. Tout le monde doit être reconnu. Selon la nature du collaborateur, vous pouvez le faire publiquement, ou plus intimement, mais dites aux développeurs que vous êtes contents lorsqu’ils ont réalisé un bon travail ou travaillé dur pour satisfaire une échéance. Une attention ou tout simplement quelques mots comme ‘Bon travail ! ’ peuvent suffire à faire la différence. Et il y a des moments qui ont clairement besoin d’être célébrés collectivement, notamment lors de jalons majeurs de livraison.
12. Encouragez les contributions à la communauté
Au-delà des échanges techniques au sein du groupe ou de l’entreprise, vous pouvez encourager vos collaborateurs à être actifs dans la communauté. Pour les junior, cela s’apparente plus à de l’observation qu’à une véritable contribution, mais c’est de toute façon utile pour la visibilité. En revanche, n’hésitez pas à inciter les collaborateurs plus Senior, surtout s’ils ont les compétences pour rédiger ou pour intervenir aux conférences, à contribuer et à se faire connaître dans la communauté. Vous bénéficierez en plus d’un impact positif pour votre entreprise.
Besoin d’épanouissement
13. Responsabilisez-les de A à Z
Atteindre le niveau épanouissement de la pyramide doit être un objectif pour le développement personnel. Il est peu probable de l’atteindre au début d’une carrière de développeur, mais avoir à l’esprit l’objectif de concevoir un logiciel dans son ensemble est un excellent levier de motivation. Cela doit inciter les développeurs à être pleinement responsables de ce qu’ils vous livrent. C’est aussi potentiellement synonyme de pression, mais c’est la contrepartie pour gagner en liberté.
14. Mettez-les en situation d’utiliser leur créativité
Les développeurs sont au plus haut degré de satisfaction quand ils peuvent contrôler chaque décision sur le projet. Être capable de faire tous les choix d’architecture et d’outillage est très satisfaisant. Cela va de pair avec la responsabilité du point précédent, qui peut être dangereuse si des compétences manquent, mais c’est ce que tous les développeurs expérimentés devraient s’efforcer d’atteindre. Lorsque vous y arrivez, vous pouvez exprimer toute votre créativité et trouver les solutions les plus pertinentes aux problématiques de vos clients. En tant que manager, vous devez fixer cet objectif aux développeurs afin de motiver et garder les meilleurs éléments à ce niveau de liberté, quitte à les appuyer de conseil externe au moment opportun si nécessaire.
15. Faites-les contribuer à quelque chose de grand
Le niveau ultime est atteint lorsque, en plus, ce que vous avez contribué à construire est grand, ou sans doute, encore plus significatif pour les développeurs, ‘cool’. Le mot ‘cool’ est difficile à définir car il peut avoir plusieurs définitions en fonction de votre profil et de votre sensibilité. Il peut s’agir aussi bien d’un développement techniquement compliqué que de la contribution à un projet qui a une visibilité ou une renommée mondiale. Ce peut aussi être le sens que le projet porte, comme par exemple une dimension humanitaire ou un thème proche des passions personnelles du développeur.
En résumant, tous ces éléments, voici ce que devient notre pyramide de Maslow pour les développeurs :
La pyramide de Maslow du développeur

Je reste néanmoins preneur de vos commentaires additionnels et de vos expériences.