Fonctionnalités de la plateforme Web de financement participatif avec priorisation ouverte

Publié: 2022-03-10
Résumé rapide ↬ Rachel Andrew se penche sur un nouvel effort de financement participatif des coûts de mise en œuvre des fonctionnalités du navigateur.

Dans mon dernier article, j'ai décrit quelques fonctionnalités CSS intéressantes, dont certaines ne sont disponibles que dans un seul navigateur. La plupart des développeurs Web ont une fonctionnalité qu'ils souhaiteraient voir plus largement disponible, ou qui n'était pas disponible du tout. J'encourage les développeurs à utiliser, parler et signaler les bogues d'implémentation avec les navigateurs pour essayer d'implémenter des fonctionnalités, cependant, que se passerait-il s'il y avait un moyen plus direct de le faire ? Et si les développeurs web pouvaient se regrouper et financer le développement de ces fonctionnalités ?

C'est le modèle que lance le cabinet de conseil open source Igalia avec son expérience Open Prioritization. L'idée de base est un modèle de financement participatif pour les fonctionnalités de la plateforme Web. Si nous voulons qu'une fonctionnalité soit implémentée, nous pouvons mettre une petite somme d'argent pour aider à financer ce travail. Si l'objectif est atteint, la fonctionnalité peut être implémentée. Cet article est basé sur une interview de Brian Kardell, Developer Advocate chez Igalia.

Qu'est-ce que la priorisation ouverte ?

L'idée de la hiérarchisation ouverte est que la communauté peut choisir et aider à financer le développement de fonctionnalités. Igalia a sélectionné une liste de fonctionnalités cibles, qui sont toutes implémentées ou en cours d'implémentation dans au moins un moteur. Par conséquent, le financement d'une fonctionnalité l'aidera à devenir disponible sur tous les navigateurs et plus utilisable pour nous en tant que développeurs. La liste initiale est :

  • Couleurs CSS lab( ) dans Firefox
  • :focus-visible dans WebKit/Safari
  • HTML inert dans WebKit/Safari
  • Arguments de liste de sélecteur pour :not( ) dans Chrome
  • Prise en charge du confinement CSS dans WebKit/Safari
  • Prise en charge de CSS d (chemin SVG) dans Firefox

Le site Web donne plus d'explications sur chaque fonctionnalité et tous les détails sur le fonctionnement du financement. Igalia travaille avec Open Collective pour gérer les promesses.

Qui sont Igalia ?

Vous n'avez peut-être jamais entendu parler d'Igalia, mais vous aurez bénéficié de leur travail. Igalia travaille sur les moteurs de navigation et possède une connaissance spécialisée de tous les moteurs. Ils avaient le deuxième plus grand nombre d'engagements dans la source Chrome et WebKit en 2019. Si vous aimez CSS Grid Layout, vous devez remercier Igalia pour l'implémentation dans Chrome et WebKit. Le travail d'ajout de la fonctionnalité à ces navigateurs a été effectué par une équipe d'Igalia, plutôt que par des ingénieurs travaillant en interne au sein de la société de navigation.

C'est ce qui rend cette idée si convaincante. Il ne s'agit pas de recueillir de l'argent et d'essayer ensuite de persuader quelqu'un de faire le travail. Igalia a fait ses preuves en matière de travail. Les développeurs doivent être payés, donc en externalisant l'argent, nous sommes en mesure de choisir ce sur quoi nous travaillons ensuite. Igalia a également déjà les relations avec les moteurs pour faire en sorte que toute fonctionnalité suggérée soit un succès.

Les navigateurs accepteront-ils ces fonctionnalités si nous les finançons ?

Le fait qu'Igalia ait déjà des relations au sein des équipes de moteurs de navigateurs et ait déjà discuté avec elles des fonctionnalités sélectionnées signifie que si elles sont financées, nous devrions voir les fonctionnalités dans les navigateurs. Et, il existe déjà des précédents pour des fonctionnalités majeures financées par des tiers et développées par Igalia. L'implémentation de Grid Layout dans Chrome et WebKit a été financée par Bloomberg Tech. Ils étaient frustrés par le manque d'implémentation de Grid Layout, et c'est Bloomberg Tech qui a fourni l'argent pour développer cette fonctionnalité sur plusieurs années.

Chrome et WebKit étaient heureux d'accepter l'implémentation ; il n'y avait pas de controverse sur l'ajout de la fonctionnalité. C'était plutôt une question de priorisation. Les navigateurs avaient d'autres travaux jugés prioritaires, et l'engagement financier et le temps des développeurs étaient donc dirigés ailleurs. Les fonctionnalités qui ont été sélectionnées pour cette première tentative de financement participatif sont également non controversées en termes de mise en œuvre. Si le travail peut être fait, les moteurs l'accepteront probablement. L'interopérabilité - les choses fonctionnant de la même manière sur tous les navigateurs - est quelque chose dont tous les fournisseurs de navigateurs se soucient. Il n'y a aucun avantage pour un moteur à être à la traîne. Nous arrivons essentiellement à contourner le processus de hiérarchisation interne de la fonctionnalité.

Pourquoi les navigateurs ne font-ils pas ce genre de choses ?

J'ai demandé à Brian pourquoi les sociétés de navigation ne financent pas ces choses elles-mêmes. Il expliqua,

