Développement de logiciels à travers le prisme de l'expérience Milgram "Soumission à l'autorité"

La semaine derniĂšre, j'ai passĂ© un temps dĂ©cent Ă  supprimer le code mort de notre base de code. J'aime supprimer le code. Quant Ă  moi, si peu de choses apportent le mĂȘme plaisir que de mettre de l'ordre dans le code. Oui, je l'aime tellement que je suis perplexe devant les ingĂ©nieurs qui laissent du code inutile dans l'application. Mais le week-end, j'ai entendu quelqu'un parler de l' expĂ©rience de Milgram «Soumission Ă  l'autorité» ( ils ont Ă©galement Ă©crit Ă  ce sujet sur le hub) - et je n'ai pas pu m'empĂȘcher de faire un parallĂšle entre la personne qui a choquĂ© un autre ĂȘtre humain et l'ingĂ©nieur qui laisse des bogues connus et un mauvais code.


Si vous n'ĂȘtes pas familier avec l'expĂ©rience de Stanley Milgram, cela consiste dans le fait que l'expĂ©rimentateur (une personne ayant autoritĂ©) ordonne au professeur (l'objet d'Ă©tude) de battre l'Ă©tudiant dans une sĂ©rie de dĂ©charges croissantes de courant, qui se trouve dans une autre piĂšce. Illustration WikipĂ©dia:



E - expérimentateur, T - enseignant, L - apprenant


L'essence de l'expĂ©rience Ă©tait d'Ă©tudier les rĂ©actions des gens aux ordres qui entrent en conflit avec leurs principes moraux. Avant l'expĂ©rience, on pensait que la plupart des sujets arrĂȘteraient l'expĂ©rience dĂšs qu'ils se rendraient compte qu'ils blessaient l'Ă©tudiant. Cependant, au cours de l'expĂ©rience, il s'est avĂ©rĂ© qu'un nombre frappant de sujets ont atteint une dĂ©charge maximale de 450 volts.


Dans la premiĂšre sĂ©rie d'expĂ©riences de Milgram, 65% des participants (26 personnes sur 40) ont utilisĂ© la valeur maximale possible de 450 volts, bien que ce ne soit pas agrĂ©able pour eux de le faire; Ă  un certain moment, chaque participant s'est arrĂȘtĂ© et a doutĂ© de l'expĂ©rience; certains participants voulaient arrĂȘter et rendre l'argent qu'ils avaient payĂ© pour leur participation. Au cours de l'expĂ©rience, les participants ont Ă©prouvĂ© divers degrĂ©s d'excitation et de stress. Ils transpiraient, tremblaient, bĂ©gayaient, se mordaient les lĂšvres, gĂ©missaient, enfonçaient leurs ongles dans la peau, certains riaient nerveusement.

Lorsque nous apprenons de tels rĂ©sultats, nous voulons croire que nous ne ferons jamais cela. Nous voulons croire que «simplement obĂ©ir aux ordres» est un dĂ©faut humain que nous n'avons pas. Mais des expĂ©riences comme celle de Milgram montrent qu’une telle foi est au mieux optimiste et au pire complĂštement fausse.


Et maintenant que nous savons comment les gens réagissent à l'autorité, lorsque la douleur physique est en jeu, voyons comment les programmeurs réagissent à l'autorité lorsqu'il s'agit de choses plus abstraites, telles que la frustration et les désagréments. Prenons le diagramme de l'expérience de Milham et remodelons-le pour refléter l'équipe de développement:



Si nous regardons l'Ă©quipe de dĂ©veloppement comme indiquĂ© dans l'illustration, il n'est pas si surprenant que nous, ingĂ©nieurs, laissions un mauvais code et des bogues connus. Probablement, Ă  un moment donnĂ©, la personne au pouvoir a clairement indiquĂ© que nous n’avons pas le temps de rĂ©soudre les problĂšmes ou que ces problĂšmes n’ont pas la prioritĂ© par rapport Ă  d’autres Ă©lĂ©ments de la feuille de route. Ou que la suppression du code mort n'apporte pas de valeur Ă  l'utilisateur. En consĂ©quence, nous laissons le code tel quel et passons Ă  la tĂąche suivante, bien que cela entre en conflit avec notre boussole morale et les concepts de ce qui est bon et de ce qui est mauvais.


Dans l'expérience de Milgram, les sujets hésitaient souvent et protestaient contre l'envoi d'une nouvelle décharge à une personne dans une autre piÚce. Dans de tels cas, l'expérimentateur a exigé la continuation d'une des phrases prédéfinies:


  • «Veuillez continuer» (Veuillez continuer / Veuillez continuer);
  • «L'expĂ©rience exige que vous continuiez»;
  • «Il est absolument essentiel que vous continuiez» (Il est absolument essentiel que vous continuiez);
  • "Vous n'avez pas d'autre choix, vous devez continuer".

En n'utilisant que des mots, l'expérimentateur a pu s'assurer que 65% des sujets contre leur volonté battaient d'autres personnes avec des décharges de courant trÚs douloureuses. Je me demande quels mots nous utilisons dans le contexte du développement logiciel?


  • Ce n'est pas ce que nous dĂ©cidons, mais l'Ă©quipe produit
  • Nous devons respecter la date limite
  • L'Ă©quipe marketing est sur le point de publier un communiquĂ© de presse la semaine prochaine.
  • Nous fermons trop peu de billets
  • Nous allons tout de mĂȘme jeter ce code
  • Ceci est une solution temporaire.
  • Besoin d'amĂ©liorer les performances de votre Ă©quipe
  • Cela affectera un petit nombre d'utilisateurs.
  • Ce n'est pas une prioritĂ© pour nous maintenant.
  • Nous le rĂ©parerons plus tard
  • C'est ce que veut la direction
  • Pourquoi si longtemps?
  • Besoin de le faire plus rapidement.

Je n'Ă©cris pas Ă  ce sujet afin de suggĂ©rer une solution. Je ne l'ai pas. J'Ă©cris pour cultiver - d'abord en moi-mĂȘme - la sympathie et la comprĂ©hension . Quand je vois un code qui laisse un sentiment de perplexitĂ© ou de comportement que je ne comprends pas, je dois me rappeler que les actions ne reflĂštent pas toujours les intentions. Je dois me rappeler que les ingĂ©nieurs ne laissent pas de mauvais code non pas parce qu’ils n’en ont rien Ă  faire - ils laissent du mauvais code parce qu’ils n’ont pas eu la libertĂ© de le mettre en ordre. Et ils laissent des bogues non pas parce qu'ils ne se soucient pas des utilisateurs, mais parce qu'ils n'ont pas le pouvoir de s'Ă©carter de la feuille de route du produit.

Source: https://habr.com/ru/post/fr432838/


All Articles