
Par une étrange coïncidence, mon
dernier article n'est pas allé sous l'eau, et a nagé en mode silencieux à la surface de Habr. Il semble que les gens aient toujours de l'intérêt, et donc nous pouvons encore penser un peu plus à l'irrationalité de notre pensée et de nos actions. C'est précisément l'eau dans laquelle nous nageons tous les jours, nous appuyons sur ses lois, prenons des décisions en fonction de sa disponibilité et, en même temps, nous ne la remarquons pas à bout portant.
Cette fois, j'aurai besoin de l'aide de 2 chercheurs sur ce sujet.
Daniel Kahneman est psychologue et économiste, prix Nobel d'économie. Ses recherches scientifiques ont mis en doute le rationalisme humain, qui avait déjà dominé la sphère économique. Et
Dan Arieli est professeur de psychologie à l'Université Duke, qui a réalisé de nombreuses expériences sur des personnes et publié des livres bien connus sur l'irrationalisation. Tous les deux, presque toute leur vie consciente, ont été amenés à étudier le comportement humain, à mieux apprendre par quels principes notre cerveau fonctionne et ce qui nous anime. Et maintenant, nous pouvons simplement lire leurs livres et absorber toute cette vaste expérience. Cependant, je donnerai des liens à la fin de l'article.
Daniel décrit le cerveau sous la forme de 2 systèmes. System-1 est rapide, instinctif, émotionnel et System-2 est plus lent, plus rationnel.
System-1: Si nous faisons une analogie avec les ordinateurs, c'est probablement cache + persistance. Chaque demande passe d'abord par ce morceau de mémoire, où de nombreux contrôles sont prêts à être déclenchés à tout moment. Ici, des émotions se forment, dans le contexte desquelles un traitement ultérieur de la demande a lieu. Si vous essayez de présenter cela comme du code, cela pourrait ressembler à ceci:
assert danger: throw FearEvent() if (enemyAround) throw FightOrRunDecisionEvent() throw MobilizeHardware() ... assert satisfaction: throw RelaxationEvent() throw DelightEvent() ...
Je vous l'ai dit, c'est un code assez drôle et, fait intéressant, il est assez unique, car chaque personne est écrite différemment. Le traitement peut s'arrêter ici. Par exemple, si je voulais me gratter l'oreille, pédaler un vélo ou donner une évaluation à une personne qui est représentative d'un stéréotype généralement accepté, je le ferai sur la machine, mais en pensant à ce que je viens de faire. Le cerveau est l'organe le plus énergivore du corps humain, et l'optimisation ne peut pas être évitée, donc son slogan et algorithme principal est "de suivre le chemin de la moindre résistance". Cela économise considérablement des ressources et, dans la grande majorité des cas, simplifie la vie. Dans le vaste, mais pas toujours. Ensuite, notre deuxième ami, Dan, a réussi, qui aime analyser de telles réactions automatiques de personnes qui semblent faire du bon travail, économiser de l'énergie et tout cela, mais conduire à des situations plutôt stupides si vous les regardez d'un point de vue rationnel.
Système-2: c'est la partie rationnelle. Quelque chose comme RAM + persistance. Si la demande est arrivée à ce niveau, cela signifie que la décision n'a pas été mise en cache et qu'il y a quelque chose à penser et à vraiment prendre une décision. Ici, notre mémoire à long terme joue un rôle crucial. Tant au niveau physique (les neurones qui sont connectés les uns aux autres) qu'au niveau logique (un ensemble d'images associatives avec des connexions), la mémoire humaine peut être représentée sous la forme d'un graphique. Il reflète notre expérience de vie de base. Lorsque nous exécutons le programme de prise de décision, il s'agit essentiellement d'une transition le long des bords du graphique à la recherche d'une solution optimale ou d'une réponse à une question. Vous pouvez représenter schématiquement ce processus sous forme de lancement de plusieurs threads, comme dans l'algorithme de réduction de carte, où au stade de la carte, les résultats les plus appropriés de différentes zones sont collectés, puis, à l'aide de la réduction, le meilleur est sélectionné d'où nous pourrions obtenir, en tenant compte de nombreux facteurs, qui sont assez difficiles à attraper.
Pour résumer, le flux d'exécution passe toujours par System-1 et si un gestionnaire approprié est trouvé ou qu'une exception est levée, il se termine immédiatement, sinon nous passons au niveau plus lent de System-2, où la situation est soumise à une analyse plus approfondie. Dans la pratique, cela signifie que nous ne sommes pas toujours aussi rationnels que nous le pensons. La grande majorité des réactions se produisent automatiquement, sans atteindre la partie rationnelle. Et ce processus est sujet à beaucoup d'erreurs.
J'adore vraiment la révision du code. Cela fait partie du développement, qui vous permet d'identifier les problèmes cachés, d'obtenir une évaluation de la solution du problème par quelqu'un d'autre, mettant ainsi en place le processus de transfert des connaissances et de l'expérience au sein de l'équipe. À un moment donné, j'ai réalisé que cette pratique est une épée à deux volets. D'une part, tous ces avantages, d'autre part, c'est un coup dur pour le travail d'équipe et les relations au sein de l'équipe, si vous utilisez cet outil de façon unilatérale. Disons que notre héros sans nom Vasya a obtenu une tâche et implémente une fonctionnalité. Il essaie d'utiliser tout son potentiel et ses connaissances pour s'assurer que la mise en œuvre est la meilleure de son point de vue. Il s'avère que ce soit tel ou non, cela dépend des capacités spécifiques de ce programmeur particulier, mais à ses yeux, cette implémentation est presque idéalisée au niveau du système-1. Le moment est venu de réviser le code, un collègue Petya apparaît et décompose cette image idéale, même pour le bien de l'ensemble du projet, offrant une solution encore meilleure. Le résultat provoque une tempête de protestations dans le malheureux Vasya. Après tout, tout était si bon et sans nuage, mais voici une sorte de mauvaise personne ... pourquoi fait-il ça? tout est parti! Le système-1 est dans une panique, le cerveau peut réagir avec colère, rage, ou ce peut être le désespoir, l'anxiété, un sentiment d'inutilité d'être. Il est probable que cela ne passera pas et que personne ne le verra jamais, mais ces émotions seront dirigées spécifiquement vers la personne qui a fait la revue. Malgré le fait qu'au départ, les commentaires étaient exclusivement liés au code que notre programmeur a écrit, et non à lui personnellement. À l'avenir, ces réactions peuvent s'accumuler et glisser dans la communication quotidienne, mais cela est déjà semé d'embûches au niveau du travail d'équipe.
Les gens se regardent et regardent le monde à travers le prisme des distorsions cognitives qui s'accumulent avec l'expérience. Il est très difficile de distinguer ce qui se passe réellement dans la réalité des
hypothèses que le cerveau a calculées et substituées sous la forme des membres manquants de l'équation.
Si Petya tenait compte du fait que Vasya n'est pas seulement une machine rationnelle qui corrige les faits, il essaierait probablement d'adoucir ses commentaires et de les formuler sous forme de questions qui le poussent à réfléchir aux lacunes et à pousser pour une meilleure solution. Pour équilibrer l'équilibre des pouvoirs, j'inclurais quelques points positifs dans ma critique et expliquer pourquoi il les aime. C'est-à-dire J'essaierais de ne pas provoquer le Système-1 de Vasya pour lever une exception, mais d'arriver au Système-2 aussi calmement que possible. Si, en même temps, Petya essaie de prouver sa raideur et sa supériorité totale, il est peu probable qu'il soit en mesure d'atteindre cet objectif.
Pour sa part, ce serait bien pour Vasya de pouvoir se séparer des résultats de son travail. Se rendre compte que les questions de son code ne sont pas pour lui une intrusion personnelle, que les gens font très souvent des erreurs et qu'il y a toujours de la place pour grandir et apprendre, et c'est normal. Que Petya, en fin de compte, fait son travail exactement de la même manière, et essaie de le faire du mieux qu'il peut. Et bien sûr, que Petya et Vasya ont un objectif commun: fabriquer un produit de qualité et le livrer à temps. Malheureusement, comprendre tout cela au niveau rationnel du Système-2 ne garantit pas que le Système-1 ne tombe pas pour rien de toute façon. Mais ici, curieusement, le couplage cérébral joue dans nos mains, et donc même une telle compréhension peut aider à faire face à la situation.
David et Dan décrivent le sujet plus en détail (pas sur le code de révision, mais en général), donc, s'il y a un intérêt, je recommande fortement les livres suivants:
Penser, vite et lentementPrévisible irrationnelEh bien,
mon dernier article sur Habré .
Merci de votre attention.