Inclusion, diversité et communication positive dans les projets open source

Préambule

Depuis quelques années, les problématiques de diversité d’origine, de genre et de culture dans les projets open source sont un sujet récurrent dans le monde des technologies de l’information. Le mouvement “Women in Tech”, par exemple, existe depuis 1989. Et certains projets comme Drupal ont même discuté du sujet dès 2014.

Les incidents récurrents depuis de nombreuses années entre la communauté afro-américaine et la police aux Etats-Unis ont rendu le sujet prioritaire au printemps 2020 pour nombre d’entreprises occidentales et de projets open source basés aux USA. Elles en ont profité pour communiquer sur leurs bonnes intentions, leur culture interne, etc.

Cela a un impact à court et moyen terme dans les logiciels, documentations et services: l’idée est d’enlever les vocabulaires de type à connotation négative, par exemple “master/slave”, pour préférer un langage neutre culturellement et surtout, le plus descriptif possible. Avec d’autres initiatives comme les codes de conduite, une meilleure répartition des rôles dans les projets, etc., l’objectif est d’attirer de nouveaux contributeurs et d’augmenter leur diversité d’origine et de culture.

Cet article est le résultat d’un long travail sur le sujet dans le cadre de mon travail en tant qu’expert de l’open source. Je vous propose ici une version adaptée récemment pour la publication sur mon blog, basée sur un document qui m’a servi à faire des ateliers et de la communication sur le sujet.

Le sujet étant clivant, les commentaires sont les bienvenus mais doivent être respectueux. En cas de débordement, je les fermerai sur cet article.


 

1. Une synthèse des problématiques clés de l’inclusion et de la diversité pour les projets open source

1.1 Un peu d’histoire

Tout d’abord, il convient de rappeler que ce n’est pas une problématique nouvelle. Les premières réflexions sur le sujet dans les projets open source datent pour certaines de 2014-2015.

Le fait est que beaucoup de projets ont leurs contributeurs distribués sur la planète, qu’ils soient salariés ou experts indépendants. Plusieurs organisations ont cependant montré qu’il y a un problème de diversité dans le monde de la technologie en général, lié en particulier au comportement des développeurs.

La plus importante étude sur le sujet est celle conduite en partenariat avec GitHub qui indique lors de sa publication:

  • Si l’auteur d’un pull request est identifié comme étant une femme, il a 80% de chance en moins d’être validé même s’il est pertinent et de qualité.
  • En général, le code proposé par des femmes est pourtant de très bonne qualité.
  • Pour cette raison, comme dans les jeux vidéo en ligne, beaucoup de femmes ont un avatar et un “nickname” masculin.

Cela conduisait aussi par le passé de nombreuses personnes à refuser de venir aux conférences, pour conserver leur tranquillité: quelle horreur en effet pour le statut de leurs contributions, voire pour leur carrière, si on découvrait qu’en fait elles ne sont pas ce qu’on pensait…
En savoir plus:
Gender differences and bias in open source: pull request acceptance of women versus men

On se souvient de ce qui s’est passé chez Uber après la révélation des agressions envers les femmes par des managers protégés. On en a eu d’autres exemples depuis, par exemple avec Ubisoft. Les projets open source ne font pas exception même si on en parle moins. Voici deux exemples:

La problématique qu’on ne soupçonne pas au premier abord est que cela éloigne de potentiels contributeurs qui préfèrent donc aller participer à des projets ouverts d’esprits, respectueux et bien modérés. Les grandes fondations du logiciel libre et open source comme les fondations Linux ou Eclipse (chez qui j’ai travaillé) se sont saisies du sujet dès 2015, d’abord avec des Code of Conduct appliqués strictement, aussi bien en ligne que « IRL » (meetups, conférences).

Le travail effectué dépasse la simple notion homme/femme, pour inclure les personnes issues de la diversité (comme on dit en France), mais aussi celles porteuses de handicap, les LGBTQIA+, ou encore faire attention à ce que la nourriture sur un événement puisse convenir à toutes les personnes, de toute origine et culture. L’idée est que chaque personne puisse voir son identité respectée, aussi bien en ligne à l’abri derrière un écran, que lors de rencontres sur les conférences et les meetups.

Le constat est que dès lors, les keynotes speakers, les track managers, etc. dans les grands événements open source sont désormais mixtes. Et des personnes qui ne seraient jamais venues il y a quelques années viennent aux événements, y ont un stand ou présentent un talk.

1.2 Rappel du contexte BLM et de son écho pour l’industrie Tech

Aux USA, le mouvement BLM (Black Live Matter) a incité les grands groupes technologiques à prendre position durant l’été 2020, souvent à grand coup de com’ sur les réseaux sociaux et d’articles de blog ou dans la presse tech.

