J'ai partagé il y a deux jours que AnkiDroid, dont je suis mainteneur (je vous ai déjà parlé de Anki?) a été accepté par Google Summer of Code.
Petit résumé.
Oui, après deux jours.
Déjà trop de chose pour gérer en parallèle d'un boulot. Heureusement que je suis isolé de tous.

Pour le contexte, AnkiDroid est petit. 2 millions d'utilisateurs, à l'échelle de Google Play, c'est rien. Quoi que sans Google Play, github, travis, F-Droid, Huawei store, on aurait déjà pas mal de frais rien qu'en téléchargement, mise à jour et tests automatisés.

Mais surtout, on est petit car on est trois mainteneurs actifs. Pleins d'anciens mainteneurs ont encore les clefs en cas de souci. Avoir pu changer deux fois d'équipe dirigeante, continuer d'exister et grossir est un exploit pas si courant. Et j'y suis pour rien, je suis nouveau.

Je crois que 20 dev' ont contribué au code en 2020. Certains ont fait pas mal de travail, mais ne sont pas forcément autant impliqué. C'est totalement raisonnable de contribuer à un changement qu'on veut voir sans gérer plus. Seule exception, gérer les bugs que tu as créé.

Et à côté de ça, tu met 81 étudiant·e·s qui ont déjà exprimé leur intérêt de faire un stage avec nous. En 48 heures. On a même pas encore eu le week-end laissant aux gens un week-end pour parcourir toutes les offres de stages financé par Google

À titre plus concret - parce que c'est simple de mettre un nom et un email - il y a trois personnes qui ont soumis du code, corrigeant un bug ou ajoutant une fonctionnalité. 3 personnes en 2 jours, contre 20 en un an !

Et c'est pas des petites contributions. J'ai souvent contribué en corrigeant une faute de frappe, un lien cassé. À mes débuts en temps que dev', j'étais flatté que quelqu'un s'intéresse assez à mon code pour faire ça.

Je parle de contributions avec test, avec commentaire, avec capture d'écran montrant le résultat obtenu, un lien vers le numéro de la requête/du bug. Un bon boulot. Pas parfait, quelques nits, mais rien que du normal.

Et c'est sans compter (parce que j'ai la flemme) le nombre de gens venus se présenter sur le discord d'Anki. Souvent, on dirait un copié coller de cv. Un ancien mentor pour un autre projet qui propose de nous aider (on peut avoir besoin)

Souvent, c'est juste un copier-coller de CV, ou une question à laquelle le wiki/le message épinglé, répond déja. Mais une bonne dizaine de messages sont des gens posant une question sur une partie du code, demandant de l'aide pour compiler, proposant des projet qu'ils aimeraient.

Je ne suis pas si c'est courant en stage, en particulier en dehors de la recherche, mais c'est cool pour nous que la personne propose son propre projet. Ça montre de l'intérêt, ça sera probablement plus motivant, et ça apporte des idées qu'on aurait pas.

En particulier quand on reçoit des gens qui ont de l'expérience en UX ou en technical writting, domaine où on est totalement ignorant dans l'équipe.

On lit aussi des gens qui expliquent vouloir participer à cause de l'impact qu'Anki(Droid) a eu sur leur vie. Il n'est pas rare qu'on nous explique qu'un diplome/concours aurait été raté sans nous, et qu'on fait parti du quotidien. C'est très enthousiasmant.

Et c'est un peu une horreur pour nous. Je n'avais jamais imaginé qu'on ait tant de réaction. On est petit, pas super super connu comparé à VLC, Apache, Python, InkScape et pas mal d'autres. Et contrairement aux langages de prog, peu de nos utilisateurices sont informaticien·ne·s

On est très présent dans les cours de langues, et aussi dans les cours de médecines. Les étudiant·e·s en médecine qui savent programmer j'en connais quelques un·e·s, j'en ai même comme pote qui ont coder pour leur thèse, mais c'est pas une majorité.

À la base, participer à Google Summer of Code est l'idée d'une personne qui a commencé à contribuer fin 2020, qui comptait candidater et faire ça en stage d'été. Une idée cool, la personne a fait de très bonnes améliorations au projet.

