Preact: Détruisez la perception selon laquelle l'open source doit être libre

J'ai interviewé Jason Miller, l'auteur de Preact, à propos de l'argent en source ouverte, de l'épuisement des responsables et de la création d'une communauté démocratique.

Q. L’open source ne devrait-il pas être gratuit (comme dans la bière)?

R. Nous sommes tous vulnérables au piège de penser que l’open source est «libre». Cela n’a jamais été vrai. Il y a toujours un coût, mais en tant que responsable, vous ne l’obtenez vraiment que lorsque vous êtes assez loin.

Vous pensez: “Peu importe, je vais payer moi-même pour les autocollants.” Mais au fur et à mesure que le projet se développe, de petites choses s’additionnent.

J’ai commencé à reconsidérer ma façon de penser à l’open source et à me demander: est-il acceptable d’opérer dans l’espace open source sans exiger que tout le travail soit fait bénévolement?

De nombreuses entreprises proposant des produits open source facturent une version payante ou une assistance - mais les projets qui ne sont pas soutenus par des entreprises se font dire: «Non, non, vous n'êtes pas une entreprise et vous ne pouvez pas facturer. pour rien."

Jusqu'à récemment, vous deviez créer une LLC ou tout payer vous-même. Nous avons une autre option maintenant.

Notre Open Collective fonctionne comme une entreprise semi-autonome, mais sans la bureaucratie, ce qui est important car de nombreux projets open source ne survivront pas à cette surcharge. Je veux que ce modèle grandisse. Je veux briser la perception, l'hypothèse persistante, selon laquelle l'open source doit être libre.

Q. Qui devrait financer Open Source?

R. Si vous bâtissez votre entreprise à partir de quelque chose, vous devez vous assurer qu’elle reste en vie et en croissance, en particulier si vous l’utilisez pour gagner de l’argent. Preact se trouve dans la même situation que beaucoup de projets open source: il existe des entreprises dont les produits en dépendent, ce qui signifie qu’elles ont tout intérêt à l’aider à survivre et à se développer.

Un de nos sponsors fait référence à leur contribution financière en tant qu '«assurance cadre».

Un exemple parfait est le Moka. Tout le monde utilise le Moka! C’est le cadre de test de facto pour JavaScript. Mais ils ne disposent pas de suffisamment de ressources de maintenance. Personne ne les en blâme - Mocha a une incroyable disparité entre les utilisateurs et les contributeurs. Maintenant, ils reçoivent un financement, ce qui peut aider, et leurs sponsors seront en mesure de montrer comment leur contribution joue un rôle.

Une assistance tangible pour l’open source est un message précieux pour toute entreprise cherchant à attirer des développeurs talentueux.

Donner de l'argent à des projets est la même logique que de donner du temps aux développeurs. Il s’agit d’être un bon gestionnaire dans la communauté open source, de favoriser la collaboration et de prolonger la longévité des projets dont vous dépendez. C’est le moyen le plus meurtrier pour les entreprises de dire: «Nous contribuons et vous pouvez constater que ce projet a des responsables pour nous.»

Open Collective apporte un soutien financier au grand jour.

C’est une version plus transparente de quelque chose qui se passe déjà à une plus petite échelle, où les mainteneurs open source sont sous contrat pour faire quelque chose pour les entreprises. À l’heure actuelle, c’est opaque, cela se passe à huis clos, et cela s’adresse à un individu plutôt qu’à l’ensemble de la communauté. Si un responsable est le responsable numéro deux et un expert, il doit disposer des mêmes options que l’initiateur du projet.

Q. Comment Preact est-il passé de vous dans une communauté?

A. Preact a une sorte d'histoire de genèse étrange. Je n'avais pas vraiment l'intention de le construire. Je faisais juste des expériences pour satisfaire ma propre curiosité, dans un terrier de lapin, essayant de comprendre le fonctionnement de React et Mithril. Je jouais avec des motifs et réduisais des bibliothèques.

Cela a fini par bien fonctionner, alors je l’ai façonné de la manière dont l’API devrait ressembler. En fait, j’étais réticent à le publier au début. En tant qu'auteur de la bibliothèque de feuilletons, j'ai eu ce picotement sur la nuque, comme…

«Oh mon dieu, que fais-tu? Vous créez une autre bibliothèque que vous devrez entretenir! "

Ce devait être un projet mené par la communauté. Mais à bien des égards, le code est la partie la moins importante de cela, ce qui était une réalisation difficile. Il y a quatre ans, j'aurais pensé que cela sonnait complètement stupide. J'étais l'architecte par excellence assis dans une pièce du fond.

J'essaie d'améliorer les choses qui ne codent pas. Je me concentre beaucoup plus sur la façon d’enseigner aux gens et de favoriser la compréhension. J'ai créé Preact pour être petit et rester petit, parce que je voulais que ce soit accessible.

Quand il a été lancé pour la première fois, je me suis tout de suite moqué de lui parce que c’était juste un gros fichier, ce qui est légitime, alors je me suis séparé pour faire une autre sortie. Mais ce que nous avons perdu, c’est de pouvoir extraire ce fichier dans un éditeur de texte et de comprendre son fonctionnement en une lecture du soir (c’est encore 600 à 800 lignes de code si vous supprimez les commentaires).

