Data For Good : notre retour d’expérience

Sommaire
- C’est quoi Data For Good ?
- Zéro Déchet Sauvage
- Manager un projet technique dans un contexte associatif !
- Une réussite collective mais qui reste à finaliser !
- On remet ça l’année prochaine ?
C’est quoi Data For Good ?
Data For Good est une association loi 1901 créée en 2014 et qui rassemble plus de 4000 volontaires avec des compétences autour des données, voire en informatique d’une manière générale, qui vont mettre leurs compétences au profit de projets à impact portés par des associations, ONG, et l’ESS.
L’idée défendue par l’association est que les données peuvent servir à autre chose que construire des IA génératives ou autres systèmes de recommandation, que ces données peuvent être utiles pour notre société.
Actuellement, plus de 100 projets ont été soutenus par l’association dont leur propre projet “GenerativeAI” de l’année 2021 qui a permis de produire un guide de 112 pages pour tendre vers une IA générative plus responsable !
D’ailleurs, ce guide est à lire en tandem avec notre guide pratique pour une data responsable, et ainsi avoir une vision complète de la gestion et l’utilisation des données !
L’association est soutenue par plusieurs partenaires comme le Wagon, l’etalab ou encore le ministère de la transition écologique et solidaire.
L’association existe pour apporter des ressources technologiques et humaines à des acteurs qui œuvrent pour l’intérêt général. À ce titre, elle va offrir un cadre “vivant et bienveillant où ces projets éclosent, mûrissent et se déploient”
Les projets sont sélectionnés sur la base de leur impact et la maturité du besoin exprimé par les associations.
Parce qu’une telle association doit pouvoir fédérer autour de valeurs fortes, elle cultive et prône une culture de l’open source, du pragmatisme et de l’indépendance.
Ainsi, chaque année, c’est une dizaine de projets qui sont accompagnés par cette vision et valeurs portées par les bénévoles.
Une saison est la période durant laquelle les bénévoles se positionnent et développent l’un des projets. À l’image d’un hackathon, elle se déroule sur une courte période (3 mois pour les saisons 12 et 11) et est pilotée par un Product Owner de l’association ainsi qu’un interlocuteur « client ».
L’équipe projet est totalement autonome et doit s’organiser pour faire avancer les sujets, prioriser les actions etc. En somme, un vrai projet d’entreprise et géré de manière agile. De plus, les membres qui gèrent l’association peuvent venir débloquer des sujets ou réceptionner des demandes de services comme l’ouverture d’une machine virtuelle.
C’est au début de la dernière saison (12) que j’ai rejoint le projet Zéro Déchet Sauvage, porté par l’association MerTerre !
Zéro Déchet Sauvage
Zéro Déchet Sauvage, porté par l’association MerTerre est une application de visualisation de la collecte des déchets sur son territoire.
- MerTerre est une association dont l’objectif est de “réduire les déchets abandonnés diffus qui aboutissent en mer”. À ce titre, ils ont développé plusieurs projets comme Adopt’1 Spot ou encore Zéro Déchet Sauvage.
- Zéro Déchet Sauvage (ZDS) est une plateforme participative permettant de visualiser des informations d’évènements de collectes de déchets. On y retrouve une carte avec ces évènements et quelques informations les concernant, comme le type de milieu.
Dans le cadre de la saison 12 de Data For Good, MerTerre a sollicité l’aide de bénévoles pour concevoir une plateforme de visualisation de données à destination de collectivités. En effet, les acteurs territoriaux ont besoin d’observer ces actions pour pouvoir mener leur politique en matière de gestion de la propreté de leur territoire.
Manager un projet technique dans un contexte associatif !
C’est donc au début, soit 1 semaine après le lancement, que je suis arrivé sur ce projet. La première réunion de cadrage étant passée, il m’a fallu prendre mes marques pour comprendre l’attendu de ce projet. Or, rien n’étant fait techniquement, j’ai pris le partie de prendre le lead sur la partie technique.
En terme d’organisation, nous avons démarré par détailler les tâches à faire en les positionnant sur les 10 membres de l’équipe. Une équipe très largement hétérogène en terme de niveau technique puisque certains n’avaient (quasiment) jamais utilisé le langage de programmation retenu (Python), ni même travaillé en équipe. Mon rôle a donc été d’organiser le dépôt de code (dispo ici), en plus de jouer le rôle d’interlocuteur principal concernant les questions techniques.
Lors de cet exercice très intéressant, j’ai également accompagné certains membres dans la mise en place de leur environnement de travail à base de machine virtuelle et Docker. Aussi, quand des bugs étaient remontés, ou que des conflits éclataient entre les branches du git, j’étais le principal support opérationnel sur ces sujets. Encore une fois, un rôle tout aussi enrichissant que prenant !
Nous avons certes développé un tableau de bord, mais surtout une application web dont devait disposer « MerTerre » à la fin de la saison. En complément de cette partie interactive développée par le reste de l’équipe, j’ai pris en charge les parties intégration, déploiement et conteneurisation. La pluridisciplinarité de cette équipe s’est révélée est un atout essentiel notamment lorsque l’on travaille sur un tel projet.
Néanmoins, cela ne m’a pas empêché d’observer ce qu’ont fait les autres membres groupés en sous-équipes dédiées à un élément en particulier comme une page du tableau de bord, ou encore le traitement des données. J’ai même contribué à apporter un cadre concernant la conduite technique d’un projet. Par exemple, une structure est imposée pour créer une issue GitHub. Elle est composée d’un contexte (le pourquoi de l’issue), des objectifs à atteindre, et une liste des tâches à réaliser. Je suis même allé jusqu’à créer des templates d’issues. Maintenant, dès qu’une issue est créée, il est demandé à l’auteur de choisir entre une demande de fonctionnalité/amélioration, ou une remontée de bug. Ensuite, il ne reste plus qu’à remplir les informations demandées.
Une réussite collective mais qui reste à finaliser !
Il faut le dire, on est plutôt fier de ce que nous avons construit ensemble. Tout le monde à joué le jeu et bien que travaillant en mode Proof of Concept, nous avons livré un projet que je considère d’assez bonne qualité. Nos interlocuteurs de chez MerTerre sont d’ailleurs satisfaits de ce que nous leur avons livré et l’ont présenté lors du “demo day”, qui clôture la saison (vidéo dispo ici).
Et pourtant, il reste encore des choses à faire pour considérer ce projet comme terminé. Bien que ce résultat servira de base pour la construction de la réelle application Zéro Déchet Sauvage, il faut tout de même assurer la livraison du projet. Nous continuons donc de développer le projet des mois après la fin de la saison.
Et c’est là où le bât blesse. J’ai personnellement eu une baisse de motivation après la saison. Certes j’ai aidé sur certains sujets, comme la migration de l’application d’une machine virtuelle hébergée par Data For Good vers une machine de MerTerre, mais une partie que je considère importante reste à faire et concerne toute la partie ingénierie de la donnée (traitement, stockage). Le projet doit pouvoir vivre au gré des données qui lui sont transmises pour mettre à jour les affichages de graphiques et autres cartes. Cette partie n’est pas terminée et peine à avancer.
Je me suis alors demandé si j’avais fait des choix techniques qui ne correspondent pas avec la courte échéance. J’ai proposé Mage.ai pour la partie traitement de données, mais personne ne connaissait, ce qui a entrainé de la montée en compétence. Et à côté de ces flux de traitement de données, il y avait des développeurs qui avait fait leur scripts pour traiter des données, mais qui n’était pas visibles par l’équipe de Data Engineering… Nous avons initié un travail de gouvernance et de refonte de ces flux de traitements, et pourtant il reste des scripts à identifier pour les faire migrer. Un travail pas nécessairement plaisant à faire, et encore moins une fois que l’effervescence de la saison est passée.
On remet ça l’année prochaine ?
Ces trois mois ont été super ! Autant au niveau humain qu’au niveau technique. C’était ma première expérience dans une équipe et avec un rôle de “référent” et j’ai beaucoup apprécié. C’est une mission que je n’ai pas eu l’occasion de remplir chez Néo, et cette expérience m’a beaucoup apprit en terme de gestion d’un projet et de l’humain.
Avec du recul, j’aurai pu faire les choses autrement :
- Améliorer mon suivi. Savoir sur quoi travaillent les gens et avoir une vue globale de la technique permettent de mieux harmoniser les actions.
- Opter pour les solutions simples et avec peu de maintenance. 3 mois c’est très court. Et s’il faut faire vivre le projet, il faut que ce soit agréable pour tous pour que l’on ait envie de continuer.
- Pouvoir synthétiser les avancées du projet. Je n’en ai pas parlé mais nous avions des réunions toutes les semaines durant lesquelles les gens passaient à tout de rôle et présentaient leurs travaux. Sauf que le manque de préparation entraine des réunions longues.
- Avoir des connaissances sur l’entièreté du cycle de vie de l’application. Connaître des technologies plus orientées Ops. Pouvoir déployer avec plus de facilités une application, voire maîtriser GitHub Actions.
- Mettre l’accent sur la documentation. C’est un sujet que je pense travailler de plus en plus pour apprendre à documenter rapidement et de manière pertinente les choses, en cherchant à automatiser cette étape le plus possible (cf mon article sur Sphinx)
Avec du recul, j’aurai pu faire les choses autrement :
- Ne pas hésiter à faire ce que personne ne veut faire. Personne ne se sent d’attaque pour travailler sur l’authentification de l’appli ? Même moi ? Eh bien je m’y met ! Cela montre l’exemple et motive les gens.
- Aller vers les gens pour savoir comment ça se passe. Si j’attends la prochaine réunion pour savoir si tout le monde s’en sort, on perd en vélocité. Autant envoyer un message au référent de la sous-équipe pour avoir un retour rapide.
Je pense que travailler sur ces sujets sera autant bénéfiques pour les futurs projets Data For Good, ainsi que des projets dans ma vie professionnelle.
Vous souhaitez rejoindre la communauté Data For Good et apporter votre expertise technique dans un de ces projets ?