- Dans l’industrie du logiciel, il existe un mythe selon lequel certains seraient 10 fois plus productifs que leurs collègues, les fameux « ingénieurs 10x »
- Pourtant, cette idée repose sur des bases fragiles et risque de renforcer des biais ou de fixer des critères irréalistes
Mesurer la productivité est complexe et imparfait
- Comment mesurer la productivité ?
- Les domaines couverts par les ingénieurs sont très variés : microprocesseurs, IoT, bases de données, services web, UX, etc.
- Les langages et frameworks utilisés le sont tout autant : Golang, Python, COBOL, Lisp, etc.
- Une expertise sur des domaines connexes, des marchés et des produits est nécessaire : sécurité, visualisation de données, marketing, finance, etc.
- Les phases de développement et l’échelle des produits diffèrent aussi : entre un rover d’exploration martienne et un simple logiciel, les réalités ne sont pas les mêmes
- La technologie évolue
- Même un ingénieur excellent peut, avec le temps, se retrouver en retard sur certaines technologies
- Quelqu’un qui était un « ingénieur 10x » dans un domaine donné peut n’être que dans la moyenne dans un autre
Le logiciel appartient à l’équipe, pas à un ingénieur
- La qualité d’un logiciel est déterminée par la performance de l’équipe, pas par celle d’un individu
- Même si une personne écrit du code très vite, si le processus de l’équipe est lent, la vitesse finale restera la même
- Plus de temps est consacré aux tests, aux revues, au déploiement et à la maintenance qu’à l’écriture du code
- Lorsqu’un ingénieur détient à lui seul la propriété d’un logiciel, son départ crée un risque majeur
- Une organisation du développement logiciel centrée sur l’équipe est plus stable sur le long terme
Les meilleures organisations d’ingénierie sont celles où les ingénieurs « normaux » peuvent produire d’excellents résultats
- Une grande organisation d’ingénierie n’est pas forcément composée uniquement d’ingénieurs exceptionnels
- L’essentiel est de créer un environnement où des ingénieurs ordinaires peuvent obtenir régulièrement de bons résultats et faire progresser durablement le produit et l’entreprise
- L’équipe doit pouvoir comprendre le système et gérer au quotidien les déploiements, les réponses aux utilisateurs et la résolution des problèmes
- Les meilleures organisations d’ingénierie sont des environnements où les ingénieurs ordinaires peuvent progresser et réussir
L’importance des ingénieurs « normaux »
- L’industrie du logiciel accorde une importance excessive aux « personnes brillantes »
- Netflix dit privilégier les talents du « top 10 % », et Coinbase ceux du « top 0,1 % »
- Pourtant, la plupart des gens sont ordinaires → il faut donc des systèmes dans lesquels des gens ordinaires peuvent réussir
- On ne naît pas ingénieur logiciel : on le devient par la formation et l’expérience
Construire des systèmes sociotechniques pour des « gens ordinaires »
- Les systèmes doivent être conçus pour être faciles à utiliser par des « gens ordinaires »
- Il faut tenir compte des caractéristiques humaines ordinaires :
- il existe des biais cognitifs comme le biais de confirmation, le biais de récence ou l’effet de halo
- la fatigue et l’état émotionnel influencent la performance
- si une alerte sonne à 3 heures du matin, le risque d’erreur est plus élevé qu’à 15 heures
- Si les systèmes sont intuitifs et simples à utiliser, les ingénieurs peuvent consacrer leur énergie à l’amélioration du produit
Les grandes organisations d’ingénierie forment des ingénieurs de classe mondiale
- Une grande organisation d’ingénierie n’est pas celle qui emploie déjà des talents d’exception, mais celle où des ingénieurs ordinaires peuvent progresser
- Dans une bonne organisation, même des ingénieurs de niveau moyen peuvent produire durablement des résultats et évoluer
- Les meilleurs ingénieurs émergent naturellement de ce type d’environnement
Il faut recruter les bonnes personnes, pas forcément les « meilleures »
- Il est plus important de trouver des personnes « adaptées à notre équipe » que de viser les « meilleurs talents »
- Le système doit favoriser la performance collective plutôt que la performance individuelle
- Il faut un environnement où le travail d’équipe et la collaboration comptent davantage que les performances individuelles
- Une culture inclusive et équitable améliore les résultats et offre à des ingénieurs issus d’horizons variés la possibilité de progresser
Conclusion
- Les « ingénieurs 10x » peuvent exister dans la réalité, mais il est difficile et risqué de relier cela à la performance d’une équipe
- Les grandes organisations d’ingénierie ne reposent pas sur quelques génies, mais sur une structure dans laquelle des ingénieurs ordinaires peuvent réussir
- Le système doit renforcer la performance de l’équipe plutôt que celle des individus
- Le point clé est de créer, grâce à une culture et à des systèmes inclusifs, un environnement où des ingénieurs ordinaires peuvent progresser et obtenir des résultats
3 commentaires
Dans une entreprise où il n’y a que des ingénieurs 100x, les ingénieurs 100x sont la norme. La norme est importante. Élever le niveau de la norme l’est encore plus…
Je pense que les ingénieurs logiciels 10x ou 100x dont parlaient des gens comme Steve Jobs signifient ceci.
Dans des métiers comme le bâtiment, la livraison ou la conduite, il est difficile, même pour le meilleur professionnel expérimenté, d’être plus de deux fois plus efficace qu’une personne moyenne. En revanche, dans des domaines comme le logiciel ou la finance, les meilleurs peuvent produire un travail que 100 personnes ordinaires ne pourraient absolument pas produire.
La formation des talents est importante, mais la sélection des talents l’est aussi. Il me semble qu’il y a une grande différence entre former et sélectionner. Il ne faut pas mélanger les deux ni les confondre.
Avis Hacker News
L’idée que l’ingénierie logicielle serait spéciale tend à être toxique
Il n’existe pas d’ingénieur « normal » ; il y a des développeurs de niveaux très variés
Les logiciels sont développés par des individus, pas par des équipes
Opposition à la déshumanisation et à la catégorisation de la classe laborieuse
Déception de voir l’IEEE traiter un sujet qui ressemble à du clickbait
Un ingénieur x10 est créatif et se soucie de l’expérience utilisateur ainsi que de la maintenabilité du code
Le concept d’ingénieur x10 est exagéré, mais certaines personnes accomplissent effectivement énormément de travail
Le travail d’ingénierie a des caractéristiques différentes de celles d’autres professions
Il arrive de se sentir impuissant en se comparant aux autres
Beaucoup d’ingénieurs travaillent pour l’argent, et sans passion il est difficile de devenir un excellent ingénieur