L’origine vient du fait qu’il existe deux types de vocabulaires largement utilisés, et très critiqués. Le premier, “master/slave”, est sorti de son contexte historique lié à l’esclavage des humains et utilisé pour décrire un mécanisme relationnel ou architectural entre deux services (ex: très utilisé avec les bases de données). Le deuxième, autour de black et white, comme “blacklist/whitelist”, ou encore “blackhat/whitehat”, qui introduisent des biais indirects: le blanc est associé au bien et le noir l’est au mal. 

C’est ce qu’on appelle un biais implicite. Pour en savoir plus, lisez ce très bon article sur Wikipedia:
https://en.wikipedia.org/wiki/Implicit_stereotype

Ces vocabulaires ont été utilisés par les inventeurs de l’informatique moderne aux USA dès les années 60-70, dans un contexte socioculturel très différent d’aujourd’hui. Et bien que leurs définition et usages dans la technologie aient été documentés avec le temps, ils montrent qu’un contexte culturel en particulier a été choisi à l’époque (en gros, parler anglais couramment, être blanc et de culture occidentale). Il aurait été plus pertinent pour le long terme d’utiliser dès le départ un vocabulaire purement descriptif, fonctionnel, et compréhensible par tout un chacun, sans connotation culturelle (exemple: allowlist/denylist, goodhat/badhat, primary/replica, …).

1.3 Le besoin de vocabulaire descriptif et inclusif pour favoriser la diversité

Que ce soit dans un fichier « contributing.md », la documentation d’un projet, le code source, ou une offre d’emploi, le ton et le vocabulaire employés sont cruciaux. Une personne s’intéressant à une technologie ou à un emploi voit très rapidement par qui et pour qui c’est écrit (on parle ici principalement de contribuer du code, mais ce n’est pas réservé qu’aux devs, bien sûr).

Les noms de variables, des fonctions, des hook, des paramètres d’API, etc. ou encore, les exemples utilisés pour illustrer des concepts architecturaux sont souvent liés à la culture des créateurs ou des mainteneurs du projet. La première barrière, que l’on oublie souvent, est qu’il faut communiquer en anglais. Et si en plus il faut comprendre des références culturelles, des tournures idiomatiques (exemple: « frais comme un gardon » en français = « fresh like a cucumber » in English), la courbe d’apprentissage devient beaucoup plus lourde pour une personne ayant grandi dans un contexte socioculturel différent (sans même parler de l’utilisation de termes discutables comme “master/slave”).

Utiliser un vocabulaire neutre et descriptif, sans connotation culturelle, est alors préférable. Et c’est ce qui est en train de se passer ces dernières années dans le monde de la technologie en général, grâce aux conseils d’administrations des projets, des fondations et des entreprises qui ont pris position.

L’avantage est que tout pourrait désormais être plus explicite pour un non occidental (exemple: “allowlist” est plus explicite que “whitelist” ou “greenlist”). Nombreux sont en effet les contributeurs avec des références culturelles différentes des occidentaux: pays de l’Est Européen et Russie, la Chine, l’Afrique, etc. Cela diminue la courbe d’apprentissage, rend explicite les usages, et montre le soin apporté à accueillir tout le monde avec respect et tolérance.

Pour conclure ce point, le cabinet d’études McKinsey & Company confirme dans une étude la corrélation entre diversité et profits des entreprises: Delivering through diversity. Pour résumer, la diversité, c’est bon pour les affaires.

2. Une synthèse sur les exemples d’actions prises par des projets open source notables (avec des exemples de projets d’origine US et non US) + la communication associée

NB: cliquez sur les liens pour ouvrir directement les discussions ou références relatives aux projets/entreprises concernés.

Comme expliqué en introduction, on entre dans un sujet qui ne commence pas du tout en 2020, donc bien avant le sujet BLM : c’est déjà abordé, voire traité par plusieurs langages et projets depuis plusieurs années. Par exemple, chez Drupal (CMS), CouchDB (base de données objet), et Django (framework), les premières contributions en ce sens datent de 2014. Sur Stackoverflow, le Q&A pour les développeurs, le sujet a été abordé dès 2010.

Basecamp et RubyOnRails ont traité le sujet en 2018 sous l’impulsion de DHH, très influent dans les applications webs, ainsi que dans la communauté Python. La même année, Buffer a publié un guide sur le langage inclusif à destination des startups et des projets technologiques. Ce sont des communautés très influentes et elles montrent ainsi l’exemple. En effet, Ruby est aussi utilisé par GitHub, et Python est LE langage de l’IA et du Deep Learning.

A partir du printemps 2020, IBM (et Redhat), MySQL (qui appartient à Oracle), Microsoft (et ses filiales LinkedIn et GitHub), Splunk, Android, OpenSSL, PHPUnit, OpenZFS, JP Morgan, Linux, et plein d’autres ont pris position, et systématiquement une position positive. Git a aussi ajouté durant l’été 2020 une fonctionnalité permettant de changer le nom de la branche par défaut (historiquement, “master”) suite aux nombreux tutoriels montrant comment le faire à posteriori.

