A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the `title` element
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>The ‘Pyramid of Hate’ that Brought Down Basecamp (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f7f7f7">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f7f7f7" media="(prefers-color-scheme: light)">
  26. <meta name="theme-color" content="#272727" media="(prefers-color-scheme: dark)">
  27. <!-- Documented, feel free to shoot an email. -->
  28. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  29. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  30. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  31. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  36. <script>
  37. function toggleTheme(themeName) {
  38. document.documentElement.classList.toggle(
  39. 'forced-dark',
  40. themeName === 'dark'
  41. )
  42. document.documentElement.classList.toggle(
  43. 'forced-light',
  44. themeName === 'light'
  45. )
  46. }
  47. const selectedTheme = localStorage.getItem('theme')
  48. if (selectedTheme !== 'undefined') {
  49. toggleTheme(selectedTheme)
  50. }
  51. </script>
  52. <meta name="robots" content="noindex, nofollow">
  53. <meta content="origin-when-cross-origin" name="referrer">
  54. <!-- Canonical URL for SEO purposes -->
  55. <link rel="canonical" href="https://marker.medium.com/the-pyramid-of-hate-that-brought-down-basecamp-838b63ca27e">
  56. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick" data-instant-intensity="viewport-all">
  57. <article>
  58. <header>
  59. <h1>The ‘Pyramid of Hate’ that Brought Down Basecamp</h1>
  60. </header>
  61. <nav>
  62. <p class="center">
  63. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  64. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  65. </svg> Accueil</a> •
  66. <a href="https://marker.medium.com/the-pyramid-of-hate-that-brought-down-basecamp-838b63ca27e" title="Lien vers le contenu original">Source originale</a>
  67. </p>
  68. </nav>
  69. <hr>
  70. <h2 id="1c95" class="ho gp gq bf b hp hq hr hs ht hu hv hw hx hy hz ia ib ic id ie dx"><em class="if">Basecamp bosses banned politics at work over a social justice diagram</em></h2>
  71. <figure class="jk jl fw fx paragraph-image"><figcaption class="kb kc fy fw fx kd ke bf b bg bh dx">The ADL’s “Pyramid of Hate.” Image via adl.org.</figcaption></figure>
  72. <p id="b09b" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Earlier this week, I wrote a <a class="el lb" rel="noopener" href="/basecamp-is-failing-its-own-future-d487bed43155">response</a> to tech company Basecamp’s decision to ban political speech in the workplace. That same evening, Casey Newton published an article for <a href="https://www.theverge.com/2021/4/27/22406673/basecamp-political-speech-policy-controversy" class="el lb" rel="noopener nofollow"><em class="lc">The Verge</em></a><em class="lc"> </em>that shed some light on the events that apparently prompted this announcement. As Newton’s article explains, the political discussions taking place at Basecamp largely focused on the internal culture of the company itself — not conversations about the outside world brought into work, as many were led to believe by the company’s original statement. Newton writes,</p>
  73. <blockquote class="ld le lf"><p id="c1f3" class="kf kg lc kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Interviews with a half-dozen Basecamp employees over the past day paint a portrait of a company where workers sought to advance Basecamp’s commitment to diversity, equity, and inclusion by having sensitive discussions about the company’s own failures. After months of fraught conversations, Fried and his co-founder, David Heinemeier Hansson moved to shut those conversations down.</p></blockquote>
  74. <p id="a324" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Among the sens<span id="rmm">i</span>tive topics of discussion was a list called “Best Names Ever” that had been compiled and maintained by Basecamp workers over the past decade. This was a list of customer names that various workers had found funny for some reason or another. According to Newton, many of these names were American or European in origin, however others were obviously Asian or African. Eventually, employees began to express their discomfort with the list, and the company began holding discussions about how to hold those who had allowed it to circulate for so long accountable.</p>
  75. <p id="4231" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">On April 13, two employees who had contributed to the list in the past issued an apology using Basecamp’s internal employee chat, hosted on the remote workplace collaboration software that Basecamp itself builds and distributes. This apology, Newton explains, included a link to the so-called “<a href="https://www.adl.org/sites/default/files/documents/pyramid-of-hate.pdf" class="el lb" rel="noopener nofollow">Pyramid of Hate</a>”—an illustration produced by the Anti-Defamation League that shows “how the most extreme acts of extremist violence are enabled by a foundation of biased attitudes and acts of bias.”</p>
  76. <p id="80fd" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">On the lowest level of the Pyramid of Hate are “acts of bias,” defined as jokes, stereotypes, non-inclusive language, and other comparatively minor insensitivities (often dubbed “microaggressions”). Higher up on the pyramid are structural and legal forms of discrimination, bias-motivated acts of violence, and finally, at the most extreme level, genocide.</p>
  77. <p id="0e21" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Apparently, the founders of Basecamp took great offense to this graphic being brought into the discussion. Newton writes,</p>
  78. <blockquote class="ld le lf"><p id="6bb7" class="kf kg lc kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">[Hansson] told me today that attempting to link the list of customer names to potential genocide represented a case of “catastrophizing” — one that made it impossible for any good-faith discussions to follow. Presumably, any employees who are found contributing to genocidal attitudes should be fired on the spot — and yet nobody involved seemed to think that contributing to or viewing the list was a fireable offense. If that’s the case, Hansson said, then the pyramid of hate had no place in the discussion. To him, it escalated employees’ emotions past the point of being productive.</p></blockquote>
  79. <p id="2c0b" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">In response to Newton’s article, Hansson issued a lengthy <a href="https://world.hey.com/dhh/let-it-all-out-78485e8e" class="el lb" rel="noopener nofollow">blog post</a> in which he recounted the back-and-forth that took place over the company chat, spurring multiple reports to HR. “I was dismayed to see the argument advanced in text and graphics on [Employee 1’s] post that this list should be considered part of a regime that eventually could lead to genocide,” Hansson wrote to his employees. “That’s just not an appropriate or proportionate comparison to draw.”</p>
  80. <p id="4ef7" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">When several of Hansson’s employees attempted to explain the diagram again, he responded:</p>
  81. <blockquote class="ld le lf"><p id="ff25" class="kf kg lc kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">…I don’t think we serve the cause of opposing colonial regimes or racist ideology by connecting their abusive acts around names to this incident. And I don’t think we serve an evaluation of you and others making fun of names in a Campfire session by drawing that connection either.</p><p id="66cb" class="kf kg lc kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">We can recognize that forceful renaming by a colonial regime is racist and wrong while also recognizing that having a laugh at customer names behind their back is inappropriate and wrong without equating or linking the two.</p></blockquote>
  82. <p id="c47d" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Hansson’s comments are revealing. Most notably, they reveal that he doesn’t seem to actually understand the purpose or the content of the diagram in question. The purpose of the “Pyramid of Hate” is not to suggest that racist jokes and callous insensitivities are “part of a regime that eventually could lead to genocide,” nor does it “equate” making fun of names with genocide. The purpose of the graphic is to demonstrate that hate crimes and structural racism don’t happen in a vacuum. They happen within a society in which a foundation has been laid that makes them possible. It’s not a slippery slope; it’s an architectural metaphor in which the higher levels depend upon the support they receive from the lower levels. Like all metaphors, the “Pyramid of Hate” is not perfect. But it does a reasonably good job of illustrating how seemingly isolated attitudes and behaviors can serve as part of a foundation that makes more overt forms of violence possible.</p>
  83. <p id="3443" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Hansson’s second error is the projection of “catastrophizing” onto his employees when it is he himself who is catastrophizing. Instead of seeing a diagram in which the higher levels are dependent upon lower, obviously less extreme levels, Hansson chose to see a graphic in which the behaviors that had become normalized at Basecamp were being equated with genocide. It is this defensive misconstrual of the actual meaning of the diagram which is tantamount to an “escalation” of emotion and hurt feelings—not the use of the diagram in the first place.</p>
  84. <p id="9de5" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">For all the <a href="https://www.theatlantic.com/ideas/archive/2020/07/dehumanizing-condescension-white-fragility/614146/" class="el lb" rel="noopener nofollow">valid criticism</a> that has been lobbed at Robin DiAngelo’s work around white fragility, some of her concepts are of use here, especially the “good/bad binary.” The “good/bad binary” is the internal script that makes us say, “Racism is bad, I’m not bad, therefore I’m not a racist!” The problem with this all-or-nothing thinking is that it undermines our ability to process nuance. The emotional attachment we feel to perceiving ourselves (or being perceived by others) as “good” makes it more difficult to accept information that complicates that “good” image.</p>
  85. <p id="0b1b" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">In reality, people are complicated. Sometimes “good” people hold biases or attitudes that help reinforce negative, even violent systems. When that happens, it’s up to us to make good on our “good” self-image by holding ourselves accountable to those around us.</p>
  86. <p id="59c6" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">In the conclusion of his blog post, Hansson writes,</p>
  87. <blockquote class="ld le lf"><p id="0b7c" class="kf kg lc kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">If you do indeed strive to have a diverse workforce both ideologically and identity wise, you’re not going to find unison on all these difficult, contentious issues. If you did, you’d both be revealing an intellectual monoculture and we wouldn’t be having these acrimonious debates.</p></blockquote>
  88. <p id="1c66" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">Indeed, judging from the accounts of the many employees who have now gone on record about this issue, the “debates” that have been happening at Basecamp are precisely the kinds of conversations that happen when you have a diverse workforce. Different issues affect different people differently, and being able to speak freely about those differences is the hallmark of a healthy culture. But by framing these discussions as “acrimonious debates” rather than “challenging conversations,” Hansson has positioned himself not as a peacemaker, but as a tyrant hell-bent on taking his toys and going home; shutting down discussions rather than holding space for growth and discovery.</p>
  89. <p id="8e04" class="kf kg gq kh b hp ki kj kk hs kl km kn ko kp kq kr ks kt ku kv kw kx ky kz la gj hn">If Hansson and Fried had been able to tolerate the dissenting opinions of their own employees, they might have been in for a difficult few weeks or months, but the long-term benefit of cultivating an atmosphere of trust would have been invaluable. Instead, they decided to make their tantrum international news. In doing so, they have all but dismantled the positive reputation they spent more than a decade carefully crafting.</p>
  90. </article>
  91. <hr>
  92. <footer>
  93. <p>
  94. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  95. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  96. </svg> Accueil</a> •
  97. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  98. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  99. </svg> Suivre</a> •
  100. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  101. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  102. </svg> Pro</a> •
  103. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  104. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  105. </svg> Email</a> •
  106. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  107. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  108. </svg> Légal</abbr>
  109. </p>
  110. <template id="theme-selector">
  111. <form>
  112. <fieldset>
  113. <legend><svg class="icon icon-brightness-contrast">
  114. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  115. </svg> Thème</legend>
  116. <label>
  117. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  118. </label>
  119. <label>
  120. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  121. </label>
  122. <label>
  123. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  124. </label>
  125. </fieldset>
  126. </form>
  127. </template>
  128. </footer>
  129. <script src="/static/david/js/instantpage-5.1.0.min.js" type="module"></script>
  130. <script>
  131. function loadThemeForm(templateName) {
  132. const themeSelectorTemplate = document.querySelector(templateName)
  133. const form = themeSelectorTemplate.content.firstElementChild
  134. themeSelectorTemplate.replaceWith(form)
  135. form.addEventListener('change', (e) => {
  136. const chosenColorScheme = e.target.value
  137. localStorage.setItem('theme', chosenColorScheme)
  138. toggleTheme(chosenColorScheme)
  139. })
  140. const selectedTheme = localStorage.getItem('theme')
  141. if (selectedTheme && selectedTheme !== 'undefined') {
  142. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  143. }
  144. }
  145. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  146. window.addEventListener('load', () => {
  147. let hasDarkRules = false
  148. for (const styleSheet of Array.from(document.styleSheets)) {
  149. let mediaRules = []
  150. for (const cssRule of styleSheet.cssRules) {
  151. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  152. continue
  153. }
  154. // WARNING: Safari does not have/supports `conditionText`.
  155. if (cssRule.conditionText) {
  156. if (cssRule.conditionText !== prefersColorSchemeDark) {
  157. continue
  158. }
  159. } else {
  160. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  161. continue
  162. }
  163. }
  164. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  165. }
  166. // WARNING: do not try to insert a Rule to a styleSheet you are
  167. // currently iterating on, otherwise the browser will be stuck
  168. // in a infinite loop…
  169. for (const mediaRule of mediaRules) {
  170. styleSheet.insertRule(mediaRule.cssText)
  171. hasDarkRules = true
  172. }
  173. }
  174. if (hasDarkRules) {
  175. loadThemeForm('#theme-selector')
  176. }
  177. })
  178. </script>
  179. </body>
  180. </html>