Tout a commencé par un constat que Filippo Valsorda a fait : malgré le fait que l'entreprise dans laquelle il travaillait est critique pour le fonctionnement d'Internet (et, par extension, pour l'économie), le rôle de mainteneur de l'open source n'avait pas encore trouvé de manifestation durable. Pratiquement tous les mainteneurs sont soit des bénévoles, soit des employés à temps plein de grandes entreprises. En moyenne, les fondations ne paient pas les mainteneurs. Quelques projets parviennent à collecter des fonds en vendant des contrats de support ou en obtenant des parrainages de fonctionnalités.
Selon Filippo, tous ces modèles ne parviennent pas à aligner les incitations sur celles du projet. Le volontariat n'est évidemment pas durable, car les conditions de vie des gens changent. L'emploi à temps plein dans les entreprises évolue mal dans le temps et surtout lorsque le projet réussit. Les contrats d'assistance prennent beaucoup de temps par rapport aux travaux de maintenance proprement dits. Les parrainages de fonctionnalités récompensent l'augmentation de la charge de maintenance future sans la financer.
Même s'il n'indique pas les sources sur lesquelles il s'appuie pour étayer son argumentation, certaines études semblent aller dans ce sens. Par exemple, des recherches dans ce domaine, dont l’enquête 2020 sur les contributeurs de logiciels libres du Laboratory for Innovation Science de Harvard (LISH) et l’enquête 2022 sur les mainteneurs de logiciels libres de Tidelift, ainsi que l'enquête 2023 postée sur le blog de la Foundation Linux se sont concentrées sur les besoins des mainteneurs open source.
Les enquêtes ont révélé que l’écrasante majorité (près de trois quarts) des répondants ont un emploi à temps plein. Cependant, elles révèlent une disparité : alors qu’un peu plus de la moitié des répondants sont payés pour leurs contributions au logiciel libre (que ce soit par leur employeur ou par d’autres sources de financement), l’autre moitié n’est pas payée pour ses contributions au logiciel libre.
L’aspect financier n’est pas la principale des motivations des mainteneurs. Les enquêtes montrent que les personnes interrogées placent systématiquement les motivations non monétaires, telles que l’impact sur le monde, le plaisir d’apprendre ou le travail créatif, au-dessus de la rémunération. Pourtant, l’épuisement professionnel est aussi un vrai problème, surtout si l’on considère le temps et les efforts nécessaires pour maintenir un projet largement utilisé.
Les clients et la rémunération de Filippo Valsorda
En mai dernier, j'ai quitté mon travail dans l'équipe Go de Google pour expérimenter des voies plus durables pour les mainteneurs open source. J'ai conservé mes différentes casquettes de mainteneur (Go cryptography, transparence tooling, age, mkcert, yubikey-agent…), itéré sur le modèle depuis septembre, et je suis heureux d'annoncer que je suis maintenant un mainteneur open-source indépendant à temps plein. Cela signifie que je consacre la majeure partie de mon temps à la maintenance et que j'offre des acomptes aux entreprises qui bénéficient de mon travail et de l'accès à ma planification et à mon expertise. J'ai maintenant six clients incroyables et je gagne une somme d'argent équivalente à mon package de rémunération totale de Google, ce qui prouve la thèse selon laquelle il est possible d'être un responsable professionnel en gagnant des taux compétitifs avec le marché adjacent pour les ingénieurs logiciels seniors.
Pour cette première cohorte de clients, je me suis concentré sur des entreprises qui comprennent déjà l'open source, qui travaillent dans des domaines adjacents au mien et que je pouvais atteindre via mon réseau. Mon premier client, qui a cru au projet avant même d'avoir un prospectus ou des niveaux de contrat, est Glasklar Teknik AB, une nouvelle société sœur de Mullvad VPN. Glasklar finance le développement de Sigsum, un journal de transparence public open source conçu pour produire des preuves vérifiables hors ligne, issu de la recherche sur la transparence du système par Mullvad. J'ai travaillé sur Sigsum et sur un framework et un écosystème d'outils de transparence open source compatibles et alignés, et la collaboration a été excellente. Dans l'ordre où ils ont rejoint, sont venus ensuite : Protocol Labs, qui maintient IPFS et Filecoin, et dont l'équipe de R&D produit d'excellentes recherches sur les zero knowledge proofs [ndlr. une preuve à divulgation nulle de connaissance (Zero-knowledge proof) est une brique de base utilisée en cryptologie dans le cadre de l'authentification et de l'identification] et la cryptographie ; Latacora, une équipe de sécurité retenue pour les startups, qui met entre autres des ressources comme moi à la disposition de leurs clients ; la Fondation Interchain, elle-même responsable du développement du SDK open-source Cosmos, un grand projet critique de cryptographie Go+ ; Smallstep, qui fournit des outils PKI et Zero Trust faciles à utiliser (en grande partie écrits en Go !) pour gérer les identités humaines et machine ; et Tailscale, un VPN maillé qui ressemble à de la magie, avec une passion pour JSON, SQLite et Go.
Comment travaille Filippo Valsorda
Ce que je fais est différent [ndlr. des différents modèles dans l'open source], et j'espère que ce sera plus durable, ainsi que reproductible pour les autres. Je suis un mainteneur open-source indépendant professionnel à plein temps. Je suis financé par des accords de mandat avec un certain nombre de clients et je me concentre principalement sur les travaux de maintenance.
Je ne vends pas d'heures d'assistance ni de livrables de projet difficiles. Au lieu de cela, mes clients obtiennent de la valeur de trois manières :
- ils atténuent le risque commercial d'un projet dont ils dépendent qui ne sont pas maintenus, avec ses implications en matière de sécurité et de vitesse de développement ;
- nous établissons un canal d'accès réciproque, garantissant de meilleurs résultats pour eux et pour le projet ; et
- aux niveaux contractuels les plus élevés, je suis disponible pour des conseils sur tous les sujets dans lesquels je suis expert, au-delà du strict cadre du projet open source.
La proposition d'atténuation des risques commerciaux est ce que chaque parrainage offre, donc ce n'est pas du tout innovant, mais c'est important pour les entreprises tournées vers l'avenir.
J'ai déjà écrit sur la valeur de l'accès réciproque, mais cela se résume à ceci : j'entre, je rencontre les ingénieurs et j'apprends quelles parties de mes projets ils utilisent et comment ; ensuite, je garde ces cas d'utilisation à l'esprit dans ma propre planification et je les contacte et les implique pour obtenir des commentaires lorsqu'il y a des changements pertinents sur la feuille de route. Cela améliore les résultats pour tout le monde : je veux que mes projets fonctionnent bien pour les utilisateurs (qu'ils me paient ou non) et personne ne veut découvrir que quelque chose ne va pas après la publication. Les entreprises pourraient obtenir cela « gratuitement » en surveillant elles-mêmes de près le suivi des problèmes et en étant actives dans les discussions de développement, mais dédier un ingénieur à cette tâche serait probablement plus cher que mon tarif !
Le service de conseiller expert au niveau supérieur du contrat est une évolution récente du modèle, basée sur des conversations avec Kaylyn Gibilterra, Kelsey Hightower et d'autres. Je suis à la disposition de ces clients pour les conseiller sur tous les sujets sur lesquels je suis devenu expert au fil de mes années de maintenance open-source : cryptographie, protocoles, leurs implémentations, Go, sécurité de la supply chain logicielle, open source, logs de transparence, PKIs… La principale préoccupation que j'avais en attachant cela à l'offre était sa reproductibilité : je sais que je peux moi-même gagner ma vie en tant que conseiller, mais est-ce quelque chose que les mainteneurs de l'open source peuvent faire de manière reproductible pour maintenir financièrement l'accent principal sur le travail du projet ? Mon hypothèse est que c'est un excellent match pour les mainteneurs en général : les mainteneurs sont des experts très lisibles et reconnaissables dans leur domaine, car ils maintiennent des logiciels open source. Si une entreprise utilise déjà mon logiciel de cryptographie, c'est probablement la raison pour laquelle elle pense que je suis un expert en cryptographie et qu'elle pourrait faire appel à un conseiller en cryptographie. Tout cela est bien corrélé et s'appliquerait à tout mainteneur d'un logiciel open source critique : les responsables de Kubernetes sont des experts en orchestration et en plate-forme, les responsables de ffmpeg sont des experts A/V, les responsables de serveur Web sont des experts HTTP. Cela aligne aussi bien les incitations sur celles de mes projets : je suis un expert parce que je suis un mainteneur, donc c'est à la fois dans l'intérêt de mes clients et dans mon propre intérêt que je continue à faire des travaux de maintenance.
J'ai utilisé un mot clef ci-dessus : critique. Le modèle que j'expérimente est destiné aux mainteneurs de projets open source critiques. Dans la métaphore de la bande dessinée XKCD, vous avez probablement tous vu qu'elle était destinée à fonctionner pour les projets en bas de la pile, peut-être pas pour ceux tout en haut. Cependant, ce qui est essentiel dépend du point de vue du client, et de nombreux projets sont essentiels pour au moins certaines entreprises. Voici comment je le formule : si l'effort requis pour remplacer ou forker une dépendance si elle n'était pas maintenue est mesuré en mois-ingénieur, il s'agit d'une dépendance critique et conserver ses mainteneurs est probablement une bonne décision commerciale.
Concrètement, je propose exclusivement des mandats permanents, sans facturation horaire ni fonctionnalités spécifiques comme livrables. Il existe trois niveaux de contrat : argent, or et platine. L'or comprend des réunions d'introduction et des réunions trimestrielles en face à face. Platinum inclut les services de conseil au-delà du strict périmètre de mes projets open-source. Tous les niveaux sont dans la fourchette à cinq chiffres (USD, annuel). C'est nettement moins cher qu'un employé, mais suffisamment significatif pour contribuer à un total compétitif par rapport au marché américain des ingénieurs logiciels seniors. Chaque engagement est très tactile et ressemble généralement à une relation avec un fournisseur, et non à un don de sponsors GitHub : j'envoie un prospectus, je travaille avec un contact sur une période de plusieurs semaines pour présenter aux décideurs et conclure l'affaire, nous signons un accord, et je fournis des factures mensuelles à payer par virement. Comme le dirait Patrick McKenzie, cela ressemble à des ventes d'entreprise. J'ai embauché une formidable assistante à temps partiel qui m'aide à rester au courant de tout.
Ce n'est que le début, et je suis ravi d'explorer comment le modèle se développe. Les incitations sont bien alignées sur le succès des projets open source, car plus les projets sont populaires, plus les entreprises seront intéressées par les acomptes, fournissant plus de ressources pour répondre à la charge de maintenance croissante. La charge de travail évolue également de manière sous-linéaire avec le nombre de clients : pour chaque relation client supplémentaire, je dois suivre un nouvel ensemble de domaines d'intérêt et de préoccupations pertinents, mais la gestion de plusieurs parties prenantes est déjà une compétence essentielle des mainteneurs open source, et la tâche principale reste le travail d'entretien quotidien qui est partagé entre tous les clients. Les clients Platinum ont également un coût marginal en termes de conseil dédié, mais encore une fois, l'essentiel du travail consiste à rester un expert, et cela ne nécessite pas d'effort supplémentaire pour chaque nouveau client. Bien sûr, une grande partie de cela est nouveau et il n'y a pas beaucoup de précédents à tirer, donc je suis conscient que je suis probablement erroné dans certaines de mes estimations et je procède avec prudence. Après avoir passé les quatre derniers mois à recruter des clients, je ralentis maintenant ces efforts pour en savoir plus sur la capacité, la bande passante et le coût marginal des clients supplémentaires. Je suis toujours en train de parler à quelques prospects avec qui j'aimerais travailler et je leur réserve de la place dans la planification des capacités.
À long terme, je souhaite que ce modèle grandisse au-delà de moi et devienne un parcours professionnel reconnu. Cette expérience est à la fois plus facile et plus difficile pour moi qu'elle ne le sera pour mes successeurs : plus facile, car j'ai un réseau personnel étendu et les moyens financiers pour prendre des risques en toute sécurité ; plus difficile parce que c'est un territoire inexploré pour moi et les clients et parce qu'il y a un manque d'outils juridiques, administratifs et marketing. J'espère qu'au fur et à mesure que les choses avanceront, les barrières tomberont, rendant le modèle accessible à de plus en plus de gens.
Le « oui, mais » des internautes
Quelques réactions suite à sa publication.
Envoyé par Internaute 1
Envoyé par Internaute 2
Envoyé par Internaute 3
Et vous ?
Avez-vous déjà fait une contribution open source ?
Selon vous, de quoi ont besoin les mainteneurs open source et comment les soutenir ?
Que pensez-vous du modèle de travail de Filippo Valsorda ?
Gagnerait-il a être popularisé ? Dans quelle mesure ?
Recommanderiez-vous à un professionnel de l'informatique de sauter le pas pour se lancer dans l'open source ? À temps partiel ou à temps plein ? S'il fallait se lancer à temps plein, à quel moment recommanderiez-vous cette alternative (carnet d'adresse bien rempli, travail reconnu par les pairs / les clients, outils proposés en open source utilisés par d'autres entreprises qui ont besoin d'assistance, etc.) ?
Une préférence pour des plates-formes particulières pour contribuer ?