On remarque donc des profils très variés: éditeurs historiques, récents, qui font du libre, du propriétaires ou les deux, ou encore qui proposent des services ou des API pour les développeurs.

NB: une bonne partie des entreprises et projets ayant pris des initiatives claires sur le sujet (parfois il y a plusieurs années) ont été fondées par des Européens, ou sont très influencés par des contributeurs européens. Par exemple: Acquia / Drupal, BaseCamp / RubyOnRails, ou plus récemment Buffer.

3. Conclusion

Dans les discussions, que ce soit “online” ou “in real life”, on constate encore beaucoup de clivages forts sur ce sujet. Le but n’est pas de remettre en cause les personnes, leur culture, ou leurs croyances. Mais bien d’aller vers plus d’ouverture d’esprit et de tolérance.

Il est donc temps de regarder son travail de manière critique, mais avec bienveillance. Et de se poser cette question: que puis-je améliorer pour que tout le monde se sente à l’aise dans le cadre de l’écriture collective qu’est un projet open source? Un début de réponse peut être apporté en privilégiant un vocabulaire descriptif, sans biais implicite, et ne nécessitant donc aucune connivence ou compréhension d’une culture en particulier.

Si vous avez besoin de recommandations et d’exemples de bonnes pratiques, voici ce que propose Linus Torvald, qui a fait un travail sur lui-même dans son intérêt et celui de son projet open source. Ceci est un extrait de la mailing list utilisée pour la collaboration sur le projet Linux:

+For symbol names and documentation, avoid introducing new usage of
+'master / slave' (or 'slave' independent of 'master') and 'blacklist /
+whitelist'.
+
+Recommended replacements for 'master / slave' are:
+ '{primary,main} / {secondary,replica,subordinate}'
+ '{initiator,requester} / {target,responder}'
+ '{controller,host} / {device,worker,proxy}'
+ 'leader / follower'
+ 'director / performer'
+
+Recommended replacements for 'blacklist/whitelist' are:
+ 'denylist / allowlist'
+ 'blocklist / passlist'
+
+Exceptions for introducing new usage is to maintain a userspace ABI/API,
+or when updating code for an existing (as of 2020) hardware or protocol
+specification that mandates those terms. For new specifications
+translate specification usage of the terminology to the kernel coding
+standard where possible.

4. Ressources complémentaires

 

Gratuité, produits, services et Tristan Nitot

J’entend souvent cette petite phrase à propos des grands services gratuits sur le Web, comme Google ou Facebook:

Si c’est gratuit, c’est toi le produit

Cela m’embêtait cependant grandement au regard de la gratuité  pour l’utilisateur final de nombreux logiciels libres. Et du coup, j’ai demandé sur Twitter son avis à un expert du sujet, M. Tristan Nitot. Voici ce qu’il en dit, et je l’en remercie.

https://twitter.com/nitot/status/806470816569393153

Homosexualité et religion…

Je ne cautionne pas tout le propos de cet article, mais je trouve la réflexion intéressante et intelligente : il s’agit de la réaction d’un auditeur à une émission de radio, où l’animatrice avait eu des propos homophobes en se justifiant avec des passages de la Bible. L’auditeur, utilisant d’autres passages de la même Bible, propose d’autres situations qui aujourd’hui n’ont aucun sens… A lire absolument.

http://blogs.mediapart.fr/edition/laicite/article/030412/bien-se-conduire-grace-au-levitique

PS : Je précise que le sujet étant brulant, je serai plus qu’attentif à la modération des commentaires.

Débat d’idées sur Internet – quelques trucs à respecter

Régulièrement, je suis abasourdi par le manque de qualité et le faible niveau des commentaires et réactions sur les forums, sur Facebook, ou sur les sites Internet d’actualités. À croire que dès qu’on est pas d’accord avec une opinion (politique, technologies, sport, cuisine, …), les règles de courtoisie, de politesse, de grammaire et d’orthographe, et donc plus généralement de respect des opinions des autres, n’ont plus cours sur Internet. Aussi, voici une petite règle simple à mémoriser et le mode d’emploi qui va avec.

Si vous n’avez rien de constructif à ajouter à un débat, et surtout si les idées exprimées vous révoltent, abstenez vous et observez.

Plusieurs raisons à cela:

  • Vous apprendrez surement quelque chose (exemples: sur ceux qui y participent, sur comment exprimer une idée, etc…)
  • Vous éviterez de passer pour un trolleur et ainsi de foutre en l’air le débat et l’humeur des participants s’il est intéressant
  • Vous éviterez que des gens se fâchent pour de bon contre vous
  • Vous ne passerez pas pour un con qui n’a rien à faire là
  • Et le plus important, vous permettrez à ces gens de débattre intelligemment, calmement, et donc que quelque chose de constructif et d’intelligent en sorte; et ce même si vous n’êtes pas d’accord

