Proposer de nouvelles règles pour la caisse de développeurs

La 🪙 Caisse de dons pour les contributeurs techniques à l'écosystème Ğ1 fonctionne actuellement sur un rythme régulier, ce qui convient à certains contributeurs, mais pas tous.

Il faudrait proposer de nouvelles règles pour répondre aux besoins listés ci-dessous :

Sprints

Certains développeurs comme @ManUtopiK fonctionnent par “sprint” de code, c’est-à-dire qu’ils abattent un travail important en un temps restreint (~ une semaine). Le paiement récurent ne leur convient pas, car :

  • ils ne souhaitent pas être rémunérés en Ğ1 pendant les périodes où ils ne travaillent pas
  • il souhaiteraient recevoir plus de Ǧ1 à la mesure de leur travail pour récompenser un investissement conséquent

todo déterminer comment fonctionne la rétribution au “sprint”.

Récompense à la tâche

Certains développeurs comme @flodef sont attachés à l’aspect ludique et motivant du “bug bounty” ou “feature bounty”. Il est plus facile pour eux de s’attaquer un à un problème bien défini en amont avec récompense en Ğ1 à la clé.

todo déterminer comment fonctionne la rétribution au “bounty”


PS : également pour vjrj

7 Likes

Je vois qu’il y a déjà eu une discussion du staff à ce sujet.

J’y ai un peu réfléchi fraichement. On a le choix d’énumérer toutes les tâches de tous les projets de l’écosystème technique Duniter/Ğ1 et on priorise et estime tous les bounty. C’est un travail fastidieux et c’est pas spécialement l’esprit bounty. Je pense qu’il est mieux que ça soit un projet porté par quelqu’un ou quelqu’un qui souhaite avoir telle tâche d’accomplis en attente que quelqu’un se propose, car très demandé.

Des utilisateurs peuvent proposer que tel chose soit mis en place. Aux contributeurs techniques qui veulent s’en occuper de spécifier les tâches à accomplir et le montant du bounty pour lequel ils seraient prêts à accepter pour accomplir le bounty. Redite autrement : les développeurs proposent ce qu’ils souhaitent accomplir en priorité avec des spécifications et des critères d’acceptation et le montant qu’ils veulent en échange.

À titre d’exemple :

Les contributeurs actuellement rémunérés par la caisse Duniter, nous sommes 23 actuellement, seraient en droit de voter pour ou contre donner cette promesse de bounty dans le cas où la part du contrat est rempli. On pourrait partir sur une somme de cinq votes positifs. S’il y a sept positifs et deux négatifs, ça donne cinq positifs, donc ça passe ? En plus de voter oui ou non pour donner le montant demandé contre la tâche accomplie, un montant différent pourrait être proposé (suppose un vote positif). Une moyenne pourrait être calculée à partir de ces montants suggérés.

Vote: Yes/No
Amount: X carottes (monnaie pas libre btw ;))

Après, il faudrait qu’il n’y ait pas trop de bounty en même temps, car faut faire beaucoup d’administratif et ça nous détourne du développement. Pour cela, il nous faut prendre connaissance du bounty, valider, voter pour les bounty, vérifier que la tâche a été accomplie (ça pourrait être vérifié par un pair qui a l’expérience pour juger, un reviewer en somme) puis faire les virements. Tout ça fait du boulot supplémentaire. Mais, c’est motivant avec une carotte, et ça permet de prioriser, de mettre en avant les grosses tâches aux yeux de la communauté. De trouver quelqu’un, une compétence, le temps de quelqu’un prêt à s’en occuper.

Après, il est toujours possible de faire des contributions non-rémunérées et de ne pas demander voire de refuser une rétribution en échange d’un bounty accomplis. Ça regarde l’auteur. Il ne faudrait pas que toutes les contributions soient des bounty, sinon trop d’administratif. Il faut que la tâche soit suffisamment significative pour être un bounty. La caisse Duniter sert déjà à faire des rémunérations régulières pour combler les trous de toutes les petites tâches qui sont faites.

Une clé publique pourrait être mise en place par le projet Duniter par bounty ou par le porteur du projet. Elle accueillerait/accepterait des virements sous la forme d’un financement participatif. Le projet Duniter décide le montant maximum qu’il souhaite mettre dessus via la moyenne des votes de montants, comme expliqué ci-dessus. Si ça ne suffi pas à atteindre le montant cible, avec des virements venus d’ailleurs et une fois le montant cible atteins, le travail peut être commencé ou a déjà commencé. Une fois finalisée, le virement est fait sur les adresses des auteurs en proportions souhaitées. Cette solution demande encore beaucoup d’administratif. Sinon, les bounty pourraient être financés sur la caisse Duniter avec une référence (commentaire) BOUNTY_#5, dans ce cas, il faut des outils pour filtrer les références.