Cette simplicité a attiré les premières contributions extérieures. Plus il y a de gens qui peuvent comprendre le tout, mieux c'est. Même maintenant, je souhaite déplacer certains modules du noyau vers leurs propres projets afin de les simplifier davantage.

Preact est à peu près aussi bas que possible pour démocratiser un cadre: c’est une bibliothèque qui a créé une communauté démocratique autour de lui.

L’avantage génial de cette approche est qu’une personne qui n’est pas moi peut créer facilement un add-on ou un plug-in sans autorisation ni demande de tirage. Ils peuvent créer tout ce qu'ils veulent et le publier selon leurs propres conditions, sans avoir à le fusionner avec le noyau.

Rencontre de préparation à Vienne

Q. Pourquoi avez-vous décidé de demander un financement pour le projet?

R. Je n’ai pas beaucoup de temps libre. J'ai mon travail de jour (ce qui est loin d'être juste pendant la journée), et j'ai aussi mon travail open source en plus de cela. J'ai eu du mal à trouver quelques heures pour quoi que ce soit d'autre, parce que je pensais toujours pouvoir utiliser ce temps pour écrire des points de repère ou autre.

Je passais beaucoup de temps sur des sujets que les gens apprécieraient mais que je ne verrais jamais vraiment, comme les optimisations et la documentation. Ce travail invisible demande beaucoup d’efforts, mais vous êtes en quelque sorte le seul à le conduire - et ce sont aussi les tâches mêmes sur lesquelles il est difficile de faire appel à des contributions externes.

J'ai connu mon premier burnout de mainteneur open source l'année dernière.

Je pensais que si je pouvais collecter un peu de financement, je pourrais soit passer mes propres heures (faire le compromis entre prendre un travail de consultant et passer du temps sur Preact), ou bien attirer une contribution externe supplémentaire.

Au départ, je cherchais à configurer une page Patreon comme Evan You pour Vue.js. Il était dans une position similaire, en tant que type essayant de créer une communauté et réalisant qu’il s’agissait d’un travail à temps plein. Les antécédents de Patreon en tant que plateforme de collecte de fonds pour artistes se traduisent dans le cas d’Evan, car les gens financent Evan You (son travail en tant qu’individu).

Evan est un dirigeant tellement actif de cette communauté et c’est formidable que cette approche fonctionne pour lui. Mais j'aime mon travail de jour. Je ne veux pas arrêter et devenir «Preact Inc». Et si, par la suite, je veux me concentrer sur autre chose et que d’autres personnes sont devenues les principaux responsables, je souhaite que les ressources de la communauté puissent effectuer une transition en douceur.

Il s’agit de collecter des fonds collectivement et non à titre individuel. Ce n’est pas centré autour de moi.

Si vous collectez des fonds pour une communauté, cela signifie clairement que c’est pour l’amélioration du projet dans son ensemble. En plaçant le projet au centre de la scène, par opposition à une personne, il n’est pas nécessaire de l'expliquer. Dans notre cas, je pense que c’est la raison pour laquelle les gens étaient si disposés à contribuer.

Q. Qu'est-ce qui vous a surpris quand vous avez commencé le crowdfunding?

R. En fait, je suis tombé sur l'annonce du lancement du financement avec à peine une prévoyance: aucun article de blog, aucun support, aucun lien depuis le site Web, et aucune explication sur la raison pour laquelle l'argent aiderait Preact en tant que projet. Si je devais le refaire, je préparerais toutes ces choses pour gagner plus d’élan dès le début.

Notre marketing consistait essentiellement en quelques tweets, alors j’ai été très surpris de constater que tant de personnes étaient immédiatement disposées à contribuer financièrement. Il y a beaucoup de gens qui ne contribuent pas au code, mais qui utilisent Preact pour le tester. Auparavant, s’ils n’avaient rencontré aucun problème, je ne savais pas qu’ils existaient.

Je ne savais pas à quel point la communauté de Preact était importante.

Réfléchissez aux métriques qu'un projet open source a généralement à votre disposition: Google Analytics inclut de nombreuses lectures de documentation et des visites guidées; Les étoiles Github n'ont presque pas de sens; Le nombre de téléchargements par NPM est proportionnel au nombre de versions de logiciels. Il sera donc étrangement faible si votre projet est relativement stable.

Différentes personnes s’engagent depuis que nous proposons un moyen de contribuer financièrement. Ils s’engagent et donnent 5 $ par mois parce qu’ils veulent soutenir la construction de la communauté et la sensibilisation, sans avoir à évangéliser individuellement.

Le nombre de personnes qui s’engagent à donner est une mesure beaucoup plus fiable du nombre d’utilisateurs et d’utilisateurs probables.

Mon conseil serait de mettre en place des canaux pour tous les types de support nécessaires à un projet open source et d'offrir aux utilisateurs des options claires: écrire des fonctionnalités, soulever des problèmes, faire une demande de tirage, faire des revues de code, donner de l'argent.