Vous voulez quand même faire quelque chose? Voici une idée. Et même, sans me vanter, une bonne idée. Des puis, depuis le temps que j’avais envie de la partager…

Ouvrez votre propre débat sur le sujet avec d’autres personnes:

  • Servez vous pour commencer de ce que vous avez appris avec le premier débat (articles, opinions, etc…) en les résumant
  • Si vous mettez un lien vers le débat d’origine, précisez à vos amis de ne pas y participer s’ils n’ont rien à y apporter
  • Restez courtois et polis vis à vis de l’autre débat (dites que c’est révoltant, mais pas que ce sont des connards)
  • Vérifiez et comparez vos sources d’informations (un même sujet ne sera pas traité de la même manière par Libération, Le Monde, Slate ou Rue89, vous pourrez donc trouver des détails qui ont pu être ignoré ou arrangés suivant les versions); cela vous aidera à comprendre les différentes opinions que vous rencontrerez, et vous permettra d’alimenter le débat
  • Si vous voulez faire savoir le contenu de votre débat à l’autre débat, mettez un mot gentil et un lien (exemple : « Bonjour, nous avons lancé un autre débat sur le sujet avec des opinions différentes, vous pouvez le lire sur cette page »)

Sur Facebook, le meilleur moyen de faire ça est de « Partager » l’article ou la photo qui est à l’origine du premier débat, en ajoutant votre opinion, si possible étayée avec une autre source qui vous convient. Le problème fondamental sur Facebook est qu’on peut supprimer un commentaire, vaguement choisir qui peut lire ce qu’on met sur son mur mais on ne peut pas fermer les commentaires définitivement. Il faut donc être très réactif pour modérer.

Voilà, ce n’est pas exhaustif, mais j’espère que ça permettra d’eviter que ça parte en couille entre divers réseaux d’amis qui n’ont pas toujours la même opinion mais qui vous ont en commun.

Pourquoi je suis un pirate ! – Where is Ploum?

http://ploum.net/post/je-suis-un-pirate

Tout est là. Je soutiens l’action, je valide le contenu même si je ne télécharge plus. Car comme Ploum, j’utilise Linux et je dois tricher pour regarder un film que j’ai acheté. J’ai plus de 300 cd qui m’encombrent. Et aucune solution légale ne me permet simplement de les écouter en streaming, sans même parler de notion de qualité de son ni de choix du codec. Et c’est frustrant.

Je voudrais payer pour une solution qui soit simple et exhaustive, tant pour la musique que les films !!

J’espère que ces industries vont enfin se re-inventer, changer de modèle économique, de mode de pensée. Et comprendre que nous sommes leurs clients, qu’ils doivent etre à notre écoute, nous proposer une solution qui nous convienne.

Nous considérer tous comme des voleurs potentiels n’est pas là solution.

À bon entendeur….

Hommage à Paul RICARD

Il n’a pas fait qu’inventer la boisson à diluer dans l’eau qui porte son nom. C’était aussi un entrepreneur, un industriel de talent. Et s’il reste beaucoup de lui dans le sud de la France outre son entreprise (circuit, aéroport, iles entre autres), il a aussi eu de très bons mots. Voici deux citations qui m’ont beaucoup marquées.

  • « L’Etat a un rôle normal, indispensable, d’arbitre. Il est fait pour assumer les tâches administratives, interdire les abus. En matière économique, son devoir est d’inciter, d’encourager. Ce n’est pas de prendre en charge les secteurs en régression qui doivent se réformer, ni de venir en aide à des entreprises mal gérées. Cette charité mal placée fait payer aux contribuables, aux industries prospères, aux travailleurs – tous placés dans le même sac en définitive, car les travailleurs payent en bas salaire ce que d’autres payent en impôts – le secours versé à la routine, à la mauvaise gestion, au refus du progrès. L’hostilité au profit, à ses risques et à ses avantages, étouffe l’esprit d’initiative, de responsabilité individuelle. L’agriculture, le commerce, l’industrie, les professions du risque qui réclament de l’énergie et affrontent l’insécurité, sont délaissées pour le tranquille métier de fonctionnaire! »

  • A propos des grandes études: « Classer des hommes sur leur capacité de mémoire ne prouve pas leur efficacité et leurs qualités d’adaptation. »

Pour en savoir plus sur cet homme plein de bon sens et reconnu comme un entrepreneur bienveillant par ses salariés et collaborateurs, bien évidemment :

  • http://fr.wikipedia.org/wiki/Paul_Ricard
  • http://www.google.fr/search?q=Paul+Ricard