
Il était une fois un gars de mon équipe si faible qu'il allait être viré (un développeur! Un licencié!). Chacun de mes commentaires était un autre clou dans son cercueil. Je pouvais presque entendre le coup du marteau chaque fois que je cliquais sur «Soumettre un avis». C'était une personne agréable et je me sentais presque mal pour lui, mais cela ne m'empêchait pas de déchirer son travail en lambeaux. J'avais un droit inaliénable de critiquer son travail, non? Je suis un meilleur développeur, donc j'ai raison. Personne ne veut dire qu'un mauvais code est bon, non? Il a finalement été licencié, pas avant de le quitter sans le bonus habituel pendant quelques mois.
Je me suis dit: «Je ne vais pas faire son travail, non? Il remplaçait un développeur plus talentueux. J'ai tout bien fait. " Mais alors j'ai reçu une autre demande de pull pour un examen, et quelque chose a changé. Radicalement.
À première vue, c'était la même chose qu'avant. J'ai ouvert pr, regardé quel problème il avait résolu, imaginé comment j'aurais pu le résoudre et regardé le code. Comme toujours, c'était de la pure ordure. Nulle part près de la solution que j'aurais pu trouver. OK, j'ai tapé les plaintes générales et je suis allé dans les détails. Chaîne après chaîne a apporté des problèmes et des semi-problèmes, ponctués par mes commentaires passifs-agressifs.
J'étais, encore une fois, techniquement plus fort. Une demande de tirage de mille cordes a été jonchée de 200 commentaires, ne laissant même pas à la personne un faible espoir dans sa compétence. Super
J'ai pointé le curseur sur «Soumettre l'avis», puis je me suis arrêté et j'ai pensé: pourquoi est-ce que je fais cela?
La raison de ces révisions de code en colère est évidente. En tant que membre de l'équipe, j'assume l'entière responsabilité de la base de code du projet. Je dois y travailler plus tard, après tout. C'est une source de nombreux problèmes pour l'entreprise. Le code n'est pas évolutif, ne peut pas être testé correctement, est jonché de bogues. Le support devient de plus en plus cher. Il ne peut pas être open source ou utilisé pour attirer de nouveaux développeurs.
Et puis ce script kiddie arrive. C'est comme ça que la critique s'explique toujours, non? Un bon développeur défend les intérêts de l'entreprise, il s'assure que l'entreprise continue comme sur des roulettes.
Mais je n'y crois pas vraiment. Je ne pense pas que ce soit ma justification.
J'étais fou que, pendant que je passais mes nuits à apprendre le F #, ma fille ait commencé à appeler tout le monde autour de «pères». Et ce gars, au lieu de s'améliorer dans son travail, est rentré chez ses enfants. Et je voulais le punir.
Parce que je fais la revue de code pour l'auto-identification. Je ne donne pas un tirage au sort sur le projet ou le code. Je suis simplement un fou qui a le droit de blesser les gens. Je suis un psychopathe autorisé à tuer. Un mâle alpha avec un énorme bâton.
Quand j'ai réalisé cela, j'avais honte de moi. Vous me demandez ce que je suis et je répondrai que je ne suis pas un fou fou et égocentrique. Au moins dans d'autres aspects de ma vie. Alors pourquoi je suis si mal dans ma profession?

Lorsque j'apprenais le développement de logiciels, l'une des sources d'information les plus précieuses pour moi était les forums. J'ai posé une question et j'ai été intimidé en réponse: les gens me disaient que le problème lui-même était de la merde, ma solution est encore plus merdique, j'ai choisi la mauvaise langue et je ne mérite pas d'être parmi les «bons» programmeurs.
Je voulais aller mieux en apparence seulement pour les remettre à leur place. C'était comme dans le sport - je ne me suis pas entraîné pour une bonne cause, mais simplement pour devenir «plus grand, plus fort, plus rapide» que les autres. Un peu comme un boxeur débutant qui essaie d'éliminer le grand gars de la télévision.
C'était douloureux, mais j'ai marché.
Quand je suis devenu meilleur, j'ai donné mon code pour révision aux vrais «loups». Aux développeurs plus talentueux et trois fois plus expérimentés que moi. Et chaque fois, j'étais rapidement humilié, et d'une manière que j'envisageais de quitter l'industrie. J'étais trop bête pour tout ça. Une semaine de codage détruite en quelques minutes, et je ne pouvais même pas contester quoi que ce soit - chaque note et plainte était impitoyablement évidente et précise. Étrangement, chaque fois que cela s'est produit, le lendemain, je me suis convaincu que dans un an ou deux, je serais meilleur qu'eux, puis nous découvrirons qui est le vrai «roi».
Et finalement, je suis devenu exactement ce que je détestais: un âne toxique jetant ses compétences comme des poings. Je ne fais pas de révision de code pour l'entreprise, j'aime juste montrer aux recrues leur place. Mes compétences ont finalement commencé à porter leurs fruits.
Si un gars m'apporte son code et qu'il a des erreurs, cela me procure un plaisir fou de la façon dont je me sens intelligent. Et puis le cerveau entre en jeu et élabore une explication pratique, comme pour un politicien qui a foiré. Cela dira que je fais vraiment la bonne chose, en gardant la base de code pour le bien de l'entreprise. Mais «pratique» ne signifie pas «vrai».
Et si vous me dites que vous n'avez jamais ressenti ce sentiment, alors vous mentez. Parlez-moi d'objectifs plus élevés, de la formation de recrues et de tout cela - je sais que vous êtes tout simplement trop plein d'eux-mêmes. Et si vous essayez de me dire que vous avez appris à vaincre ce sentiment (même s'il se manifeste en vous), alors je dois être une licorne rose.
Mais voici ce que je pensais. D'une part, j'ai appris à coder précisément parce que je me suis moqué de tout ce temps. Les gens ont éveillé ma colère et cette colère m'a aidé à m'améliorer. L'univers m'a béni avec ce trait afin que je puisse éveiller la colère d'autres codeurs jeunes et inexpérimentés, afin qu'ils deviennent eux-mêmes de meilleurs codeurs et fassent de même pour les autres, et ainsi de suite et ainsi de suite pour l'éternité.
Notre soif de succès au détriment des autres est un simple outil entre les mains de la sélection de la nature. Et je l'aurais accepté tel quel, sinon pour un bug critique.

