En dehors du titre, le générique masculin est utilisé sans aucune discrimination et uniquement dans le but d'alléger le texte.

J’entends beaucoup parler du syndrome de l’imposteur chez les dev. Mais le syndrome de l’énorme boulard est tout aussi présent. La taille de l’ego des développeurs est incroyable. Heureusement que la majorité des développeurs ne sont pas atteints de ce syndrome. Mais ils sont quand même très nombreux. Il faut que je t’en parle.

Rockstar du dimanche

À la fin de l’été 2013, je me trimbalais un boulard tellement énorme que je passais plus les portes. À ce moment-là, j’ai seulement deux ans d’expérience derrière moi. Je sors donc à peine de la période dite “junior”. Et surtout, dans l’épisode précédent de cette histoire, je faisais un burn-out complet à cause d’un projet venu tout droit des enfers. Après presque deux mois de travail, comme un gros taré, je sortais une énorme application pour un grand client. J’avais réussi ! J’avais sorti ça seul et à temps. Je sentais vraiment que j’avais pris en expertise à ce moment-là.

Après une période de déprime post-burnout, je suis revenu en colère. Cet exploit faisait gonfler ma tête à vu d’œil. Je me prenais vraiment pour quelqu’un d’important. J’arrivais le matin et je traversais l’open space sans dire bonjour à personne.

Je m’installais à mon bureau et je commençais ma journée par me plaindre des demandes totalement stupides des clients. Ensuite, j’allais en réunion et je faisais un monologue sur comment je voyais telle ou telle solution. Absolument rien à foutre de l’avis des autres. J’étais dans une situation spéciale. L’un des devs les plus expérimentés dans cette boite. Et, dans ma tête, tout ce que je touchais se transformait en or.

Je faisais toujours la même chose. Mêmes technos, même projets, mêmes problématiques, même contexte, même charge, encore et encore. Dans une situation pareille, sans aucun challenge, c’est facile de produire vite et bien. Cette facilité me galvanisait dans mon impression d’être le meilleur. Je me disais que tout était si simple dans ce métier. Et surtout, si quelqu’un suivait pas la cadence, je le pointais immédiatement du doigt de la manière la plus toxique possible.

Cette situation a durée pendant des mois. C’était abominable. Et vu que je me reposais sur mes exploits passés, c’était impossible pour moi d’évoluer. Et un jour, un événement majeur a brutalement changé ma façon d’aborder ce métier.

Pourquoi est-il aussi arrogant ?

Avant ça j’aimerais qu’on discute de pourquoi ce débordement d’ego est relativement fréquent dans ton métier.

Déjà parce que les entreprises sont à la merci de la technologie. Dans ce contexte, tu es celui qui donne des réponses et qui sait réellement comment le produit fonctionne. Pire que ça, ils considèrent ce que tu fais comme de la magie noire. Comme devant un illusionniste, la plupart des gens ne comprennent rien à ce que tu fais. Mais tout le monde trouve ça extraordinaire. Quand on te dit que tu fais de la magie fréquemment, tu finis par y croire. Et à chaque fois, une dose d’ego est injectée dans ton crâne.

Paradoxalement, les juniors sont plus atteints par le phénomène que les seniors. Beaucoup d’entreprises font tout le temps la même chose, de la même façon. Et quand tout est si facile, tu ne te rends plus compte. Quand tu sais pas ce que tu sais pas, t’es persuadé que tu sais tout. Et quand un junior n’est pas tutoré et/ou accompagné par des développeurs plus seniors, ça joue vite des tours. Tu te retrouves avec un gamin arrogant qui se prend pour un tueur.

Également, notre métier est extrêmement compétitif. De façon volontaire ou non, les entreprises mettent en compétition les développeurs entre eux. Qui sera le premier à résoudre le bug ? Qui à la meilleure architecture ? Qui en sait le plus ? Et je te parle même pas des concours qui sont légion. Et toi, t’es classé combien ? Dans un contexte de compétition aussi extrême, les egos sont vite spectaculaires.