Ça pourrait être une clé publique gérée par le projet Duniter dans le cas où il n’y a pas de porteur du projet. Ça pourrait être une clé publique du porteur du projet, il cumulerait les contributions au financement participatif du bounty même s’il ne le finit pas ou en partie. Il peut reverser au projet Duniter si finalement il ne souhaite pas finir le bounty. Je ne sais pas comment gérer la confiance à ce niveau, vis-à-vis du fait que la personne peut partir avec les sous récoltés sans rien faire en échange. Je propose que ça se fasse au cas par cas selon que le porteur du projet est connu, faisant déjà partie des contributeurs techniques actuels ou pas, s’il est membre de la toile Ğ1.

Un template/modèle de bounty :

Duniter Bounty number: $#
Title/Goal:
Ticket link: (With what has to be done to reach the goal)
Assignees:
Validator:
Amount requested:
Bounty Pubkey/Address:

Pour Día de Muertos :mexico: :

Duniter Bounty number: 0
Title/Goal: Make DeathReaper run on Spanish Forum
Ticket link: https://git.duniter.org/clients/python/silkaj/-/issues/446
Assignees: Moul
Validator: ?
Amount requested: 250 DU Ğ1
Bounty Pubkey/Address: FuorSmMNh27Duufcx8anHdHaU3wAw2YmjCRh1b9UWEdP:AwG

Si l’adresse est gérée par le projet Duniter, il faudra que la personne assignée fournisse son adresse Ğ1, pour le virement final.

Est-ce que quelqu’un connaît le fonctionnement de bug bounty ? Et pourrait l’expliquer ici. Je ne sais pas quel est le site originel, il y en a plusieurs actuellement on dirait.

Voilà plein d’idées pas très bien organisées. À nous de spécifier ce qu’on souhaite mettre en place. À vos :keyboard:

2 Likes

C’est une bonne idée. J’ai quelques “code bounty” ou “sprint” à proposer. En tout cas récupérer la liste des idées auprès d’un large communauté me parait important.
Une fois cette liste établie, que diriez-vous d’expérimenter le “vote quadratique” pour classer leur priorité?

1 Like

Je vois que mon post précédent adresse principalement la récompense à la tâche, bounty.
Concernant les sprints déjà accomplis, ça pourrait être de même, sauf que la différence c’est que le travail a déjà été accompli. Dans ce cas, la même procédure peut être mise en place. Demande de rémunération pour X. Par exemple, j’ai développé toutes ces fonctionnalités sur l’indexer, j’ai mis à niveau tous les serveurs de l’infra.

Le problème que je vois avec la rémunération à la tâche future ou passée (sprint), c’est qu’il faut vraiment mettre beaucoup d’efforts pour maintenir ce système en fonctionnement. Des contributeurs qui ne sont pas dans cette liste pourraient animer sans savoir que quoi il en sort, pour aider sur ce point. Les contributeurs dans la liste “Caisse Duniter” n’auraient qu’à prendre connaissance, voter Oui (Montant)/ Non et faire les virements.

On peut commencer petit à petit et voir ce que ça donne avec une expérience pilote puis ajuster. Cette procédure de demande doit peut-être rester exceptionnelle pour des tâches conséquentes. Style développer DeathReaper, le financement participatif que j’ai mené.

La rétribution actuelle, qui est constamment là et réévaluée tous les trois mois a l’avantage de demander peu d’efforts de gestion. Sinon en utilisant le système actuel, demander 100 DU Ğ1 autant de fois que souhaité pour “rembourser”/compenser le sprint effectué, estimé à 500 DU par le développeur, à titre d’exemple. Ça ne nécessite pas l’approbation dans ce cas, mais la suspicion peut être levée de pourquoi il prend autant. Le développeur peut expliquer ce qu’il fait pour clarifier.

Cette discussion ressemble à la proposition de ce dernier §.

Proposition de bounty à gestion simplifiée :

Tout le monde peut proposer un bounty sans restriction de montant, de manière informelle.

Tout le monde peut s’ajouter dans le message wiki trimestriel de rémunération des devs pour réclamer un paiement de bounty, en indiquant destinataire, montant et objet.

Tout le monde peut alors demander des précisions ou justifications sur ce bounty (preuve de réalisation, justification du montant, pertinence pour le projet…).

En cas de dissensus, on (qui ? tout le monde, bénéficiaires, admins du forum…) pourra voter oui/non.

Le bounty est versé d’un coup au début du trimestre.

Il peut être cumulé avec la rémunération mensuelle et avec d’autres bounties.

1 Like

Vous connaissez pas un logiciel libre pour collecter, présenter les idées et voter pour les projets? Sinon, on peut aussi les mettre là

Cela fera parler de la June dans des communautés nouvelles.

C’est sur ce sujet qu’on a introduit le sujet.

En gros, c’est une autre manière d’utiliser des Ğ1. Plutôt qu’une rétribution régulière, on récompense la réalisation d’une tâche limitée dans le temps.

1 Like