Robin, stagiaire chez Framasoft et porteur de projet
Vous ne connaissez pas Robin ? C’est le stagiaire qui a conçu les pages Framasites dont nous parlions ici, ou plus exactement le logiciel libre qui les fait tourner, à savoir PrettyNoémieCMS
Si son stage est terminé, nous ne pouvions pas le laisser partir sans parler avec lui de sa démarche, ses projets, etc.
Pour le plaisir, nous avons décidé d’illustrer ce long échange de captures d’écrans de pages Framasite qui ont retenu notre attention.
Portrait de Robin
Bonjour Robin, peux-tu te présenter en quelques phrases
J’ai bientôt 30 ans et j’ai un parcours avec plein de virages qui m’ont fait passer par les cases école d’ingé, CAP cuisine, travail social… le tout avec des fortes valeurs éthiques et un intérêt particulier et assez central pour l’abolition du capitalisme (lectures, engagement militant, syndical, squat…). le dernier virage m’a amené à l’envie de créer un outil numérique d’émancipation sociale dont l’idée a pointé pendant le mouvement contre la loi travail, j’ai donc dû passer à l’apprentissage du code pour pouvoir le réaliser.
Comment on se retrouve stagiaire pour Framasoft avec ce parcours ?
Framasoft me permettait plusieurs choses intéressantes : découvrir de l’intérieur le monde du libre et de la production collaborative de services web, me faire une expérience intéressante en développant pour eux, et peut-être de faire de ce stage un tremplin pour mon projet… d’éviter enfin de me retrouver à bosser gratuitement pour une entreprise dont la finalité est le profit. J’ai fait une candidature spontanée en parlant de mon parcours de mon projet et de mes valeurs, et ça a très vite collé.
Comment as-tu été accueilli ?
J’ai rien à redire sur mon accueil, à la fois carré et sans laisser de faux espoirs et de fausses promesses et en même temps très chaleureux, rémunéré en plus ce qui est rare… Je suis quelqu’un d’autonome et je m’y suis bien retrouvé, les impératifs de la campagne de financement de fin d’année ne permettaient pas forcément à l’équipe de me tenir par la main, mais j’aime bien la liberté que ça m’a permis. et puis j’ai pu ressentir tout au long de mon stage une grande confiance dans les choix que je faisais et ça a été très encourageant.
Quelle était ta mission / ton cahier des charges ?
J’étais censé réaliser des améliorations de l’interface utilisateur du dernier service proposé par Framasoft : Framasite. L’idée était d’offrir une expérience utilisateur assez proche de la simplicité d’un WIX pour que n’importe qui, sans aucune compétences spécifique en informatique, puisse mettre en ligne un joli site web en quelques clics dans une interface très intuitive. La voie que je devais explorer pour y parvenir consistait à améliorer le CMS sur lequel était basé Framasite, en lui ajoutant tout plein d’améliorations le rendant plus simple à utiliser.
…et finalement, tu as plongé dans le code et qu’est-ce que tu as découvert ?
Framasite est basé sur GRAV, un CMS au code élégant, qui permet de générer des pages assez rapidement avec relativement peu de compétence en PHP puisque il utilise un mélange de markdown, de fichier de configuration en YML et de templates en TWIG. beaucoup d’aspects sont très automatisés, et cela amène une grande élégance du CMS, comme par exemple la génération automatique des formulaires du panneau administrateur… Pourtant cette automatisation rend très difficile d’adapter l’interface afin d’offrir des parcours utilisateurs simplifiés pour la construction des pages, comme de regrouper certains champs d’un formulaire, n’en faire s’afficher que certains, ou de manière progressive… Il est très difficile de partir de l’expérience utilisateur souhaitée pour réaliser le code correspondant, et l’on se retrouve toujours avec des solutions de « bricolage ».
L’image que j’ai en tête pour des personnes pas très familières avec le code : c’est un peu comme essayer de construire une belle armoire normande à partir d’une armoire IKEA, vu de loin ça a l’air pratique parce qu’on est pas très loin du résultat attendu, mais peu à peu on se rend compte que le design initial est très limitant, et oblige finalement à réaliser un travail bien plus laborieux et complexe que de partir d’un bon tas de planches et d’outils performants… d’autant plus que l’on me demandait que mes modifications restent compatibles avec les mises a jour de GRAV, et donc, pour filer la métaphore, que l’armoire IKEA ne soit pas cassée dans l’opération.
Bref : Un vrai casse-tête.
Donc tu n’as pas rempli ta mission ? C’est un terrrrrrible échec qui te tourmente jour et nuit (debout) ? Comment a réagi la personne qui assurait l’encadrement de ton stage ?
J’ai assez rapidement été découragé de suivre l’option d’une modification de Grav pour obtenir l’effet attendu, et je suis revenu des fêtes de fin d’année en me disant que même si mon stage durait 6 mois, je ne crois pas que j’arriverais a faire mieux pour simplifier la création de site par mon utilisateur que de l’orienter vers un hébergeur solidaire offrant une installation de wordpress à la volée… donc j’en ai parlé à l’équipe et à la personne qui m’encadrait sans trop savoir ce qui allait advenir, j’étais prêt à peut-être partir sur un autre stage… c’est pas facile de remettre en question totalement les choix fait par une équipe, je sais qu’en cuisine ou ailleurs, ça aurait signifié une fin de contrat plus ou moins houleuse…
Mais bon, mes arguments ont été plutôt convaincants, et on est assez vite arrivé a une solution qui m’est venue assez tôt dans le stage, créer un outil simple depuis le début en utilisant un framework PHP nettement plus bas niveau qu’un CMS, et surtout en partant d’une idée de ce que je souhaitais offrir à l’utilisateur plutôt que de partir de quelque chose d’inadapté pour le bidouiller.
Ça a été très motivant et en une quinzaine de jours j’ai pu réaliser une version limitée de cet outil, et j’ai eu de très bons retours, à la fois de mes amis non-codeurs qui étaient très intéressés par la simplicité avec laquelle ils pouvaient réaliser un site web mais aussi par les membres de l’équipe qui étaient très enthousiastes.
Une question de détail par un gars sur Mastodon (Llaq @lelibreauquotidien) : Hé, @Framasoft, pourquoi vous avez appelé le CMS des pages Framasite « PrettyNoemieCms » ?
Oh ben je suis amoureux d’une fille qui s’appelle Noëmie, donc le nom est venu comme ça… le premier nom c’était Easy ShowcaseSite CMS… c’est quand même mieux Noemie CMS, non ? Enfin moi je trouve. Il y a un proverbe dans le libre qui dit que c’est ceux qui font qui ont raison, et vu que c’est moi qui l’ai fait, c’est moi qui ai raison.
Comment a été accueilli ton travail, par Framasoft et par le public ?
À la fin de mon stage, l’outil a été mis en ligne et j’ai tout de suite eu pas mal de bons retours, celui qui m’a fait le plus plaisir c’était quelqu’un qui m’a dit : « c’est le plus simple des CMS ». je sais pas si on peut être aussi catégorique, mais si j’ai réussi à créer un outil auquel on pourrait mettre juste une demi-étoile sur 5 de difficulté, j’aurai vraiment réussi mon pari… En tout cas j’ai fait tout mon possible pour aller dans cette direction. Ce qui me plaît bien aussi c’est des amis non codeurs qui partagent le plaisir créatif qu’ils ressentent en utilisant l’outil, ils me disent qu’ils se sont « amusés » avec Noëmie, ce qui me ravit.
J’ai eu aussi quelques retours de bugs, rapidement corrigés, et aussi plein de personnes qui s’y sont intéressé de près en voyant le potentiel de l’outil et qui m’ont fait part d’idées d’amélioration.
Les membres de l’association m’ont fait part non seulement de leur satisfaction quant à mon travail, mais ils m’ont aussi exprimé qu’ils avaient été impressionnés par ma capacité à sortir quelque-chose d’aussi abouti et de fonctionnel en si peu de temps. Ça me fait chaud au cœur, car je débute dans la programmation, il y a un an et demi je n’avais pas encore écrit une seule ligne de code, et je ne participe à une formation que depuis moins d’un an. Je tiens au passage à remercier chaleureusement Simplon (mon organisme de formation) et son formateur Patrick qui m’ont aidé à prendre peu à peu confiance dans mes capacités de développement, et m’ont guidé dans cet apprentissage.
Quelle suite pour Noemie CMS ?
Aujourd’hui je pense que ce CMS trouve sa place à côté de ceux déjà existants, grâce a sa simplicité. il ne sera jamais aussi complexe et personnalisable qu’un WordPress ou un Grav, mais il peut trouver sa niche en étant « le plus simple des CMS».
Les contributions sur le Repository vont bon train : déjà 66 issues postées, dont 52 réalisées, 17 merge request, on peut dire que je me sens pas seul sur le projet. Plein de pistes d’amélioration se dégagent, et d’autres que moi se saisissent avec plaisir du projet. Quant à moi je suis partagé entre un projet perso qui me tient vraiment à cœur : HUmanBeing (on en reparlera en fin d’article), ma formation qui s’arrête et le besoin de trouver un moyen pour vivre qui risque de bouffer beaucoup de disponibilités et l’envie de poursuivre le travail entamé sur ce CMS. Ça fait beaucoup d’envies et malheureusement pas suffisamment de temps pour tout faire à 100%.
Dans l’idéal je reprendrais Noemie CMS depuis le début avec un framework JS frontend (Vue-React- angular) afin de rendre l’expérience utilisateur encore plus fluide (pas de rechargement de pages à chaque sauvegarde, possibilité d’aller plus loin dans la complexité du code pour proposer une expérience utilisateur toujours plus simple, et peut-être ajouter la possibilité de créer un site de plusieurs pages… enfin bon, si j’avais plus de temps et pas la nécessité de devoir faire un truc débile, plus ou moins néfaste pour les gens qui m’entourent et dans le seul but d’enrichir un patron pour pouvoir payer mon loyer ces prochains mois c’est ce que je ferais… mais bon… je crois pas que j’en aurai l’opportunité.
En attendant, je vais quand même continuer de faire avancer tout doucement les fonctionnalités, résoudre des bugs, et surtout passer du temps à transmettre aux autres contributeurs « les clefs » de mon code pour qu’ils puissent aussi se l’approprier et le faire évoluer.
Pendant ta période de stage, on t’a aussi obligé à assister à l’assemblée générale de Framasoft, tu peux nous raconter un peu comment ça s’est passé ? Ils t’ont fait quelle impression les membres de l’association ? et le fonctionnement de l’asso, qu’est-ce que tu en penses ?
Ce fut très intéressant, j’ai rencontré plein de chouettes personnes, avec un beau projet en commun. les discussions étaient très riches. je me suis parfois demandé s’ils ne manquaient pas un peu d’ambitions : en effet le bilan financier leur permettrait à mes yeux de s’engager sur plus de projets, en termes de développement direct ou de soutien financier à des projets ; en même temps je comprends tout a fait que la « sérénité financière » de Framasoft est très récente, et je n’ai pas vraiment suffisamment de compétences en gestion pour pouvoir donner un avis là dessus.
Peut-être aussi que ça m’a permis de prendre conscience d’un décalage entre la vision que j’avais de Framasoft et son projet associatif : avant mon stage j’envisageais Framasoft un peu comme une équipe associative de développeurs qui cherchaient à produire des outils libres et gratuits et de la meilleure qualité pour le plus grand nombre, pour le plaisir de pouvoir offrir des services libres et gratuits à leurs utilisateurs… peu à peu j’ai pris conscience que ce qui animait cette association était aussi très militant et axé sur des enjeux « idéologiques » dans le sens de réaliser des actions visant à faire évoluer les consciences, promouvoir le logiciel libre, lutter contre les GAFAM.
Et j’avoue que je me suis moins reconnu dans ces enjeux, Ça peut paraître paradoxal par rapport à mon engagement sur les #NuitDebout, mais en vrai même sur les Nuit debout ça n’a jamais été le côté tribune et réflexion et changements des mentalités qui m’attiraient, mais plutôt le fait de trouver un espace où l’on pouvait participer et collaborer librement avec plein de gens pour produire au mieux toutes sortes de choses sans que viennent se mêler des questions d’argent ni de hiérarchie (cuisine collaborative, organisation de la vie sur la place, résistance contre les flics…). Je crois que je suis pas très militant dans l’âme, dans le sens que j’ai pas la volonté de faire changer les consciences, ce qui m’intéresse c’est plus de partager des expériences de rapports sociaux désaliénés, et d’inviter un max de gens à me rejoindre dans le plaisir que représente le fait de cesser collectivement de se soumettre au fric et à l’état.
Je pense aussi que j’ai pu ressentir un décalage car je suis partagé quant à leur rigueur sur les moyens à employer. J’utilise quotidiennement Google, Chrome, etc. et dans mon travail c’est pareil je vise surtout à utiliser les meilleurs outils dans l’objectif d’offrir des services agréables et gratuits aux personnes qui utiliseront mes travaux sans me préoccuper de leur caractère libre ou non. J’ai tendance à privilégier les outils qui m’offrent pratiquement plus de pouvoir d’agir plutôt que des outils « libres ». Cela ne veut pas dire que je ne reste pas attentif aux effets secondaires de l’utilisation de certains trucs propriétaires, mais je ne les exclus pas d’emblée, et les préfère parfois.
Tu as eu aussi l’occasion d’intervenir pour présenter ton projet personnel, de quoi s’agit-il au juste ?
C’est ce projet qui m’a amené à l’informatique, guidé dans mon apprentissage des technos du développement web : durant les Nuits debout j’ai pris tristement conscience que 80% des projets ne se font pas car les personnes avec des initiatives se rencontrent trop difficilement. Du coup j’ai essayé de remédier à cela en faisant du lien, d’abord en notant sur un carnet, puis sous forme de fiches papier et de panneau d’affichage où chacun pouvait partager son projet pour potentiellement trouver des personnes pour le rejoindre. Ça avait plutôt bien marché, même si c’était pas du tout scalable pour parler en termes dev : en effet, en trois jours, il y avait 70 fiches de projets et d’initiatives sur le tableau d’affichage et cela devenait très complexe pour quelqu’un venant sur la place pour la première fois de trouver rapidement un projet sur lequel s’investir.
J’ai donc commencé à créer un outil, en réfléchissant à la manière de répondre au mieux à ce besoin de mise en relation dans le monde non-marchand. En effet, le monde marchand dispose des Pôle emploi et des agences d’intérim pour mettre en lien les gens sur la base de leurs compétences et des projets, alors que le non-marchand n’a pratiquement rien de plus que le bouche-à-oreille, et c’est très frustrant de voir que 80% des projets non marchands sont morts-nés faute de participants alors que très souvent les personnes potentiellement intéressées existent, mais ne sont pas dans le même réseau, le même cercle élargi de connaissance. Et on a la même problématique en ce qui concerne le partage, dans une grande majorité de cas, on se résout à aller au supermarché acheter un truc dont on a besoin alors qu’il y a probablement dix personnes dans le quartier, ou une asso qui produit cette ressource qui pourrait le donner ou le prêter gratuitement.
La troisième problématique à laquelle j’aimerais pouvoir apporter une solution avec cette plate-forme, c’est celle de la multiplication exponentielle des outils collaboratifs lorsqu’on est investi sur plusieurs projets. je reçois par exemple en ce moment les mails de 5 listes de mails bavardes, je suis inscrit sur trois systèmes de chat différents, 2 pads, github et gitlab, et un kanban, tous avec leurs adresses différentes que je perds une fois sur deux… Bref : l’enfer, alors que pourtant je crois être plutôt à l’aise avec l’outil informatique. Je rêve de quelque chose qui pourrait les centraliser sur une plate-forme, avec tous mes projets, et pour chacun des projets son agenda, sa liste de tâches, etc. — et ne plus me perdre dans un dédale d’outils collaboratifs dispersés.
L’idée de HUmanBeing c’est de répondre à ce besoin, en proposant :
- une plate-forme de mise en relations des utilisateurs sur la base des projets qu’ils créent, de leurs centres d’intérêt, de leur localisation, et de leurs compétences
- une suite d’outil collaboratifs pour tous les projets créés grâce à la plate-forme : agenda, forum-chat de discussion, liste des tâches.
- une plate-forme de partage pour que les projets et les utilisateurs puissent partager les ressources dont ils disposent, qu’ils créent et dont ils ont besoin.
- une plate-forme sans modérateur, dont la modération se fait de manière autonome par des votes de la communauté d’utilisateurs venant réguler les conflits et poser les base de ce qu’elle trouve acceptable ou non, une communauté créant ainsi sa propre légitimité autonome des lois étatiques.
L’objectif et l’ambition de cette plate-forme serait dans un premier temps d’apporter un sacré plus à tous les projets collaboratifs et non-marchands en leurs permettant de scaler et de prendre de l’ampleur au-delà des cercles de connaissances de chacun et donner du coup plus de possibilités d’agir sur le monde à tous ceux qui ont déjà cette éthique de vouloir donner du sens à leurs activités au quotidien.
L’espoir qui m’anime au-delà d’apporter ces possibilités à ces personnes, est lié à ma façon pessimiste de penser l’avenir de la société marchande et de l’état dans leur capacité à répondre aux besoins des personnes. Je m’imagine la prochaine crise économique, lorsque par exemple le ramassage des ordures s’arrêtera en raison de la faillite de ma communauté de communes et que l’accès aux soins sera devenu aussi difficile qu’en Grèce… et je me dis, si à ce moment on a un outil qui me permet de trouver 2 médecins, 4 infirmiers pour faire un centre de soins autogéré, ou alors faire une recherche de 5 chauffeurs poids lourds et 10 autres personnes pour créer une équipe de ramassage des ordures en moins d’une journée… Je me dis que cet outil pourrait être un formidable vecteur par lequel la collaboration, le partage et la gratuité pourraient s’imposer face au capitalisme sur le plan de la production matérielle de l’existence des hommes.
Et je me suis mis à le réaliser.
J’avais commencé en symphony (un framework PHP), mais c’était vraiment inadapté, donc je suis parti sur le framework METEOR JS très à l’aise pour gérer le temps réel : bien pratique lorsqu’il s’agit de collaborer. Pour l’instant j’ai une messagerie en temps réel fonctionnelle (chiffrée end to end), on peut créer un projet, inviter d’autres membres, le rechercher en fonction des compétences, localité qu’ils ont renseignée, chaque projet et chaque utilisateur peut s’exprimer publiquement grâce a un blog tout simple. je dirais que j’ai fait 80 % du travail de réflexion et 40 % de l’écriture du code avant de pouvoir en sortir une version Bêta…
Ça fonctionne pas trop mal en local, c’est même plutôt joli, mais j’ai encore des soucis à le mettre en prod sur une version de démo et pas mal de bugs, dont certains pour lesquels je n’ai aucune piste de solution… mais bon, ça viendra, et je suis hyper motivé, j’ai appris à coder pour pouvoir créer cette plateforme, ce projet me tient à cœur depuis 2 ans maintenant, je suis pas prêt de baisser les bras !
J’ai récemment réalisé une vidéo pour présenter l’avancement du travail que vous pouvez regarder ici :
Tu as demandé des retours, ils te les ont donnés, ça ne t’a pas paru trop violent ?
Ben d’une certaine manière les retours étaient très bons, ils ont été impressionnés par la quantité et la qualité du travail que j’avais réussi à réaliser en si peu de temps ainsi que par ma courbe d’apprentissage très rapide. D’autre part, l’objectif émancipateur visé par le projet à fait écho au projet associatif de Framasoft, on pourrait même dire que le projet HUmanBeing vise à inscrire la force de la création collaborative de contenus immatériels du libre (Wikipédia, Linux, etc..) dans la réalité matérielle concrète de la production des besoins des hommes.
Néanmoins à mes yeux trois points font que ce projet n’avait pas les prérequis nécessaires pour pouvoir bénéficier du soutien matériel que j’ai demandé à Framasoft (même si cette interview me permet de le faire connaître assez largement et constitue un soutien qui est toujours bon à prendre).
- Ce projet pose un rapport radical vis-à-vis de l’État et de l’économie ( « nous n’avons rien à attendre d’eux, créons un outil d’organisation qui nous permet de nous en émanciper »). Je pense que ça s’éloigne de la ligne directrice framasoftienne qui aurait plutôt tendance à vouloir créer des outils favorisant l’économie sociale et solidaire, des outils permettant plus d’interactions citoyennes (framapetition, etc.), avec des valeurs de gauche moins radicales, basées, comme une grande partie de la gauche actuelle sur les valeurs du conseil national de la résistance : un état fort et démocratique gérant la répartition des richesses et le soutien au plus démuni. Il me semble que ce temps-là est dépassé, il appartient a une époque où les hausses de productivité annuelles permettaient au capitalisme ce genre de concessions aux travailleurs, et que l’état et l’économie marchande nous démontrent jour après jour, et année après année que nous n’avons rien à attendre d’eux, si ce n’est l’intensification de l’exploitation de l’homme par l’homme et la destruction de l’écosystème permettant la vie des hommes.
- D’autre part il me semble aussi que la façon d’envisager ce projet s’écarte de l’idéal de décentralisation poursuivi par Framasoft, dans la mesure ou il se propose de rassembler sur une seule et même plateforme beaucoup de services. dans l’idéal je rêverais que HUmanBeing soit décentralisé, avec plusieurs instances communiquant entre elles sur un réseau commun, mais bon, il me semble que ça ne pourra venir qu’après avoir fait la proof of concept de cette plateforme, un début de comm dessus. Il faut bien se rendre compte que développer une application décentralisée double ou triple le temps de développement.
- enfin la façon de penser la modération de cette plateforme : autogérée et potentiellement porteuse de projets en-dehors du cadre légal (celui qui fait que les riches sont de plus en plus riches et les pauvres de plus en plus pauvres ou jetés en prison), a pu être perçue à juste titre par Framasoft comme quelque chose mettant potentiellement en danger le reste de ses activités.
Enfin bon, je reste plein d’enthousiasme pour la suite, et sais que quand je suis motivé je suis capable de déplacer des montagnes et de résoudre tout un tas de problèmes. Toujours est-il que le soutien matériel de Framasoft aurait permis de solutionner le problème majeur de savoir comment je vais payer mon loyer si je passe 10 heures par jour à développer une plate-forme non marchande…
On voit qu’il reste du boulot pour mener à bien ton projet, c’est peut-être le moment de réunir une petite équipe de gens intéressés pour contribuer ?
Tu as mis les sources quelque part en ligne ? C’est codé en quoi ? Comment on peut contribuer ?
Ben ouais, carrément ! Le projet est dès le départ très très ouvert à toutes les contributions, le « cahier des charges » s’est fait avec les contributions de plusieurs dizaines de personnes durant les Nuits debout, et au fil du temps je fais des rencontres et j’ai quelques petites contributions extérieures, plus tous mes amis qui me font des retours au fur et a mesure que j’avance dans les fonctionnalités. J’ai bien conscience que c’est un énorme projet et qu’il faudra qu’on soit nombreux à y participer pour que ça puisse exister durablement.
Le projet est donc codé en JavaScript, HTML, CSS, mongoDB autour du framework METEOR JS (et matérialize css pour le front end), qui est un outil assez facile à prendre en mains avec de très bons cours en français et en anglais et énormément de ressources. Il faudrait aussi des personnes avec des compétences en comm’ et aussi des personnes sans compétences particulières, avec juste l’envie de participer à l’aventure, et qui apporteront sans aucun doute au projet toute leur richesse.
- Alors si vous voulez plus d’info sur le projet HUmanBeing, le github est ici : https://github.com/HUB-HUmanBeing/HUmanBeing
- Vous pouvez me contacter aussi en passant faire un coucou sur le chat du projet : https://riot.im/app/#/room/#HUmanBeing:matrix.org
- Enfin toutes les contributions financières sont les bienvenues, car elles me permettent de dégager du temps pour me consacrer plus entièrement au projet. Voici le lien vers mon compte Patreon :
https://www.patreon.com/robinbanquo
Comme dirait un enfant du paradis : A vot’ bon cœur M’sieurs dames !
L’asso te remercie de ton implication et de ton travail et te souhaite une pleine réussite dans tes projets. On te laisse le mot de la fin comme d’habitude.
Je vous remercie de m’avoir fait confiance dans la création de Noemie CMS, et de m’avoir permis de faire ce qui me plaît le plus : contribuer, par mon travail, au bien-être des personnes qui m’entourent.
Je profite aussi de cette interview pour renvoyer vers mon CV (créé grâce aux pages Framasite et donc grâce a NoemieCMS), et informer les lecteurs qui auraient des pistes que je suis actuellement à la recherche d’un emploi.
Merci beaucoup de m’avoir offert cet espace d’expression, ce fut un plaisir de répondre à cette interview.