N’essayez pas de cacher le fait que le projet a besoin de financement, et ne négligez pas le fait qu’il s’agit spécifiquement d’argent, sinon cela risque d’être fallacieux. Si l’argent peut permettre aux utilisateurs de réaliser un projet, donnez-leur un moyen de le concrétiser.

Q. Quel a été l'impact? Quels sont les bénéfices?

R. Dans les autres projets auxquels j’ai participé, il existe normalement un groupe de super-utilisateurs ou un comité de pilotage technique, qui place les utilisateurs un niveau. Mais c'est différent.

La contribution financière donne aux gens une propriété partagée, et pour un projet de notre taille, nous l’avons à un degré inhabituel. Les gens peuvent entrer, apporter des changements significatifs et avoir le sentiment d’avoir leur mot à dire.

C’est comme si tous les utilisateurs de Preact siégeaient au conseil d’administration.

Par exemple, Paul Lewis a ouvert une demande d'extraction pour implémenter la prise en charge du rendu progressif. Vous pourrez ainsi envoyer une quantité énorme de données à Preact et votre processeur effectuera une analyse causale et restituera au fur et à mesure de la disponibilité des cycles. Il résout un cas d'utilisation complexe d'une manière très élégante.

Cette demande de tirage est un changement de direction qui influencera le parcours de Preact au cours de la prochaine année. Elle provient d’un utilisateur de la bibliothèque. Une personne peut avoir autant ou peu d'influence sur la direction qu'elle veut, sans barrière.

Le crowdfunding communautaire soutient la démocratisation avec quelque chose de réel.

C’est une chose de dire à tous qu’ils peuvent avoir un impact sur un projet, mais c’en est une autre de leur offrir le même accès et les mêmes résultats pour leurs contributions que vous avez vous-même. Vous pouvez passer votre temps sur le projet, ce que tout le monde peut voir de manière transparente, et les autres personnes ont la même capacité de faire la même chose.

Robert Knight a écrit l'intégralité de l'intégration des outils de développement pour Preact, ce qui lui a permis de fonctionner immédiatement avec les outils de développement de React. C'est un génie. Quand il a eu fini, je lui ai demandé: «Hé, pourquoi ne perds-tu pas un peu de temps?» Il a fini par utiliser les fonds pour acheter un téléphone Moto G à des fins de test (ce qui imite une expérience utilisateur lente courante). C'était une façon de dire merci d'avoir fait avancer le projet.

Le fait de dépenser des fonds de manière transparente nous permet de rester concentrés sur ce qui est le plus bénéfique pour le projet.

Si les développeurs font des dons, je veux leur rendre le plus directement possible en travaillant sur l'expérience des développeurs. Économiser 30 secondes sur chaque build lorsque je lance 300 builds par jour? Je paierais 5 $ par mois pour ça!

J'aimerais que notre niveau de financement continue d'augmenter. Si nous avions deux fois le financement, nous pourrions nous permettre à quelqu'un un jour par semaine. L'attribution d'un nombre d'heures régulières est un seuil important. Nous aimerions proposer quelque chose comme Webpack avec Office Hours (où les sponsors de certains niveaux ont accès à une assistance et à une formation VIP). Cela offrirait de réels avantages aux personnes.

Q. Comment le financement open source pourrait-il évoluer à l'avenir?

R. Les développeurs acquièrent des connaissances et une rapidité d’expérience grâce à l’open source, mais le véritable bénéficiaire est l’entreprise qui n’a pas à payer ses développeurs pour construire des choses. Les entreprises sont construites sur des bibliothèques sur lesquelles des milliers d'heures de travail ont été consacrées, mais qui ne se seraient jamais développées de manière naturelle au sein d'une entreprise.

L'employeur et le projet ont vraiment la relation symbiotique. J'aimerais que plus d'entreprises contribuent financièrement afin que les développeurs ne se sentent pas coupables. La perception par défaut devrait être: bien sûr, les employeurs contribuent en argent.

J'espère que nous regarderons en arrière et dirons: «Waouh, c'est tellement bizarre que vous n'ayez pas l'habitude de supporter financièrement un projet open source."

Ma vision en est une où les développeurs continuent à prendre des positions techniques informées et à prendre en charge les meilleurs outils en les utilisant. Parallèlement, leur employeur identifie activement les projets dont dépend leur entreprise et s'assure de les soutenir financièrement.

Ce n’est pas si loin de nous. Nous avons le modèle. Certaines entreprises le font déjà en contribuant au Open Source Collective et directement aux projets qu'elles utilisent.

Nous devons démocratiser tous les aspects de l'open source.

Je suis peut-être doué pour écrire du code et terrible pour écrire de la documentation (totalement hypothétique!). Mais cela ne veut pas dire qu’il n’ya pas un besoin énorme de docs, et si faire un don permet à un grand écrivain de s’engager, c’est fondamental. La collaboration open source peut devenir un marché pour tous les types de contribution: temps, code, expertise… et argent.

Voulez-vous être un partisan? Faites un don à Preact maintenant.