Enfin, ça veut pas dire que c’est réservé aux juniors cette affaire. Beaucoup de développeurs avec plus d’expérience sont atteints aussi. Ce que tu fais est super compliqué. À force de régler des problèmes complexes, de plus en plus rapidement, naturellement ça flatte ton ego. Et si t’es pas vigilant, tu peux vite tomber dans le dédain envers les autres qui ne suivent pas la cadence. Et notamment avec les juniors. La plupart des développeurs adoptent une voie pédagogique et de tutorat. D’autres, gonflés par un ego surdimensionné, vont être des gros lourds.

Ce qui différencie pas mal les deux profils est l’acceptation d’un constat simple. Tu ne sais pas tout, n’importe qui peut t’apprendre quelque chose, et c’est très positif. Et parfois ça prend une seule rencontre pour se rendre compte de ça.

Retour à la réalité

Après plusieurs mois à faire le malin, j’étais au sommet de ma connerie. Grande légende des débiles dans un monde sans aucun challenge. Comme y’avait personne pour me calmer, ça aurait pu continuer longtemps.

Et un vendredi soir, j’ai rejoint toute ma boite qui faisait un apéro dans un bar non loin. Cette boite travaillait dans un grand espace de co-working avec plein d’autres boites. Et toutes ces boites étaient plus petites, mais leurs projets étaient très challengeant techniquement.

Évidement, j’arrive et j’hurle à qui veut l’entendre que je suis un expert en à un peu prés tout. Ha oui, je fais de l’architecture et tout en plus. Quand j’y repense, putain, c’était ridicule. Bref, à ce moment-là un développeur senior d’une autre boite m’entend dire de la merde au loin et s’approche de moi. Il a justement besoin de parler à un expert pour l’un de ces problèmes. Et dans ma grande bonté, j’accepte de lui accorder du temps.

Et là, je te mens pas, rien que dans l’énoncé de son problème j’ai pas compris tous les mots. Je me suis immédiatement mis en position latérale de sécurité. Depuis le sol, j’ai essayé de suivre du mieux que je pouvais ce qu’il me racontait.

Il a commencé à me parler de son problème et ma demandé quel type de structure de données, et du coup quel algorithme, serait le plus optimisé pour son problème dans son architecture existante. C’était un problème extrêmement poussé son truc. Ça abordait des concepts que j’avais vaguement évoqués à l’école, mais jamais pratiqués. Il m’a vu me mettre au sol alors il est descendu d’un cran et m’a demandé ce que je pensais de tel ou tel langage pour son problème. J’avais aucune idée vu que je travaillais qu’avec un seul langage et que je m’intéressais à rien d’autre. Et c’est quand il a commencé à m’apprendre la vie sur mon propre langage qu’il m’a mis KO.

Le pire dans cette histoire c’est que lui était finalement très sympa dans sa démarche. C’est moi tout seul qui a pris ça pour de la violence. C’était de la violence pour mon ego. J’étais pas prêt, mais c’est exactement ce qu’il me fallait à ce moment-là. La douleur est un excellent professeur. Et là, pour le coup, ça faisait mal.

Tout est relatif

Arriver à être efficace et productif pour ton équipe, c’est ton objectif principal. Une fois que tu y arrives, il faut que tu gardes quelque chose en tête. Tu es efficace et productif dans ce contexte. Sorti de ce contexte on redistribue les cartes et on se remet en question.

Le mythe du développeur qui sait absolument tout est totalement faux. S’il y a autant de spécialisations dans ce métier, c’est pas pour faire joli. Il y aura toujours quelqu’un pour t’apprendre quelque chose, car il y a trop de choses à apprendre. Si je te conseille d’apprendre et de maîtriser des concepts de base de programmation, c’est pas pour rien. Le problème c’est que si tu te persuades toi même que t’es un monstre, tu vas finir par y croire. Plus ton ego va t’emmener haut, plus la chute sera brutale.