Accessoirement, cette personne ne peut même pas candidater pour des raisons administratives. Donc au moins, pas de biais, on est sûr que avoir eu l'idée ne l'avantagera pas. À la place, cette personne sera mentor si on trouve un projet compatible.

Bref, avoir 80 candidat·e·s au lieu d'un·e seul·e, ça pose pas mal de question. En particulier, comment on le/la choisit.

Parce que, je l'ai dit, on est PETIT. Google conseille deux mentors par candidat, on est trois mentors confirmés et deux potentiel·le·s. Max 2 stagiaires.

Et on a des dizaines et dizaines de gens nous demandant nos critères, qu'on est encore en train de discuter entre admin.
Ça a rien de neufs, tous les gens qui recrutent doivent faire ça. Mais c'est notre première fois chez AnkiDroid

Je vais pas me plaindre. Mieux vaut ça que l'inverse. Simplement, ça me sort de ma zone de confort totalement.
Étant donné des participant·e·s, je suis ravi·e qu'ielles peuvent se faire un peu de sous et soient récompensé·e·s.

Mais forcément, on est aussi dans le sens inverse. Des gens pour qui Google Summer of Code est un stage bien plus financièrement intéressant que beaucoup de stages d'été. Entre 1500$ et 3300$ selon le pays. 2500$ en France, 1500$ en Inde, pour deux mois et demi de stage.

Voilà. C'est ce que je gère depuis deux jours... en plus du boulot, mais ça, forcément, j'en parle pas.
Souhaitez moi bon courage, je tiendrai pas un mois comme ça.

Suite de Google Summer of Code.
On a pas mal de gens voulant contribuer, et commençant déjà. En théorie c'est cool. Mais je découvre un vrai problème de prioritisation.

On se retrouve, et c'est neuf, avec des gens demandant à attaquer le même "good for beginner" bug report/feature request. On a jamais eu avant à décider qui fait un truc.'

En deux ans de contributions à AnkiDroid, j'ai vu une unique fois un conflit.
Un nouveau contributeur a pris quelques jours (semaine?) à comprendre et corriger un bug, sans nous avertir. Le temps qu'il finisse, j'avais corrigé le bug.
Depuis il est devenu mainteneur

On se retrouve aussi à avoir des issues qui ne semble pas avoir spécialement d'intérêt. J'imagine que ça permet de contribuer techniquement parlant, mais n'améliore ni l'expérience utilisateurs, ni celles des dev

Typiquement, on nous signalait que une méthode publique pourrait être privé, et qu'en théorie, ça augmente les risques

Techniquement, c'est vrai, puisque cette méthode gère l'authentification avec le serveur...
Mais de base, les utilisateurices communiquent des données non chiffrés (via SSL) à un serveur qu'ils ne contrôlent pas. On est explicitement pas secure et on ne cherche pas à l'être.

En synchronisant avec AnkiWeb, je passe au contrôle d'AnkiTeckts la totalité des cartes, notes, etc... que j'ai créé. Définition mathématiques, partitions de musique, syntaxe de langage de prog, nœuds... Rien de privé. Tout peut fuiter et ça serait okay.

S'il devait y avoir des données confidentielles synchronisés, ça veut dire que quelqu'un les envoies non chiffré à un serveur inconnu et non auditable. Le problème n'est PAS que AnkiDroid permet à quelqu'un contrôlant le téléphone de récupéré une clef d'authentification.

Réciproquement, là, je review un pull request de quelqu'un implémentant une fonctionnalité que j'ai demandé, qui pourra être super utile à toute personne ayant un bug (ça arrive) et voulant de l'aide, et on a même des tests unitaires avec!

Ceci n'est PAS une activité normal pour un repo géré par 3 volontaires, qui a reçu 20 contributeurs en 2020.

Au secours !

@immae Y a beaucoup plus d'issues que de pull request. On demande à ce qu'ils discutent de ce qu'ils veulent fair avant de le faire, sauf s'ils sont prêt à avoir du code non mergé. On n'accepte pas tout.
En général les gens changent des parties différentes, donc pour l'instant, ça va encore.

Sign in to participate in the conversation
Mastodon

mastodon.immae.eu is one server in the network