Lorsque vous commencez à copier les pratiques réussies des autres, mais que ce sont tous des asshats, alors vous dites «Hé, je peux être comme ça aussi». Vous commencez à ressembler à un génie sanglant et à un dieu de la programmation, et tout commence à cliquer. Vous parlez comme si vous connaissiez vos affaires et les gens vous croient.
J'ai senti que je suis là où je ne suis pas parce que je suis compétent, mais parce que je suis un égoïste. Tous les égocentriques que je connais réussissent mieux que leurs collègues plus modestes. Leur code est meilleur, ils sont mis dans de meilleurs projets et ils gagnent plus. Les gestionnaires et les administrateurs les jugent plus précieux et les collègues les respectent davantage.
Il s'est avéré qu'au lieu de devenir un bon codeur, il suffit de convaincre les autres que vous êtes un bon codeur. Ce comportement engendre un cercle vicieux qui produit non des professionnels, mais des asshats toxiques.
Et si vous avez réussi à vous frayer un chemin vers le sommet, vous avez toujours peur que ce placage se dissipe. Cela conduit à une autre erreur logique: vous essayez de vous convaincre et convaincre les autres que les démonstrations externes de pouvoir sont ce qu'est réellement le pouvoir.
Lorsque vous travaillez en tant que développeur, vous devez toujours vous disputer. Vous, en tant qu'équipe, arrivez à une solution après de nombreuses discussions, même si nous les appelons «discussions». Et pourtant, il est en quelque sorte important que vos arguments «gagnent» le plus souvent, juste pour vous sentir bien et confiant en votre pouvoir.
Cela m'a rappelé une expérience que j'ai eue. J'avais l'habitude d'être convaincu que les gays = mauvais. Je n'y ai pas beaucoup réfléchi: il y a longtemps, mon père me l'a dit et je m'en suis souvenu. Une fois, j'étais dans un bar avec un groupe de libéraux, et ce sujet a été soulevé. J'ai immédiatement annoncé ma position sur la question, et ils sont comme "Phil, c'est foiré". Et nous avons commencé à discuter. Je n'ai jamais pensé sérieusement à la question et je n'avais pas d'arguments décents, mais je ne pouvais pas arrêter de discuter quand même. J'avais un objectif: gagner et sauver la face. Je ne sais toujours pas pourquoi.
Je suis toujours comme ça, dans une certaine mesure. Il est en quelque sorte extrêmement important pour moi de gagner dans les disputes, d'avoir toujours raison et de tout faire parfaitement. Peu importe dont l'idée est meilleure, mais ce doit être la mienne qui est mise en œuvre.
C'est vraiment, vraiment foiré. Je n'ai jamais voulu être comme ça!

Cette revue avec laquelle j'ai lancé l'article? Je ne l'ai pas envoyé. Au lieu de cela, j'ai fait quelques commentaires au gars et lui ai poliment demandé de corriger quelques points. Ce n'est pas grave si le code n'est pas bon, je peux le réparer moi-même si je le dois. Mais je ne peux pas réparer la psyché d'un gars brisé par des dizaines de critiques dures.
Aujourd'hui, ma personnalité n'est pas ma maladie. C'est une maladie de toute l'industrie, du moins en Russie. Notre mentalité est fondée sur le culte du pouvoir et de la supériorité. Et c'est ce que nous devons corriger: arrêtez simplement d'être cela. C'est assez simple, en fait.
Si on se moquait de nous alors que nous étions jeunes, cela ne signifie pas que vous deviez rendre la pareille plus tard. Le cercle vicieux peut facilement être rompu. La vie devient plus facile si vous apprenez à perdre des arguments, si vous pouvez admettre qu'un autre développeur est plus talentueux que vous.
C'est un mouvement de style aikido. Je trompe mon égoïste toxique interne, le convaincre qu'accepter vos faiblesses est formidable, et il commence à être fier de ce qu'il a fait. Et peu importe les tabous que je brise dans le processus si cela me fait me sentir mieux.