Sommaire
- 1 Entrevue avec Alex Garel d’Open Food Facts
- 2 Présentation d’Alex Garel
- 3 L’équipe et les renforts externes
- 4 L’infrastructure technique
- 5 Les grandes étapes techniques
- 6 Les licences utilisées par Open Food Facts
- 7 Les contributeurs techniques à Open Food Facts
- 8 Les contributions externes
- 9 Les outils à disposition de la communauté
- 10 L’organisation salariés et bénévoles
- 11 Ce qui a été mis en place pour travailler avec les professionnels
- 12 Le conseil aux industriels
- 13 La gestion de la feuille de route
- 14 Le partage et les rencontres avec la communauté
- 15 Les défis à venir : la documentation
- 16 Les défis techniques
- 17 Conclusion
- 18 Licence
Entrevue avec Alex Garel d’Open Food Facts
Walid : bienvenue pour ce deuxième épisode de Projet Libre consacré à Open Food Facts. Si vous n’avez pas écouté le premier épisode avec Manon Corneille sur lequel on revient sur toute la création, la genèse du projet, les rapports d’Open Food Facts avec les différents intervenants, etc. Je vous invite très fortement à aller l’écouter avant d’écouter ce deuxième épisode.
Ce deuxième épisode est un épisode technique dans lequel on va pouvoir parler plus de tout ce qui fait tourner Open Food Facts et pour ce faire je suis avec Alex Garel qui est développeur et animateur de la communauté tech d’Open Food Facts donc bienvenue sur le podcast Alex.
Alex : merci, je vais très bien.
Présentation d’Alex Garel
Walid : génial, et bien écoute on va pouvoir commencer la première chose que je vais te demander c’est de te présenter pour que nos auditrices et nos auditeurs puissent en savoir un peu plus sur toi.
Alex : yes, quand tu as dit animateur de la communauté tech je suis pas le seul animateur, c’est juste pour préciser. Je suis un des animateurs, puisqu’on est tous un peu dans l’équipe permanente animateur. Voilà, et moi, donc je suis développeur, je suis un ingénieur informatique, je suis un pythoniste plutôt. Disons c’est ma préférence, mais voilà, je fais plein d’autres langages, je fais du Perl, je fais du JavaScript et puis je m’occupe un peu pas mal aussi d’administration système. Voilà.
Walid : à quel moment t’as croisé la route du logiciel libre ?
Alex : Il y a très longtemps, c’était pendant mes études en fait, je me rappelle bien parce qu’on faisait sur Unix et en fait à un moment des camarades m’ont montré Linux. Tout de suite ça m’a attiré pour la philosophie en fait qui sous-tendait. Cette histoire de partage et tout moi ça m’attire beaucoup. Et donc voilà j’ai assez vite approfondi et utilisé.
Walid : d’accord c’était vers quelle année ?
Alex : 96, 97.
Walid : ça fait un certain temps que tu es dans le logiciel libre.
Alex : ouais, au début c’était un peu timidement, j’utilisais Linux de temps en temps, GIMP, des trucs comme ça, mais voilà, après petit à petit je suis allé vraiment dans du full open source petit à petit.
Walid : et quand est-ce que tu as rejoint le projet Open Food Facts ?
Alex : il y a deux ans et demi à peu près.
Walid : comment ça s’est passé ? Tu connaissais avant ?
Alex : je connaissais de nom, en fait. C’est vraiment Open Food Facts avait posté une offre d’emploi, moi à ce moment là j’étais en train de vouloir changer de job et moi je connaissais le projet de nom mais j’étais allé faire un tour ou l’autre mais j’étais pas vraiment engagé dans le projet. Mais quand j’ai vu l’offre d’emploi j’ai dit « ah bingo c’est vraiment un truc que je voudrais faire » donc voilà ça correspondait pleinement à ce que j’attendais en fait comme type d’emploi.
L’équipe et les renforts externes
Walid : très bien on va pouvoir passer à la partie équipe, ce qui m’intéresserait c’est de savoir un peu techniquement combien de personnes vous êtes chez Open Food Facts ?
Alex : donc aujourd’hui chez Open Food Facts on est 10 personnes comme je pense que Manon l’a dit déjà en permanent et puis toute la communauté de bénévoles autour et on a à peu près 4 personnes et demi on va dire qui sont vraiment techniques, purement techniques. C’est un peu dur des fois de faire la différence, ça c’est dans l’équipe permanente et puis pas mal de bénévoles je dirais en temps en heure je pense qu’il y a autant de bénévoles que de l’équipe permanente si on regarde le développement au jour le jour quoi voilà et il y a quelqu’un qui fait le Product Owner Pierre (Slamich) donc qui fait plutôt voilà tout je sais plus comment dire en français Product Owner mais il y a sûrement…
Walid : le responsable produit quoi
Alex : ouais. C’est assez technique aussi.
Walid : donc Pierre Slamich, un des deux fondateurs. Donc il y a des gens qui sont en interne et qui sont en temps plein, il y a des gens qui sont bénévoles et en interne vous avez quoi comme compétences ? Vous avez toutes les compétences pour faire tourner toute l’infrastructure au jour le jour ?
Alex : aujourd’hui on a toutes les compétences, après peut-être des fois sur des compétences, par exemple tout ce qui est administration système, sur le développement vraiment on maîtrise bien tout ce qui est serveur, alors mobile c’est Édouard plus qu’est dessus, en Flutter et puis après tous les outils qu’on a en général on a essayé de garder sur des langages qu’on maîtrise au moins un peu. C’est vrai qu’il y a des choses faits par des bénévoles qu’on maîtrise moins et qui sont aujourd’hui dans l’infra, puis Raphaël (Bournhonesque) qui est plus sur le Machine Learning et l’apprentissage automatique, donc aujourd’hui là tel qu’on est on a quand même un spectre assez large. Voilà, même s’il y a des angles, peut être qu’on sera un peu moins à l’aise.
Walid : et à part le fait d’avoir des gens en interne et des bénévoles, est ce que ça vous arrive de faire appel à des freelances ou à d’autres types de personnes qui pourraient venir vous aider sur des besoins ponctuels, par exemple ?
Alex : alors, ça nous est arrivé de faire appel à un designer externe, par exemple. Mais souvent, on a des financements qui nous demandent que, par exemple, les projets européens, ça demande que ce soit des personnes internes qui fassent les choses. Donc c’est une difficulté des fois pour nous. On aurait des fois aimé absorber un peu de charges de travail par des gens externes, mais ça a été difficile.
Et puis on a eu aussi quand même du mécénat de compétences. Par exemple, on a eu 10 ingénieurs de Google quand on avait gagné le Google Impact Challenge pendant 6 mois. Donc ça, c’était énorme. Mais on a eu aussi des aides par Share it, par exemple, une association qui aide. Voilà, on a eu plusieurs mécénats de compétences et puis là on a la DINUM qui normalement nous a promis un profil machine learning pendant six mois qui sera une personne externe qu’on a sélectionné.
Walid : ok donc la DINUM c’est la direction interministérielle du numérique c’est ça ?
Alex : c’est ça, ils nous aident par ce budget là en nous mettant un développeur à disposition enfin plutôt un gars du machine learning.
Walid : est-ce que typiquement sur des problématiques comme ça, ça vous arrive d’avoir des chercheurs et typiquement d’avoir des financements du style CIFRE ou ce genre de trucs, qui sont des financements de recherche ?
Alex : On n’a pas ça pour l’instant. On fait des projets en relation avec des chercheurs mais qui sont payés à chaque fois par leur université etc.
Dans des projets en général plus larges où on a une petite part qui utilise Open Food Facts mais on a une petite part. Mais pour l’instant, on n’a pas eu vraiment ce genre de… Une thèse CIFRE c’est quand même un gros engagement pour une association comme nous qui est petite, tu dois t’engager sur trois ans. Voilà je sais pas si on y pensera à un moment donné et je sais même pas si une thèse CIFRE ça peut se faire avec une association, nous on est une association donc je suis pas sûr que ça marche.
Walid : ah ouais c’est vrai je sais pas. La question que je me pose c’est est-ce que c’est facile d’intégrer dix ingénieurs de Google qui viennent comme ça travailler ils viennent travailler quoi sur un sujet en particulier ? Ils viennent travailler sur quoi en fait ? Comment ça se passe ?
Alex : c’est pas facile. En plus à l’époque l’équipe était trois, puis moi j’étais le quatrième. Quand il y avait des ingénieurs de Google, donc ouais c’était la tornade. C’était pas que des ingénieurs techniques, quand j’ai dit ingénieur en fait, ils nous le nommaient comme ça. Mais il y avait des gens dans la com’, il y avait des gens qui nous ont aidés sur les relations publiques. Enfin voilà, il y avait vraiment tout un panel, mais on a eu un gros boost notamment par exemple quelqu’un qui a fait du Sysops (NDLR : un administrateur système), qui a vraiment mis au carré tous les trucs autour de Docker, qui a installé des choses, un Prometheus et tout ça.
Donc ça c’était un gros boost, et puis on a eu sur l’application mobile aussi, on a eu un UX designer à temps plein, on a eu plusieurs développeurs, et ça nous a beaucoup aidé en fait à sortir la nouvelle version de l’appli mobile notamment, ça a été vraiment la chose qui nous a beaucoup aidé.
L’infrastructure technique
Walid : tu as commencé à parler un peu de l’infra technique, mais actuellement, comment ça se passe ? Qu’est-ce qui fait tourner Open Food Facts en termes techniques ?
Alex : déjà, on est sur des serveurs en Bare Metal, on va dire, sur lesquels on met Proxmox en général. Là, on vient de mettre un peu tout sous Proxmox, il y en avait qui n’étaient pas encore sous Proxmox. Donc on a 5 serveurs actuellement, 2 qui sont hébergés par la fondation Free, donc c’est des serveurs qui nous appartiennent mais qui sont hébergés gratuitement par eux, et 3 serveurs que nous sponsorise OVH, et peut-être un quatrième bientôt, on espère.
Voilà donc ça c’est vraiment le cœur de notre infra, et ensuite donc on a une infra qui est Proxmox pour structurer tout ça, donc Proxmox ça permet de créer des machines virtuelles et des containers. Et puis on utilise énormément ZFS parce que c’est vraiment très très pratique. On a pas mal de données quand même surtout au niveau des images. C’est vraiment pratique pour faire de la synchronisation multi-machine. Comme ça on peut synchroniser entre Free et OVH à un coût vraiment bon.
J’ai trouvé un petit logiciel qui s’appelle Sanoid qui aide à faire ça de manière très carré. Comme c’est Proxmox on est beaucoup basé sur du Debian. Mais après il y a un mix un peu, dans le sens où on a pas mal de…
On a des installs dans des containers classiques, et puis on a pas mal aussi de projets, des nouveaux projets, souvent on les déploie avec du Docker Compose, du simple Docker Compose, souvent c’est des projets un peu atomiques, on va dire, voilà. Donc c’est beaucoup de choses comme ça.
Walid : et côté langage de Développement, qu’est-ce que vous utilisez, qu’est-ce que vous avez à l’heure actuelle ?
Alex : alors le cœur du projet est en Perl, c’est quand Stéphane (Gigandet) a commencé il a fait du Perl donc c’est vraiment tout le côté serveur est en Perl.
Ensuite on a l’application mobile qui est en Flutter, Dart, voilà donc ça c’est quand il y a eu la nouvelle app on a fait ce choix là parce qu’il permettait d’être multi plateforme.
Walid : l’environnement Google pour créer en Flutter, Dart c’est bien Google derrière ?
Alex : Ouais c’est Google qui fait les langages. C’est le langage de Google pour les applis mobile ? Oui c’est ça. Mais à part que c’est le langage de Google, il n’y a pas d’adhérence plus que ça.
Et puis après on a pas mal d’outils qui ont été développés en JavaScript ou en Python. On essaye de ne pas trop multiplier les langages et les frameworks pour que ça reste un peu maîtrisable. Si c’est des projets très périphériques, c’est moins gênant mais si c’est au cœur de l’infrastructure c’est un peu gênant qu’on ait trop de langage.
Walid : une des grosses grosses parties c’est la base de données et donc je me demandais un peu justement qu’est ce que vous utilisiez comme moteur de base de données ou comme moteurs (au pluriel), ça dépend ce que ce que vous avez qu’est ce que vous utilisez un peu ?
Alex : déjà il faut savoir que de manière assez surprenante le cœur de nos données, le single source of trust, c’est des fichiers stockés sur le disque. Chaque produit que vous voyez dans Open Food Facts, c’est un fichier stocké sur le disque, une sérialisation d’un objet Perl. Pour l’instant c’est comme ça, on fera peut-être évoluer à un moment donné, mais il y en a beaucoup qui aimeraient faire évoluer ça, mais on n’a pas encore… Voilà, c’est un gros pas de faire évoluer ça et on n’est pas sûr que ça vaille le coup pour l’instant.
Et après le deuxième on va dire le deuxième acteur qui est historique c’est MongoDB donc on utilise pas mal MongoDB pour les requêtes etc. Donc base de données de SQL. C’est ça très proche de JSON dans sa structure et puis ensuite on a du PostgreSQL pour pas mal de projets en fait à côté genre l’apprentissage automatique avec Robotof utilise beaucoup PostgreSQL, des projets comme Folksonomy Engine. On utilise maintenant pas mal PostgreSQL dès qu’on peut. Et puis on a du Redis, plus pour ses primitives de synchronisation, les streams, tout ce qu’on peut faire, les locks, etc. Avec Redis qui est quand même pratique.
Et on a un MemCache aussi.
Walid : tu disais tout à l’heure que sur le cœur de l’infra, vous gardez un petit nombre de technologies mais que sur d’autres projets il peut y avoir des trucs un peu plus différents est-ce qu’il y a des choses un peu je sais pas, exotiques, ou d’autres trucs que vous avez ?
Alex : je réfléchis bon en termes de base de données par exemple on est en train de faire un éditeur de taxonomie qui s’appuie sur Neo4j parce que comme c’est des graphes les taxonomies on s’est dit que ce serait pratique mais en termes de langage à part des connecteurs j’ai pas connaissance d’un projet qui aurait un langage vraiment très particulier. On a les anciennes apps mobiles qui étaient en Swift, en Kotlin, mais bon il n’y a plus personne vraiment qui les maintient aujourd’hui.
Walid : donc là tu as expliqué que toute l’infra, la partie servant, une grosse partie c’était en Perl. Alors moi je suis pas développeur Perl, mais j’ai travaillé sur un projet qui a été créé en Perl. Et en fait, en gros, la problématique qu’on avait, et je suppose que vous devez certainement rencontrer à peu près la même, c’était que c’était dur de trouver des gens qui font du Perl à l’heure actuelle.
Globalement, c’est des gens qui ont nos âges ou encore plus âgés, qui sont développeurs ou adminsys (NDLR : administrateurs systèmes). Enfin bref, c’est compliqué, ça n’attire pas les jeunes, ils veulent faire autre chose. Et donc, en fait, je me posais la question de savoir est-ce que c’était compliqué de maintenir pour vous du Perl ? Qui maintenait du Perl ? Comment vous gérez cette… je sais pas si on peut appeler ça de la dette technique dans votre cas, mais comment est-ce que vous gérez justement le fait que c’est pas forcément évident de trouver des gens qui font du Perl ? Déjà est-ce que tu partages mon analyse déjà ?
Alex: oui clairement, nous on le ressent je veux dire c’est clair que ça rebute pas mal quand on dit c’est en Perl, on sait que ça freine pas mal de contributeurs. Après on a quand même des gens qui ont appris le Perl pour pouvoir participer à Open Food Facts donc ça c’est vraiment génial. On a essayé de mettre des ressources par exemple pour ceux qui veulent apprendre le Perl, on fait un peu aussi une des choses qu’on a fait par exemple on a des programmes, la Perl Foundation par exemple nous a permis de participer deux fois et encore cette année, je crois que ça va être la quatrième fois cette année, à un programme qui s’appelle Outreachy, pour favoriser la diversité, donc des étudiants différents en fait, qu’ils soient, qu’ils appartiennent à des ethnies moins représentées, à des genres moins représentés dans l’informatique. Et donc ça c’est des gens qui apprennent le Perl exprès.
Là on va recruter un stagiaire parce que dans leur formation il y avait un peu de Perl, j’avais posté une offre de stage. Voilà bon pour dire ouais effectivement c’est un problème et notre réponse à ça disons aujourd’hui c’est donc de dédramatiser parce qu’on fait pas du Perl hyper complexe donc quand on connaît Python on peut assez facilement glisser dans le Perl, mais aussi de simplifier notre architecture parce qu’il y a d’autres freins : c’est que notre architecture parfois est un peu compliquée sur certains points, c’est du code qui a vécu longtemps et qui pourrait être simplifié.
Et la dernière étape c’est qu’en fait on a une poussée aussi de la communauté pour ça et nous on est content de le faire aussi, ça va être de faire plus de composants, de faire plus s’organiser en service, ce qui permet pour certains services d’utiliser d’autres technos qui ont plus de contributeurs et aussi ça redimensionne quand on fait juste, quand on s’occupe juste d’un service, ça redimensionne aussi la taille du problème donc c’est plus facile de contribuer.
Voilà mais je pense dans le futur proche, le cœur du projet, c’est à dire la logique métier etc restera en Perl mais c’est vrai qu’on a commencé par exemple la recherche là, on a un nouveau projet qui s’appelle Search-a-licious, c’est du Python, Elasticsearch et du JavaScript.
Walid : ouais ça semble assez cohérent d’essayer au fur et à mesure de faire des micro-services.
Alex : j’aime pas trop le terme micro parce que… services. Voilà, des services parce que micro des fois c’est… on se tire une balle dans le pied à faire des choses trop complexes donc pas trop non plus mais voilà des services un peu qui font sens.
Les grandes étapes techniques
Walid : est-ce que tu as une idée des grandes étapes du développement de techniques sur Open Food Facts ?
Alex : ouais alors je pense que le serveur a pas trop bougé on va dire c’est du Perl et MongoDB, je pense, étaient là dès le départ. Par contre, quand ils ont lancé la toute première appli mobile, c’était du Cordova, donc elle a fait un certain temps.
C’était la première appli de scan, en pratique.
Walid : c’est quoi Cordova ?
Alex : Cordova, c’est un framework qui te permet de faire des applications en utilisant les technologies web, des applications mobiles en faisant des technologies web. Donc tu vas contenir ton application et il te permet d’écrire du Javascript classique et du HTML et tu auras une application mobile alors il rajoute des api je pense là je suis pas sûr à 100% mais c’est encore bien actif.
Walid : c’est un truc multi plateforme ? C’est pour faire des applis mobiles ?
Alex : ouais je pense multi-plateforme là je mets pas ma main à couper. Et ensuite on est passé donc à du spécifique donc sur iOS je pense c’était du Swift sur Android c’était d’abord du Java puis du Kotlin et maintenant on est passé à Dart parce qu’il y avait des contributeurs qui poussaient pour avoir du Dart et que nous, on voyait qu’il y avait vraiment une très grosse difficulté à harmoniser les deux applications mobiles. Surtout que c’était vraiment des bénévoles à l’époque qui développaient et chacun avait son idée sur comment il devait développer son application donc il n’y avait vraiment pas du tout de parité de fonctionnalités etc. C’était pour les utilisateurs c’était un peu déroutant.
Quand je suis arrivé, il y avait quelqu’un qui avait déjà commencé, un contributeur allemand qui fait pas mal de trucs, son pseudo c’est Hanghi, qui avait commencé à Dockeriser (NDLR : containeuriser) un peu le serveur. Olivier qui était chez Google, et puis moi ensuite on a fini cette dockerisation qui a rendu vraiment plus simple de contribuer au projet : tu fais un make dev, pourvu que tu aies Docker installé, tu peux vraiment commencer à coder assez rapidement. Donc ça on a pas mal de Docker, pas mal de projets et cette mise en service aussi, enfin ce découpage en service là, on est en plein dedans, disons on est en train d’enlever des bouts, petit à petit là on avait des gros problèmes de performance, tu vois par exemple si tu vas sur la page d’accueil, tu peux naviguer par des facettes, tu as un bouton qui dit naviguer ses résultats par, et tu peux dire par exemple le Nutri-Score, je veux voir les Nutri-Scores, donc il te dit il y a tant de produits Nutri-Score A, tant de produits Nutri-Score B, etc. Et cette page là en fait qui fait de l’agrégation, sur MongoDB, elle fonctionnait avec MongoDB mais à un moment elle était vraiment trop lente, et comme on avait, on était en train de migrer les serveurs, on avait mis le MongoDB sur un petit serveur prêté par OpenStreetMap France, merci à eux d’ailleurs, et du coup ça plantait. Et quelqu’un, un de nos contributeurs, a fait un service qui est en JavaScript avec PostgreSQL et qui fait ces queries (NDLR : requêtes) là. Et en fait juste pour ces queries là, on utilise ça, mais on va l’utiliser pour d’autres choses aussi.
Les licences utilisées par Open Food Facts
Walid : le sujet suivant, qu’on a un peu abordé avec Manon, mais je voulais savoir si tu avais des choses à rajouter là-dessus, peut-être plus d’ailleurs sur la partie serveur, c’est les licences.
On a parlé un peu des licences associées aux données, des licences ODBL, Open Database License. A part cette licence ODBL, pour tout ce qui est code, qu’est-ce que vous utilisez comme licence ?
Alex : en général, moi quand je suis arrivé, c’était comme ça, j’aurais fait ça. C’est en AGPL en général, Affero GNU Public License. L’Affero GNU Public License, elle dit, mon code est libre, mais si toi tu l’utilises tu dois aussi partager le code source avec la même licence à tes utilisateurs et l’Affero elle a cette protection aussi pour du code qui tourne sur le web.
Comme tout notre code tourne sur le web ça a plus de sens. Après des fois il y a des contributeurs qui démarrent un projet avec une autre licence et dans ce cas là on respecte la licence initiale qu’ils ont mis, s’ils ont produit beaucoup de code. Des fois on peut lui proposer de plutôt aller sur l’AGPL voilà si c’est au début du projet.
Et puis il y a des choses comme bien sûr quand tu fais un SDK (NDLR : kit de développement) par exemple ça n’a pas de sens de mettre l’AGPL. C’est pour que le maximum de monde l’utilise, même des applications tierces propriétaires, donc dans ce cas là on met une licence BSD like.
Walid : d’accord
Alex : tu n’as pas de logique intrinsèque en général tu donnes juste accès de la manière la plus naturelle dans ce langage là à ton API.
Walid : alors je me pose deux questions la première c’est tu dis « ok on a des bénévoles qui commencent des projets et qui prennent une licence qui est pas forcément celle-là », je me posais la question de savoir les gens qui commencent des projets est-ce que vous avez un peu des guidelines, des lignes directrices, des bonnes pratiques pour éviter que ça parte un peu dans tous les sens ? Typiquement comme là le fait de dire, utilisez plutôt une AGPL etc. Je me posais déjà cette question là.
Alex : on n’a pas de guidelines, c’est un bon truc qu’on pourrait faire, tu as raison. C’est rare que quelqu’un commence un projet sans nous dire, parce que c’est quelqu’un qui connaît bien le code, qui sait un peu les pratiques de la communauté, donc ça va se passer normalement, naturellement, mais c’est vrai que c’est pas bête qu’on pourrait un peu expliquer avoir une guideline.
Walid : donc je suppose de ce que je comprends c’est que quand les gens contribuent au code il n’y a pas de Contributor License Agreement (CLA) ou de mécanisme qui permet de partager la propriété ou de céder sa propriété quand un contributeur contribue du code chez vous ?
Alex : non, ouais on n’est pas sur ce genre de mécanisme. C’est plus facile de favoriser la contribution comme ça. On pense, peut-être à tort, mais on pense que la licence suffit.
Les contributeurs techniques à Open Food Facts
Walid : là justement on vient de commencer de parler de communauté et donc je me demandais qui contribue en fait ? Tu expliquais qu’il y avait des sociétés qui, dans le cadre de partenariats ou d’opérations spéciales contribuent, mais est-ce que tu as des individuels qui contribuent en général ? Est-ce que c’est plutôt des sociétés ?
Alex : oui, alors la plupart des gens qui contribuent, c’est des individuels en fait, qui font ça sur leur temps libre parce que ça a touché une corde chez eux ce projet ou parce qu’ils cherchaient à avoir un impact sur l’alimentation avec leurs compétences. Je donne un exemple, là on a John qui est un senior développeur qui est en Angleterre et qui lui aurait, a failli en fait faire son appli ou sa base de données puis quand il a découvert Open Foot Facts, il s’est dit non mais c’est là en fait il faut que je m’investisse là et maintenant il s’investit un jour par semaine complet avec des super compétences. On a Benoît en Croatie pareil qui lui a appris quand je te disais il y en a qui apprennent le Perl pour contribuer, a appris le Perl, a appris à programmer, a commencé en fait à d’abord s’intéresser aux taxonomies etc.
Donc c’est déjà un sujet un petit peu technique parce qu’il faut se rentrer dans le sujet. Et après il a voulu vraiment corriger les erreurs sur les ingrédients et tout, sur les produits qu’il voyait. Et il s’y est mis quoi, il a commencé à corriger 2-3 regexp (NDLR : expressions régulières) dans le code. Puis maintenant il fait carrément des nouvelles features (NDLR : fonctionnalités) etc. lui-même quoi. Après ça voilà, il y a des gens qui viennent, qui sont plus dispo à un moment.
Bon ben ça c’est la vie de l’open source et de la communauté. C’est surtout ça. Après, il y a eu des choses exceptionnelles, comme la fondation Google, qui, dans le cadre du prix qu’on avait gagné, Google Impact Challenge, sont venus nous aider. Et oui, des projets étudiants aussi, et des programmes. On a eu deux années, la chance d’avoir Google Summer of Code. C’était aussi des bonnes opportunités. Là, on ne l’aura pas cette année donc malheureusement mais voilà.
Les contributions externes
Walid : un avantage d’avoir un projet à impact comme ça c’est effectivement de pouvoir attirer des compétences que dans tous les cas tu pourrais pas te payer.
Alex : tout à fait, je dirais c’est le propre un peu de l’open source aussi je dirais. Il faut que tu aies une communauté accueillante aussi nous on essaie vraiment d’être très accueillant, on essaye. Des fois on passe vraiment du temps avec certains contributeurs : ça paye pas toujours mais c’est pas grave on le fait aussi je veux dire avec cette idée que un projet ça doit être un lieu d’épanouissement aussi des personnes un projet open source comme le nôtre par un projet qui est plus qu’un projet open source c’est un projet qui a un impact aussi sur l’alimentation etc. Donc on pense qu’il y a vraiment ce cadre aussi épanouissant qui favorise la diversité aussi etc
Voilà, même si notre temps n’est pas extensible donc à un moment il faut aussi qu’on fasse attention, on a aussi nos objectifs internes à atteindre, qui nous sont imposés un peu par le rythme des projets qu’on a gagnés etc. Donc il y a des fois des choix à faire. Mais voilà, on essaye, mais enfin voilà, donc tout ça il y a des réponses, c’est-à-dire on essaye aussi par exemple de favoriser l’autonomie, on essaye de dire aux gens voilà, plus tu seras autonome, plus nous on pourra travailler ensemble facilement, c’est un peu tout ça mais c’est moi je suis… C’est super important.
Johannes là dont je parlais tout à l’heure c’est un contributeur, lui il est allemand et il est en train de nous mettre en place Keycloak. C’est un travail un peu titanesque donc du coup John l’a rejoint.
Walid : tu peux expliquer ce que c’est que Keycloak ?
Alex : ouais Keycloak donc c’est toujours dans notre logique de faire des services. Keycloak c’est d’authentification et référentiel utilisateur. On s’est dit pour cette chose là, il vaut mieux qu’on prenne une solution sur l’étagère et ça nous apportera plein de fonctionnalités comme OAuth etc. C’est pas la peine de réinventer la roue.
Sur l’appli mobile on a son pseudo c’est Monsieur Tanuki qui nous fait plein de PR en Allemagne aussi, quelqu’un de plus jeune, Marvin, enfin voilà on a vraiment des… avec des gens qui ont des niveaux très différents des fois, mais ça se passe bien quoi, et on essaye de vraiment souligner aussi l’apport de chacun.
Là j’ai par exemple aussi un groupe d’étudiants, par exemple trois étudiants de Centrale Supélec qui font un projet grâce à Latitude, une association qui essaye d’aider à sensibiliser les étudiants et le monde de l’entreprise aux enjeux éthiques du numérique. Donc on fait un projet avec trois étudiants qui font deux jours par semaine, ils travaillent sur ce projet d’éditeur de taxonomie par exemple.
Walid : là jusqu’à présent les contributeurs que tu as cités c’était plutôt en Europe ? Vos contributeurs viennent un peu partout dans le monde ou principalement il y a des pays où ça ressort ?
Alex : pour l’instant ça ressort pas mal en Europe. Là il y a un contributeur qui est en Australie, mais tu vois c’est pas simple l’Australie pour les timezones (NDLR : fuseaux horaires), tu vois on essaie, parce qu’on a essayé d’humaniser aussi cette relation à la communauté en faisant des points réguliers, c’est une des choses. Il y a deux ans quand on s’est un peu dit ouais faut vraiment qu’on prenne du temps pour la communauté, une des choses qu’on a identifié c’est de faire plus de réunions régulières, donc il y a des choses comme le serveur, c’est très actif, le serveur en Perl donc ça on fait une réunion toutes les semaines. Pareil sur l’application mobile.
Mais par exemple sur l’infrastructure, moi je fais une réunion mensuelle pour aussi se rencontrer. Donc quand on fait des réunions on peut avoir aussi des gens des Etats-Unis mais voilà c’est un peu plus ponctuel on va dire pour l’instant. Pour l’instant le gros de la communauté la plus active, on va dire, il est en Europe mais on a aussi des bons bouts de communauté en Amérique du Nord, là on a quelqu’un qui est en Argentine qui voudrait vraiment booster sur un nouveau projet qu’on fait qui s’appelle qui est né de la communauté là aussi qui s’appelle Open Prices donc on essaye de traquer tous les prix de l’alimentaire, je crois que Manon en a parlé. Donc voilà c’est un peu tout ça.
Les outils à disposition de la communauté
Walid : quels outils vous mettez à disposition de la communauté pour pouvoir interagir et collaborer avec vous ?
Alex : disons vraiment beaucoup de choses se passent sur le Slack, je sais pas si c’est idéal mais c’est comme ça, dans le sens où Slack ça demande beaucoup de présence, beaucoup de temps. On a aussi un wiki où il y a des gens qui édite pas mal : ça fait une bonne source de documentation. Il manque de structure, on voudrait le restructurer, moi ça fait un mail que ça me dérange, que ça me démange de le restructurer mais j’ai pas encore réussi à m’y mettre. Et puis on a un forum, on a ouvert il y a quelques temps un forum parce qu’il y a des gens, bon slack c’est propriétaire malheureusement, bon pour l’instant on migre pas sur autre chose parce que ça coûte pas mal de faire une migration.
Et donc on a fait un forum, c’est un discourse, pour être plus accessible à certaines personnes et puis après il y a Github qui sert beaucoup pour toute la communauté tech on va dire voilà les tickets, les branches.
On a un blog aussi voilà pour plus, pour des nouvelles et newsletters mais ça c’est plus la communauté au large on va dire même si on avait voulu faire une newsletter tech mais on n’a pas démarré encore on avait un numéro zéro dans les tiroirs mais ça a pas démarré.
L’organisation salariés et bénévoles
Walid : je me posais la question aussi de savoir comment vous répartissiez le travail entre les personnes salariées et les bénévoles ? J’entends par là qu’une personne salariée tu peux prévoir son temps sur les semaines, mois à venir, alors qu’un bénévole c’est plus compliqué, tu peux pas forcément lui demander un rendu ou quelque chose à une date très précise. Comment ça se passe ?
Alex : en fait nous déjà, équipe permanente, par rapport aux projets qui ont été financés, on a des obligations et c’est à nous de le faire on va dire parce qu’on a reçu les financements pour ça. Donc déjà ça nous prend beaucoup de temps. Le temps qui nous reste souvent c’est pour animer la communauté et faire quelques petits bouts à droite à gauche. Mais ça veut dire que tout le reste, tout ce qu’on aimerait faire, qui va vraiment servir au projet, parce que les projets européens, tout ça ne se finance pas tout. Ce qu’on aimerait faire, ça va dépendre de la communauté.
Donc voilà, et comme tu dis, ça veut dire que des fois, il faut avoir la patience, une personne est là, puis elle ne peut pas finir. Donc ça peut arriver aussi qu’on donne un coup de main à un bénévole qui a commencer un énorme boulot, ou alors on finit le boulot parce qu’il est moins disponible.
Ou alors des fois, tu vois, il y a des choses assez intéressantes. Par exemple, sur ce projet de recherche là, en fait, on n’avait pas de financement encore, mais il y a d’ailleurs un Américain qui voulait améliorer la recherche et qui avait démarré un projet. Je l’avais un peu aidé pour set-up (NDLR : mettre en place) le projet, etc. Et puis j’avais fait ses revues de codes, etc. Mais c’est lui qui avait démarré. Et ça, ça nous a servi de base, en fait, après, pour faire le projet européen.
Walid : et c’est ce que disait Manon, financés pour faire globalement des projets, des certaines actions, mais l’entretien du commun et donc l’entretien d’existence est autofinancé.
Alex : On a du mal à le financer, disons.
Nous, dans l’idéal, on aimerait que ce soit financé, que ce soit bien financé. Aujourd’hui, on a du mal à le financer. Après nous quand on fait un projet, tu vois, on considère aussi qu’il y a une base, je dirais il y a des choses qu’on fait un peu pour le commun qui peuvent rentrer dans ces projets. Et aussi je dirais moi qu’on considère que s’il n’y avait pas le projet il n’y aurait pas les projets européens donc on prend un peu de temps quand même mais oui c’est une des grosses difficultés.
Je te donne un exemple, moi j’ai travaillé beaucoup sur l’infra l’année dernière parce qu’on avait vraiment plus de place sur les serveurs etc. Il fallait migrer des serveurs, remplacer les disques, changer, mettre à jour etc. Et ça nous met vraiment en retard sur les projets européens parce que justement ce n’était pas du temps financé vraiment et pourtant c’est ultra nécessaire sinon le projet s’arrêtait, il y avait le serveur qui tombait par terre.
Mais on travaille dessus, on essaie vraiment. On s’est fixé comme objectif cette année d’essayer de faire financer le commun, on se dit c’est pas normal que ce soit pas financé. Il faut vraiment qu’on cherche les personnes, qu’on sache le présenter et qu’on trouve les bonnes sources de financement pour ce commun.
Ce qui a été mis en place pour travailler avec les professionnels
Walid : entre l’interview de Manon et puis j’ai écouté aussi des conférences pro que vous faisiez pour les professionnels. Qu’est ce que ça veut dire travailler avec des professionnels en termes de flux ?
Alex : en fait on a des professionnels très différents parce que dans les producteurs tu as la personne qui produit je dirais dans son petit labo, à la main, tout à la main et qui peut être intéressé à être sur Open Food Facts, à l’entreprise de 10, 15, 25 salariés et puis tu as la marque distributeur de Carrefour ou Picard ou je sais pas quoi enfin voilà donc c’est vraiment des choses très différentes on a été un peu financé par Santé Publique France (SPF) pour ça aussi eux ils voulaient vraiment s’assurer que la qualité des données dans la base était bonne. Donc l’idée c’était de dire : il faut les données des producteurs. Alors c’est vrai que c’est des données plus complètes, la qualité n’est pas toujours si grande que ça, c’est un vrai problème même pour les producteurs, la qualité des données. C’est pas un problème si on peut penser qu’en 2024, ben non, c’est pas si simple, même pour eux. Donc on a fait cette plateforme producteur, l’idée c’est que tout le monde puisse avoir accès, même les petits producteurs. Donc là tu peux vraiment rentrer tes fiches comme tu le ferais sur Open Food Facts à la main ou alors on peut le faire à partir d’un tableau de type tableur qu’on remplit.
Donc ça permet, c’est un pont facile on va dire, même pour quelqu’un qui aurait un petit outil custom, qui aurait un outil où il peut faire des exports, ça peut être assez facile de copier-coller pour mettre dans les bonnes cases. Surtout que l’outil d’import des CSV il est assez tolérant, tu peux lui dire voilà cette colonne là c’est ça, cette colonne là c’est ça. Et ensuite on a des gens, genre Carrefour, ils nous font carrément un export toutes les nuits, ou toutes les semaines je sais plus, mais qu’ils nous envoient sur un SFTP.
Et nous on a fait un script pour aller manger leurs données, sachant qu’ils ont déjà fait leur partie, on va dire, de mettre les données en forme pour que ce soit assez facile pour nous. Et puis ensuite on s’est branché sur des gens en fait qui gèrent les catalogues des producteurs, donc des gens comme Agena 3000, Bayard & Equadis, donc ceux qui ont bien voulu le faire parce qu’on a eu d’autres gestionnaires de catalogue qui nous ont dit ah oui on veut bien vous le faire mais ça vous coûtera 10 000 euros. C’est à dire que ceux qui ont accepté c’est eux qui l’ont fait leur frais quoi ? C’est à dire nous ce qu’on leur a demandé, c’est de nous pousser les données dans le format standard du domaine qui s’appelle GS1.
Et donc oui, ils ont fait dans leur plateforme, effectivement, ils ont fait quelque chose, ils ont fait un développement, puisqu’ils ont effectivement rajouté une cage à cocher pour que les producteurs puissent dire, je veux pousser mes données vers Open Food Facts. Mais on peut considérer que pour eux, c’est aussi une offre au catalogue, parce que ça permet aux producteurs qui utilisent leurs produits pour rien du tout d’avoir ces données dans Open Food Facts, ce qui est un plus pour le producteur. Avec cela en particulier ça s’est très bien passé on va dire et donc ça nous a donné accès à pas mal de producteurs. Parce que tu vois, entre dire quand tu rencontres la personne tu dis « ah oui alors faudrait que je vois mon équipe IT etc enfin mon équipe technique et tu dis non mais vous êtes chez Agena 3000 ou Bayard ou Equadis » et ils te disent « oui oui on a », « vous allez dans leur interface et vous dites que vous voulez donner vos données et ça marchera quoi ». Donc ça c’est, ça débloque pas mal.
Walid : ça leur coûte rien de faire ça donc en fait c’est tout bénéf pour eux quoi.
Alex : c’est ça, c’est tout bénéf pour eux. Et l’autre chose donc, nous la plateforme aussi c’était, ce qu’on a fait aussi c’était dans les plans aussi de Santé Publique France avec lesquels on adhérait complètement, c’était aussi, parce que le Nutri-Score le but c’est que ça ait un impact en fait sur ce que produisent les producteurs c’est à dire on augmente la connaissance des consommateurs on augmente la capacité des consommateurs à choisir les bons produits derrière c’est aussi pour que les producteurs disent « ah mince faut qu’on ait des bons produits du coup » et donc une des choses
qu’on propose pour attirer aussi les producteurs, c’est de leur dire « on va vous faire une analyse de vos produits et on va vous relever dedans toutes les améliorations que vous pouvez faire, les améliorations simples on va dire, pas trop dures à faire, genre diminuer un peu le sel, qui vont vous amener à un meilleur Nutri-Score ».
On ne le fait pas encore pour l’impact environnemental parce que c’est un petit peu plus complexe, mais voilà on le fait pour ce genre de choses. Et puis aussi ça permet à des petits producteurs de calculer le Nutri-Score, de calculer l’impact environnemental avec l’éco-score par exemple. À un moment par exemple Carrefour a expérimenté, alors ils l’ont débranché maintenant, mais sur leur Drive, tu avais accès à l’éco-score et le prenait directement de la plateforme producteur.
Le conseil aux industriels
Walid : c’est un gros travail, ce travail, justement, de conseil. Techniquement, c’est complexe ?
Alex : non, techniquement, c’est pas trop complexe.
C’est vraiment plus des problèmes humains. Et c’est pour ça que c’est beaucoup le boulot de Manon.
Donc nous faudrait vraiment, mais on a des petits financements seulement pour ça, donc on a du mal à le faire, mais il faudrait vraiment qu’on améliore l’ergonomie par exemple de la plateforme producteur pour favoriser l’autonomie et que quelqu’un qui a dix produits, il puisse vraiment s’y retrouver tout seul.
C’est pas des informaticiens, les gens qu’on a en face c’est des gens de l’agro-alimentaire, donc il y a cet aspect là, mais après c’est surtout voilà, il y a tout le travail de convaincre les gens de pourquoi c’est intéressant, qu’ils versent leurs données dans Open Food Facts : qu’est-ce que ça va leur apporter, et puis tout l’accompagnement, on va dire, humain. Parce que des fois, il y a des personnes de bonne volonté dans une entreprise, mais elles ne savent juste pas où est la donnée, quoi, enfin, elles ne savent pas comment, donc nous, on a des petits trucs qu’on leur dit, quoi, par exemple, on va leur dire, « ouais, vous avez un e-commerce ? Peut-être il faut leur demander à eux où c’est qu’ils prennent les données », parce que des petites choses comme ça. « Vous avez quelqu’un dans la qualité, donc lui peut-être il a accès aux données ».
C’est plutôt ça, mais après je dirais, sur l’aspect conseil sur Nutri-Score, on va dire que c’est sur l’étagère, tu mets tes produits, tu as des conseils, je pense que la plupart des gens savent l’utiliser. Ce qui les intéresse les producteurs aussi, c’est de faire du benchmarking (NDLR : mise en concurrence), c’est-à-dire de comparer leurs produits aux autres produits. Parce que nous par exemple on te dit dans la catégorie des produits, les autres produits ont plus de sel, moins de sel, plus de fibres, moins de fibres… Et ça les intéresse beaucoup aussi.
La gestion de la feuille de route
Walid : je voudrais qu’on parle maintenant un petit peu du flux de développement. Ce que j’aimerais bien savoir c’est un peu comment est-ce que vous construisez la feuille de route de vos différents produits ? Comment elle est influencée en fait ? Qui s’en charge et comment vous la gérez, vous la respectez ?
Alex : je dirais qu’il n’y a pas de processus très clair. Il y a un côté opportuniste, clairement on voit un appel à projet, on se dit avec cet appel à projet on pourrait faire ça, typiquement pour la recherche. On savait qu’on avait vraiment besoin de refondre la recherche depuis un moment, mais on n’allait pas s’attaquer à ce dossier là normalement prioritairement. Mais quand on a vu l’appel à projet européen, on a dit ça ce serait chouette, on va proposer un projet, ça va nous apporter un vrai moteur de recherche que les gens attendent.
Voilà, c’est aussi, on est tout le temps, tous les jours, tous les jours en contact avec nos utilisateurs, avec la communauté, donc il y a aussi plein de demandes qui viennent de la communauté, que ce soit du bug irritant, c’est à dire chaque fois que je fais ça, ou de l’erreur qui te revient 15 fois, ou les gens disent j’ai pas compris comment faire ça. Donc ça, ça peut beaucoup influencer la roadmap.
Il y a la disponibilité des volontaires, comme je te dis, dans le sens où un volontaire souvent il va venir, il y a des sujets qui l’intéressent. Il va dire, moi ce qui m’intéresse, ce serait de contribuer à ça. Il a des compétences pour ça, donc ça va vraiment influencer la roadmap (NDLR : feuille de route). Nous, ça nous prend un peu de temps aussi parce qu’il faut l’accompagner. Donc ça nous prend un peu de temps donc ça va être aussi, il y a de l’opportunisme aussi dans ce sens là mais après je dirais au niveau de l’équipe permanente on va aussi avoir des réflexions un peu stratégiques régulières, tous les mois on fait par exemple un moment ensemble qui vont nous aider à donner des orientations.
Par exemple là on sait qu’une orientation qu’on a c’est qu’on veut plus d’utilisateurs sur l’app mobile, on pense que notre app mobile elle n’a pas le nombre d’utilisateurs qu’elle mérite et on sait que c’est aussi ça la soutenabilité du projet parce que les utilisateurs c’est le cœur du projet c’est le crowdsourcing (NDLR : production participative) c’est la donnée participative donc on sait que c’est ça qui est soutenable et donc par exemple là dessus on s’est dit : mais plutôt en fait que partir que de notre vision à nous on s’est dit il faut vraiment qu’on inclut la communauté. Donc l’année dernière on a fait tout un processus participatif pour essayer de déterminer ensemble quelle est la priorité pour le futur de l’app mobile.
C’était très intéressant, on est parti d’une série de sessions de brainstorms, après on a individualisé des pistes, des grandes pistes, à partir de ce qu’étaient sortis les brainstorms. On a essayé d’approfondir ces pistes en petits groupes, et ensuite on a fait voter la communauté sur les pistes qui étaient les plus intéressantes, une fois qu’elles étaient instruites. Les votes étaient très serrés d’ailleurs, à la fin on a pris ce qui est sorti le plus et nous ça nous a un peu surpris en fait c’était la personnalisation. Enfin voilà une app et en fait ça tombait assez bien stratégiquement parce qu’on s’était dit plus d’utilisateurs c’est aussi plus d’utilisateurs fidèles parce que souvent tu vois tu vas utiliser une appli de scan et une fois que tu as un peu scanné ton environnement habituel tu vas pas beaucoup la ressortir parce que ça y est tu as choisi les produits tu sais qu’ils sont bons.
Voilà tu la ressort à l’occasion et on s’était dit en fait faudrait que l’appli, elle soit un peu plus compagnon parce que nous on a besoin par contre on aurait besoin que tu rescannes le pack de produits parce qu’il a changé etc. On s’était dit qu’il faudrait qu’on crée un peu un compagnonnage et donc cette personnalisation elle va un peu dans ce sens parce que l’idée ce serait de faire des fonctionnalités par exemple de dashboard (NDLR : tableaux de bords) comment est réparti le Nutri-score de tes achats dans un mois par rapport au mois dernier , ton éco-score… Enfin voilà c’est ces idées qu’on a un peu qui sont ressorties on va dire de ces pistes là.
Walid : donc tu as des choses opportunistes parce que tu as un financement qui te permet de travailler sur un sujet sur lequel vous vouliez travailler mais que vous ne pouviez pas le faire sans financement, il y a des choses que vous corrigez au quotidien, au jour le jour. Il y a des grandes consultations, et si je comprends bien aussi d’autres projets qui sont menés par des contributeurs aussi, ce que tu expliquais tout à l’heure.
Alex : ouais c’est ça et puis il y a quelques projets ,ça c’est un peu la part congrue malheureusement parce que qui sont stratégiques pour nous, je te donne un exemple très récent : Nutri-score V2. On peut pas ne pas le faire! C’est juste que c’est stratégique je veux dire en termes de visibilité etc. Mais c’est même stratégique je veux dire c’est le cœur de ce qu’on veut faire et on peut pas ne pas le faire. Alors on avait un petit financement de SPF, de Santé Publique France pour ça mais c’était pas tout à fait suffisant. Voilà, on le fait quand même quoi parce que c’est vraiment important : on peut pas ne pas faire Nutri-Score V2, ça a plein de sens pour nous et tout en plus ça va vraiment dans le sens d’une amélioration.
Le partage et les rencontres avec la communauté
Walid : la plupart du temps vous travaillez à distance ? est-ce qu’il ya des moments un peu privilégiés où vous pouvez vous retrouver avec vos contributeurs en physique ? Parce que parfois, ça aide de rencontrer des gens en vrai. Est-ce que vous organisez des journées mensuelles, annuelles, ou est-ce que vous allez sur des événements ? Comme tu as des projets qui vont se retrouver dans des événements comme le FOSDEM, par exemple, pour en profiter pour faire leur meet-up, etc. Est-ce que vous avez, vous, des moments dédiés justement à ce partage et cette rencontre ?
Alex: alors le grand moment en fait c’est les journées Open Food Facts. Ces dernières années ça tournait plutôt autour d’octobre. C’est vraiment l’événement de la communauté donc on se retrouve pendant deux jours les dernières fois on a plutôt fait sur Paris voilà c’est un peu difficile pour l’instant de déplacer ailleurs mais parce que c’est plus facile pour tout le monde d’aller à Paris etc. On a fait ça à l’académie du climat qui est un lieu super sur Paris pour faire ce genre de choses. On lui remercie beaucoup d’ailleurs. Donc c’est vraiment le lieu de la communauté là où des gens souvent passent d’une connaissance partielle du projet à une connaissance plus profonde où il y a tous ces liens d’amitié. Après, on n’avait pas de bureau avant, là depuis un an on a des bureaux donc on essaye aussi de dire aux gens si vous voulez passer mais en fait il n’y a pas tant de monde sur Paris.
Donc c’est arrivé qu’un contributeur qui soit de passage sur Paris, il vienne nous faire un coucou. Là par exemple Raphaël Odini qui travaille sur Open Prices, il est venu plusieurs fois à Paris et à chaque fois il vient un peu au bureau. Une fois par mois, l’équipe permanente on fait ce pilotage, donc on essaye d’être en physique. Donc on s’est dit tiens quand on fait le pilotage, on pourrait inviter les gens à boire un verre ensemble.
Donc on a essayé de mettre ça en place. Et après je te parlais de ces réunions, donc là c’est pas physique, mais ces réunions régulières en ligne autour d’un sujet. On fait aussi chaque mois une espèce de rencontre en ligne pour accueillir les nouveaux en quelque sorte, se voir. Pour le moment il n’y a pas un engouement monstrueux on va dire, mais c’est sympa, ça reste super sympa. C’est des occasions de connaître mieux les gens, d’avoir un feeling aussi. Mais c’est vrai que notre communauté est très distribuée. C’est un peu compliqué le physique.
Justement, certains bénévoles aimeraient beaucoup avoir une communauté plus locale. Mais pour l’instant, ce n’est pas advenu. On aimerait bien que ça devienne, mais pour l’instant, ce n’est pas advenu.
Walid : une question qui me vient là, quand tu es en train de parler, est ce que vous vous inspirez, vous regardez ce qui est fait sur d’autres projets ? On a parlé d’OpenStreetMap par exemple, etc. Est-ce qu’il y a d’autres projets avec lesquels vous discutez de ces questions d’organisation ? Qui sont des exemples pour vous et tout, ça je me… je viens d’y penser là.
Alex : oui, ben justement, OpenStreetMap c’est vraiment tous les gens de OpenStreetMap, parce que quand je suis arrivé on me dit, « regarde, nous, notre modèle c’est OpenStreetMap ». Enfin, quand Stéphane a fondé le projet, c’était vraiment son modèle.
Après on a finalement aujourd’hui on a une physionomie très différente d’OpenStreetMap parce qu’OpenStreetMap c’est une communauté où il n’y a pas quasiment pas d’équipe permanente et il y a pas mal de professionnels en fait qui participent à la communauté ce qui n’est pas du tout le cas aujourd’hui chez Open Food Facts. On est plutôt une association classique avec des membres permanents un peu centralisés. Nous on essaye, on voudrait vraiment faire émerger d’autres entités qui soutiennent Open Food Facts.
Donc on aimerait, en fait, notre modèle, disons, on va dire, de croissance, ce serait plutôt qu’il y ait Open Food Facts Allemagne, Open Food Facts Italie, Belgique, enfin voilà. Donc nous, on pousse un peu dans ce sens-là aujourd’hui. On a fait une bourse, par exemple, pour dire, « voilà, si quelqu’un veut développer Open Food Facts dans son pays ». Bon, là, la bourse pour cette année, elle est prise, mais c’était vraiment pour ça : on a mis 3000 ou 4000 euros en disant si quelqu’un veut développer, on met cet argent à disposition pour l’aider à développer, sachant qu’on n’a pas les moyens de payer un professionnel pour développer la communauté, puis on n’est pas sûr que ça fasse sens aussi, dans le sens où une communauté comme ça faut que ce soit porté au début par un élan bénévole aussi que la personne se sente investie dans cette chose là. On soutiendrait à fond aujourd’hui par exemple une personne qui voudrait développer la communauté on lui donnerait tout notre soutien même matériel etc qu’on peut pour l’aider quoi.
Walid : et les gens que vous regardez qui sont des exemples auxquels vous inspirez ou vous suivez ?
Donc là au journée OFF en fait on a fait venir justement Christian Quest c’était très intéressant parce qu’il nous a fait un talk un peu sur justement quelle est la différence lui qui connaît très bien les deux communautés, quelles étaient les différences entre OpenStreetMap et Open Food Facts et qu’est-ce qui selon lui aussi pouvait inspirer plus Open Food Facts. Je saurais pas de mémoire te rappeler les points mais voilà. Après je pense que tous dans l’équipe on est très attentif, on lit des choses qui sortent etc. Donc on est très attentif à ce qui peut se passer ailleurs. En tout cas on n’a pas de cadre théorique de lecture de ça.
C’était assez intéressant, j’ai participé à un colloque où il y avait surtout des sociologues à Strasbourg l’année dernière. C’est très intéressant de voir la perception des sociologues aussi de ce qu’on fait etc. J’aurais peut-être plus à faire dans ce sens là. Il y a quelqu’un, j’ai le nom là qui malheureusement m’échappe, mais qui est en train de faire une thèse de sociologie en fait sur le projet Open Food Facts, c’est son rapport avec la force publique. Donc c’est assez intéressant.
Walid : dernière question sur ce sujet, tu as dit que Pierre était Product Owner sur Open Food Facts, comme il y a plusieurs projets, Open Food Facts, Open Pet Facts, Open Beauty Facts, Open Product Facts, est-ce que c’est lui qui est responsable de toutes ces bases, de tous ces projets ou est-ce que c’est un peu réparti entre plusieurs personnes la responsabilité ?
Pierre, j’ai dit Product Owner mais ce n’est pas la bonne parole en fait parce qu’il n’est pas Product Owner. Il fait des tâches de… Comment tu as dit tout à l’heure ? Gestion produit ?
Walid : responsable produit.
Alex : ouais, des tâches de responsable produit. Mais il le fait sur plein de projets et il ne les fait pas tout seul en fait. Il le fait beaucoup sur l’application mobile en fait. Ça c’est vraiment là où je dirais il passe le plus clair de son temps sur cet aspect là, mais après sur des projets comme Open Food Facts, Open Product Facts, on va le faire collectivement en fait.
Pierre va explorer certains sujets un peu plus à fond et ensuite on va discuter ensemble avec toute l’équipe permanente souvent sur des sujets un peu importants mais aussi avec les bénévoles, enfin voilà, qui ont des mots à dire. Il faut vraiment s’ôter de la tête tous les modèles un peu hiérarchique etc ou de spécialisation de fonctionnalités, on est vraiment plus dans du partage etc et du consensus, de la recherche de consentement ou de consensus. Consentement souvent pour les bénévoles, c’est à dire eux, ils n’ont pas besoin de chercher le consensus, si on dit nous ça nous dérange pas que tu fasses ça, il n’y a pas d’obstacle à ce que tu fasses ça, go quoi.
Il y a certaines décisions qui vont plus demander du consensus. Parce que par exemple, sur l’équipe permanente, tu n’as pas une énergie infinie, enfin un temps infini. Donc il va falloir quand même prendre un consensus à un moment sur ce qu’on fait, ce qu’on ne fait pas.
Les défis à venir : la documentation
Walid : dernière partie, puisque l’heure tourne, ma partie habituelle que j’appelle les défis. Le premier, on en a un peu parlé, c’était la dette technique. Donc je ne sais pas si tu as des choses en plus à rajouter là-dessus, mais je pense qu’on en a déjà un peu parlé.
Alex : on en a parlé pas mal déjà, mais tu vois, un des trucs qu’on n’a pas parlé par exemple c’est la documentation. On pourrait faire mieux sur la documentation, mais voilà, comme dans beaucoup de projets, c’est pas évident de se motiver à toujours à bien documenter ou même de savoir comment documenter en fait. Ce n’est pas toujours évident. Je sais qu’aujourd’hui par exemple sur le côté serveur, le Product Opener on appelle, le produit côté serveur, je sais qu’en fait je me suis réalisé qu’en fait il fallait qu’on fasse un peu plus de pages explicatives, de grandes explications. Par exemple, le fait que les produits soient stockés dans un fichier, pourquoi, comment, qu’est-ce que ça veut dire ? Parce que souvent on a des docs très techniques, très basse, mais souvent il manque un peu aux gens le « pourquoi je fais ça ? ».
Walid : j’invite les gens qui sont intéressés par ce sujet de la documentation à aller écouter l’épisode que j’ai fait avec mon ami Fabrice Flore-Thébault qui est Technical Writer (NDLR : rédacteur technique) chez Red Hat. On parle justement de tous ces sujets et de ce que c’est qu’un Technical Writer, de la manière d’écrire, la manière dont c’est annoncé que ça doit être compréhensible et compris par les gens.
Alex : il y a des choses à aller creuser de ce côté-là. J’ai bien aimé aussi le framework, il y a un framework qui s’appelle Diátaxis sur la documentation et moi j’ai bien aimé, j’essaye de vous faire qu’on l’applique un peu.
Walid : d’accord, je connais pas du tout, j’irais regarder. En fait en gros ça dit que tu dois séparer en fait ce qui est tutoriel, les how-to qui sont pour une tâche donnée que tu veux faire, la documentation de référence qui est exhaustive mais très technique, et justement les explications, quand tu veux expliquer un peu plus pourquoi on fait des choses comme ça.
Les défis techniques
Walid : je voulais qu’on parle des défis à venir au niveau technique sur Open Food Facts. Qu’est-ce qui vous attend un peu dans les mois ou années à venir ?
Alex : donc j’ai déjà parlé du moteur de recherche, donc ça c’est vraiment un projet qu’il faut qu’on finisse rapidement en fait aussi parce qu’on est pressé de le finir qui va apporter des choses vraiment sympa. Un des gros trucs qui va arriver c’est qu’on va essayer de raviver un peu les projets justement dont tu parlais tout à l’heure Open Beauty Facts, Open Pet Food Facts, Open Product Facts. Et ce qu’on a décidé de faire en fait après justement une consultation très collective, on a décidé de rassembler les bases de données. Ce qui est aujourd’hui séparé dans différents coins. On va faire une seule base de données, je parle vraiment des fichiers dont je parlais tout à l’heure. Et vraiment mettre à jour tous les projets, parce qu’en fait ce qui se passe, OpenProductsFacts sont sur des vieilles versions du serveur.
Donc on veut vraiment les porter. Et il y a une révolution entre temps, c’est qu’on a changé la manière d’afficher, etc. Donc il y a vraiment un travail là dessus. On va vraiment mettre tout à jour et essayer à partir de là de garder tout à jour avec une base de données fusionnées et quand on livrera ce sera sur tous les projets à la fois. On va garder des univers séparés parce qu’on pense que ça fait sens pour l’utilisateur mais à l’intérieur d’un univers tu vois si c’est sur de la food et que tu scans sur l’app mobile de food et que tu scans un produit un dentifrice par exemple, bah
pof, tu te retrouveras dans l’univers Open Beauty Facts mais sans quitter l’application. On va trouver des moyens de faire ça donc ça c’est un gros défi parce que ça veut dire migration de données etc. Tout ce que quand on a un gros projet ce genre de choses. On a toujours un peu de défi encore côté infrastructure, on est toujours un peu à la limite sur l’infrastructure. Malgré tout le travail que j’ai fait, je suis en train de faire un travail pour rendre plus carrés les backups (NDLR : sauvegardes), plus carrés côté sécurité, on n’a jamais fini aussi.
Voilà, ça c’est des gros chantiers aussi, et ça c’est vraiment un appel du cœur. Si tu es admin system et que tu m’entends, viens m’aider. C’est très dur de trouver des collaborateurs en admin system.
On veut aussi aller sur des projets où on va potentiellement gérer des données plus sensibles, par exemple les listes utilisateurs, aujourd’hui, on a fait le choix qu’elles soient seulement sur le device (NDLR : appareil) pour ne pas gérer justement l’aspect privacy (NDLR : vie privée), pour avoir vraiment une privacy first. Mais en fait, on voudrait les avoir dans une base de données, ne serait-ce que pour synchroniser entre le web et le mobile, mais aussi parce qu’on pense qu’il y a des données qui peuvent intéresser des chercheurs, qui peuvent faire des stats intéressantes dedans. Donc, on sait qu’on va vouloir gérer ce genre de données, donc c’est plus sensible parce que ce que je mange, c’est quand même une donnée un peu plus sensible et surtout aussi l’autre chose qu’on essaie vraiment le chantier sur lequel on est j’espère que ça s’est senti un peu mais c’est toujours fluidifier la contribution. Permettre à plus de monde de contribuer plus facilement donc ça c’est aussi des choses qui demandent vraiment du refactoring souvent cette mise en service voilà découpé en des services plus gérables. Donc tout ça c’est vraiment dans les défis de ce qu’on a.
On a d’autres défis qui pourraient arriver parce que côté machine learning (NDLR : apprentissage automatique), on vient de savoir qu’on a un nouveau financement qui va nous permettre de numériser plus facilement, avec de l’apprentissage automatique, les tableaux de nutrition. C’est un projet en fait, où il y a eu plusieurs tentatives de volontaires de le faire mais qui à chaque fois ont échoué donc là on sait qu’on va y arriver. Il y a la maturité qu’il faut technologique et on sait comment on veut prendre le problème. Puis l’autre défi auquel on espère faire face bientôt c’est qu’on aura trop d’utilisateurs et voilà.
Walid : les problèmes de riches comme on appelle.
Alex : c’est ça.
Walid : on n’a pas du tout parlé de la machine learning mais ça vaudrait la peine d’en parler une autre fois parce que je pense qu’il y a plein de trucs à dire sur tout l’apprentissage que vous avez fait depuis tout ce temps.
Je pense que ce serait intéressant et là pour le coup il faut que je creuse un peu le sujet avant qu’on en parle parce que je ne connais pas beaucoup ce sujet là.
Alex : et puis là c’est Raphaël qui est un peu plus au cœur de ça donc ça te fera un troisième invité comme ça.
Conclusion
Walid : pour une prochaine, pour une prochaine tout à fait. On arrive à la fin alors moi je dois avouer que je suis très excité par Open Product Facts pour des raisons personnelles et professionnelles. Voilà donc voilà et c’était super.
Merci beaucoup, j’ai appris plein de trucs et j’espère que les auditrices et auditeurs aussi. J’étais très curieux de savoir suite au premier épisode comment vous gériez la collaboration avec des personnes qui sont bénévoles. J’avais pas mal de questions donc là c’était bien, tu as dit des choses très intéressantes.
Ça m’a donné aussi envie de creuser toute la partie OpenStreetMap aussi, parce que je pense qu’il y a des trucs assez chouettes à raconter aussi sur tout ça. Donc voilà, encore des épisodes à venir certainement.
Alex : Yes.
Walid : écoute, Tribune Libre, est-ce que tu veux dire un dernier mot avant qu’on se quitte ?
Alex : je voulais dire, il y a un défi qui m’est revenu à la tête que je n’ai pas dit, donc je le rajoute avant c’est notre API en fait. On a une API qui a grandi avec le temps et qui est vraiment très dur à comprendre pour beaucoup de gens.
On aimerait vraiment réussir à la refactorer. Là on a encore eu un bénévole qui est venu il y a quelques temps et qui nous a dit « mais c’est impossible à comprendre votre API « et on lui a dit « ouais on est assez d’accord ».
Mais voilà pour le changer c’est pas simple il y a toutes les questions de compatibilité etc. Et puis c’est aussi le fait que j’ai pas trop cité je voulais le citer un moment puis j’ai zappé le fait qu’on a pas mal de réutilisateurs. Il ya toute une communauté aussi de réutilisateurs de Open Food Facts, des applis qui aident les gens Vegan à choisir les bons produits des applis qui aident des femmes enceintes des gens qui veulent une nourriture halal par exemple. Il y a toute une communauté aussi de réutilisateurs qu’aujourd’hui pas mal réutilisent nos données, permettent à leurs utilisateurs de contribuer les données et c’est bien.
Il y en a d’autres qui font un peu plus partie de la communauté, dans le sens qu’ils aident le produit à grandir sur des aspects qui les intéressent, etc. Notamment quelqu’un qui va essayer de développer plus le projet en Allemagne et au Danemark, c’est quelqu’un qui réutilisait nos données à la base, qui continue à les réutiliser d’ailleurs. Donc ça c’est une communauté et une autre communauté qu’on n’a pas trouvé, mais que oui Manon avait cité je pense, c’est les scientifiques. En fait je pense tout ça les gens t’avaient cité avec Manon en fait.
Dernière chose, le cri du cœur c’est un peu ça : c’est que alors je pense pas que la solution au problème de l’alimentation, de son impact environnemental, de son impact sur les gens, soit uniquement technologique, c’est clair, mais on est un projet qui permet vraiment à plein d’autres projets d’exister aussi. Et si quelqu’un a la fibre, il est vraiment bienvenu, nous on sera super heureux de l’aider à nous aider.
A nous aider comme communauté. Et donc je pense qu’il y a vraiment plein de trucs intéressants à faire. Il y a plein de projets dont je n’ai pas parlé là qui sont hyper intéressants. Il y a plein de choses hyper intéressantes à faire autour de ce projet et on essaye d’être vraiment voilà accueillant et d’accueillir aussi la diversité.
Walid : génial, merci beaucoup d’avoir pris ton temps pour nous parler un peu de ton quotidien et de ce que vous faites chez Open Food Facts. Je suis très content qu’on ait fait ces deux épisodes parce que ça donne une meilleure idée effectivement. J’espère qu’on aura l’occasion aussi de vous entendre d’autres fois sur le podcast pour parler d’autres sujets, de l’actualité, je sais pas, à voir quoi.
Alex : merci à toi pour ce service que tu fais parce que c’est une grosse contribution aussi, la communication comme ça, de faire connaître les projets et tout. Et puis moi j’adore ce genre de podcast où on est libre de s’exprimer, où on va à fond, on prend le temps.
Walid : d’accord c’est vraiment chouette. Donc pour les auditrices et auditeurs, comme d’habitude n’hésitez pas surtout à en parler autour de vous, n’hésitez pas à me contacter sur le site internet, il y a une page qui s’appelle Nous suivre et dans laquelle vous trouverez tous les liens pour suivre le projet, me contacter, principalement Mastodon, voilà tout est sur la page nous suivre. Et à bientôt pour des nouveaux épisodes, il y a encore des trucs très très chouettes qui sont soit déjà enregistrés, soit à venir. Donc comme on dit, stay tuned. Merci, à bientôt.
Alex : génial.
Cet épisode a été enregistré le 7 mars 2024.
Licence
Ce podcast est publié sous la double licence Art Libre 1.3 ou ultérieure – CC BY-SA 2.0 ou ultérieure.