Et y’a d’autres effets de l’enfer à la présence d’autant de profils à fort ego dans notre domaine. Déjà, c’est intimidant pour beaucoup de monde, mais surtout ça peut très rapidement compromettre des projets entiers.

Ego programming

Il y a bien longtemps, dans une galaxie lointaine, très lointaine, j’ai vu de mes propres yeux des projets informatiques explosés en plein vol à cause d’ego débordant.

J’ai vu une équipe de gros seniors développeurs être réunie pour un projet ambitieux. L’idée c’était d’aller vite. Sauf qu’arriver au moment de prendre des décisions techniques, personne n’était d’accord. Personne voulait avoir tort et s’asseoir sur son égo. C’est quand les premières insultes sont arrivées dans les premières pull requests que le projet a été reboot.

J’ai vu un lead tech forcer son framework maison. Tous les développeurs sans exception demandaient poliment une solution libre et plus maintenable. Ce lead tech décréta que le seul choix était son framework maison. L’ego de ce type là a coûté à l’entreprise en question plusieurs développeurs en l’espace de quelques semaines.

J’ai vu tellement de fois des jours entiers de travail gâché, car un développeur était trop fier pour demander de l’aide. J’ai vu tellement de fois des développeurs refaire du code qu’ils jugeaient mauvais sans demander à l’auteur pourquoi. Je pourrais continuer longtemps comme ça. Comme je disais dans l’intro : heureusement que la majorité des développeurs ne sont pas atteints par ça. Sinon ça serait l’horreur. Surtout qu’il suffit juste d’un déclic.

Egoless programming

Le week-end après ma rencontre avec ce fameux développeur j’étais dans le mal. J’ai fini par sortir la tête de mon cul et je me suis rendu compte que j’avais tellement de choses à apprendre que c’était effrayant. Et ça, jusqu’à aujourd’hui.

Plus j’évolue et j’apprends des choses dans ce métier, plus je me rends compte à quel point je ne sais rien. Depuis ce jour j’aborde ce métier avec humilité. Ce déclic m’a ÉNORMÉMENT aidé dans ma carrière. Et je te conseille fortement de faire la même chose. Reste fier de ce que tu as accompli et de ce que tu sais, mais bien conscient de ce que tu ne sais pas.

C’est le même schéma un peu partout dans notre milieu. Des énormes egos, de l’immaturité et un manque de perspective dans une ambiance hyper compétitive. Quand je vois des initiatives comme compassionate coding ou les très connus 10 commandements de l’egoless programming, je me dis que je suis pas le seul à avoir remarqué tout ça.

L’ego est important

Maintenant, attention, l’ego reste à mon sens important. Il faut avoir confiance en soi et ses capacités. Aborder ce métier avec humilité ça veut pas dire te laisser marcher dessus et dire merci. Ça veut dire prendre le temps d’écouter tout le monde avant de donner ton point de vue. Ça veut dire prendre en compte les idées de chacun de façon impartiale. Ça veut dire faire entendre ta solution quand tu as raison. Ça veut dire accepter quand tu as tort.

Comprendre que personne n’est irremplaçable. Ni toi, ni moi, ni ton patron, ni ton directeur technique, pas même le lead tech qui sauve la terre tous les jours. Comprendre que c’est pas en traitant tes collègues de mauvais que tu vas faire avancer le projet. Comprendre que c’est pas parce que tu te considéres comme un dieu que c’est la vérité. Comprendre que si tu fais une erreur c’est pas la fin du monde. D’ailleurs, c’est OK si quelqu’un te le fait remarquer. Comprendre que ce sont justement tes erreurs qui te permettront de grandir plus vite.

Épilogue

Si jamais cet article peut ne serait ce que déclencher un seul déclic chez quelqu’un qui est étouffé par son ego, j’en serais très heureux. Y’a encore beaucoup de choses à dire sur le sujet, mais j’ai préféré me cantonner à l’essentiel. Ton énorme ego mal placé ne t’emmènera nulle part. Il est temps de le laisser en dehors de ta carrière.