« Les gens pourraient penser, par exemple, 'Apple a tout l'argent du monde', mais cela ignore des réalités complexes. L'affaire d'Apple n'est pas son navigateur Web. En fait, le navigateur Web lui-même n'est une entreprise lucrative pour personne. Les navigateurs et les normes sont volontaires, ils sont un bien commun. En termes de coût, cependant, les navigateurs sont considérables. Ils sont beaucoup plus complexes que la plupart d'entre nous ne le pensent. Seules 3 organisations aujourd'hui ont investi les nombreuses années et les millions de dollars annuellement qu'il faut pour faire évoluer et maintenir un projet de moteur de rendu. Chacun d'entre eux fait déjà un investissement massif et sans précédent dans les biens communs.

Brian a poursuivi en soulignant l'investissement considérable de Firefox dans Servo et de Google dans LayoutNG, des projets qui amélioreront l'expérience du navigateur et permettront également d'implémenter de nouvelles fonctionnalités de la plate-forme. Il y a beaucoup de choses que n'importe quel navigateur pourrait implémenter dans son moteur, mais la façon dont ces fonctionnalités sont hiérarchisées en interne peut ne pas toujours correspondre à nos besoins en tant que développeurs.

Il m'est venu à l'esprit qu'en finançant la mise en œuvre du navigateur, nous faisons la même chose que nous faisons pour les autres produits que nous utilisons. Beaucoup d'entre nous auront développé un plugin pour une fonctionnalité nécessaire dans un CMS ou payé un tiers pour le fournir. Les développeurs CMS passent leur temps à travailler sur le produit principal, s'assurant qu'il est robuste, sécurisé et à jour. Sans le produit de base, l'ajout de plugins serait impossible. Cependant, des tiers peuvent apporter des éléments à cette plate-forme, et dans un sens, c'est ce que nous pouvons faire via une hiérarchisation ouverte. Montrez qu'une fonctionnalité vaut suffisamment la peine pour que nous promettions de l'argent pour la faire passer.

Comment cela s'adapte-t-il aux projets tels que le Web que nous voulons ?

SmashingConf a soutenu le projet Web We Want, où les développeurs ont proposé des idées de plate-forme Web à discuter et à voter sur scène lors de conférences. J'ai participé à plusieurs de ces événements en tant qu'hôte et membre du panel. Je me demandais comment la hiérarchisation ouverte s'accordait avec ces efforts existants. Brian a expliqué que ce sont des choses très différentes en disant,

"... si vous me demandiez ce qui pourrait améliorer ma maison, je pourrais citer un million de choses. Certains d'entre eux ne sont même pas pratiques à distance, ils seraient simplement très bien. Mais si vous avez dit de faire une liste de choses que vous pourriez faire avec un budget pour ce que chacune coûte - ma liste sera considérablement plus pratique et liée aux réalités que je connais.

À la fin du mois, si vous dites "Voilà votre liste, et voici 100 $, qu'allez-vous en faire ?" c'est une question très directe qui m'aide à accomplir quelque chose de pratique. Je peindrai peut-être. Je vais peut-être acheter un nouvel éclairage. Ou, peut-être que je vais l'économiser pendant quelques mois pour quelque chose de plus coûteux.

Le projet Web We Want pose une question ouverte, il demande ce que nous voulons de la plateforme. Bon nombre des besoins ne sont pas des choses qui existent déjà en tant que spécifications. Commencer réellement à mettre en œuvre l'une de ces choses signifierait commencer dès le début, avec une idée qui doit être reprise dès la phase de spécification. Il y a peu de certitudes et elles seraient très difficiles à chiffrer.

Les fonctionnalités sélectionnées pour cette première expérimentation de hiérarchisation ouverte ont une portée volontairement limitée. Ils ont déjà une certaine mise en œuvre; ils ont une spécification, et Igalia a déjà parlé aux responsables du navigateur pour vérifier que les fonctionnalités sont prêtes à fonctionner mais ne figurent pas dans les priorités immédiates.

Soutenir ce projet signifie soutenir une partie concrète du développement, qui peut se produire dans un délai raisonnablement court. Publier une idée sur Web We Want, rédiger une idée sur votre blog ou ajouter un problème décrivant une toute nouvelle fonctionnalité sur le référentiel CSSWG GitHub peut potentiellement faire entrer une nouvelle idée dans la discussion. Cependant, ces idées peuvent avoir un long chemin lent à devenir réalité. Et, compte tenu de la nature des discussions sur les normes, cela ne se déroulera probablement pas exactement comme vous l'aviez imaginé. Il est précieux de proposer ces choses, mais très difficile d'estimer le temps et les coûts d'une mise en œuvre finale.

Le même problème est vrai pour la fonctionnalité très recherchée des requêtes de conteneur, Igalia est allé jusqu'à mentionner les requêtes de conteneur dans leur FAQ. Les requêtes de conteneur sont quelque chose que de nombreuses personnes impliquées dans le processus de normalisation et chez les fournisseurs de navigateurs étudient, cependant, ces discussions en sont à un stade précoce. Ce n'est pas quelque chose sur lequel il serait possible d'attribuer une valeur monétaire à ce stade.

Être impliqué!

Il y a plus d'informations sur le site Open Prioritization, ainsi qu'une FAQ détaillée répondant à d'autres questions que vous pourriez avoir. Je suis ravi de cela parce que je suis toujours désireux d'aider à trouver des moyens pour les concepteurs et les développeurs de s'impliquer dans la plate-forme Web. C'est notre plateforme. Nous pouvons attendre que les choses soient autorisées à être utilisées par les fournisseurs de navigateurs, ou nous pouvons contribuer activement via des idées, des rapports de bogues et, avec Open Prioritization, un peu d'argent, pour aider à l'améliorer.

Plus après saut! Continuez à lire ci-dessous ↓