Comment réussir une votation nationale en quatre étapes

Tout a commencé pour nous fin décembre, lorsque le comité de pilotage de la campagne nucléaire est venu nous faire part du projet d’organiser une votation nationale sur la question de la sortie du nucléaire, avec un cahier des charges ambitieux :

  • créer un outil informatique pour permettre l’organisation de la votaétion
  • utiliser les listes électorales officielles pour la vérification des votants, qui comportent plus de 45 millions de noms
  • permettre aux personnes non inscrites sur les listes électorales, aux mineurs de plus de 16 ans et aux étrangers résidents en France de voter
  • permettre à la fois des bureaux de vote physique, et la possibilité de voter directement sur internet
  • Tout cela prêt pour début mars, pour l’anniversaire de l’accident nucléaire de Fukushima, ce qui nous laissait à peine 3 mois

Disons simplement qu’on a fait une drôle de tête.

À peu près cette tête-là

Première étape : les listes électorales

Surtout que ces exigences ont fait apparaître plein de difficultés supplémentaires.

Prenons la question de la récupération des listes électorales. La loi permet à chaque citoyen de récupérer les listes électorales au format numérique, en s’adressant aux communes et aux préfectures. Cela paraît simple a priori, non ?

Évidemment, il était impossible de s’adresser aux 36 000 communes de France. Mais même 101 départements, cela fait 101 préfectures à contacter, ce qui n’est pas une mince affaire. Sans compter que toutes n’ont pas répondu avec la même rapidité, et qu’il a fallu en relancer certaines en envoyant des militants, pour les plus lentes.

Et ne croyez pas que les listes récupérées sont alors directement utilisables : les formats sont multiples et très différents entre les départements, voire parfois même entre les communes d’un département.  Ce sont Corinne et Yannick qui se sont chargés de cette partie du travail, avec l’aide d’autres volontaires surmotivés, pour agréger et harmoniser les centaines de fichiers que nous avions reçus. Grosses félicitations pour leurs deux mois de travail acharné.

Par exemple, rien que pour la Guadeloupe, un fichier par commune, et au moins 4 ou 5 formats différents

Deuxième étape : le développement de l’application

Ce qui nous faisait peur dans le cahier des charges, c’était le grand nombre de scénarios d’utilisations, différents mais reliés les uns aux autres.

En premier lieu, il y a deux points d’entrée pour voter : la personne peut voter en ligne, et son vote est alors directement pris en compte ; ou elle peut voter en bureaux, et sa participation est alors directement enregistrée, mais son vote ne sera comptabilisé que plus tard. Tout cela, sur les mêmes listes électorales, puisqu’il faut éviter qu’une personne qui a voté en ligne ne puisse voter en bureau. Cela signifie que les deux sous-systèmes ne peuvent être complètement indépendants et ont certains composants en communs.

En second lieu, il y avait la question de l’émargement à partir des listes électorales. Cela peut paraître aussi simple que de poser la question : “êtes vous inscrits sur les listes électorales ou non ?”. Mais il y a en réalité une multitude de sous-cas qu’il fallait réussir à prendre en compte dans l’interface : personne radiée depuis, commune dont les listes électorales étaient inexploitables, personne recemment inscrite mais dont la commune nous avait transmis une liste périmée, etc.

Cette multiplicité de scénarios d’utilisation, similaires dans l’esprit, mais différents par pleins de petits détails est généralement propice à l’apparition de multiples bugs, et rend généralement les tests plus compliqués, puisqu’il faut tester toutes les combinaisons des différents paramètres pour s’assurer qu’il n’y a pas de mauvaise interaction entre deux composants.

Il a fallu pas mal de réflexion et de travail pour s’assurer qu’une personne soit bien dirigée vers les bonnes pages dans ces différents cas, sans avoir à revenir en arrière, re-valider son numéro de téléphone, bref, que l’opération reste simple pour elle. Il ne fallait pas non plus que les participant⋅e⋅s renoncent trop vite à passer par la procédure d’émargement sur les listes, car nous voulions maximiser la part de ce type de votes.

Autre gamme de problèmes, ceux liés à la dimension de l’entreprise. La recherche de nom sur les listes électorales en est une bonne illustration. À toutes les étapes de la transmission des fichiers, des erreurs pouvaient s’y être glissé. Ainsi, certains fichiers ne comportaient pas les caractères accentués, d’autres comportait des données aberrantes ou incomplètes (comme des personnes nées dans le futur, ou il y a quatre siècles). La recherche devait donc être tolérante aux petites erreurs (comme les substitutions d’un caractère à un autre). Mais surtout, elle devait être rapide. Nous n’entrerons pas dans les détails techniques de l’implémentation d’une recherche tolérante aux erreurs sur 47 millions de noms et prénoms. Mais cela a posé problème jusqu’au lancement, où certains département affichaient des temps de recherche de plus de 16 secondes. Nous avons finalement tout résolu dans la journée de dimanche, pour ramener tous les temps de recherche… à moins de 300 millisecondes ! Défi relevé.

Troisième étape : l’ouverture des bureaux de vote partout en France

Mais le défi n’était pas seulement technique, en particulier pour le vote en bureaux : comment s’assurer que tous les résultats de bureau de vote nous soient remontés au fur et à mesure de la votation ? Comment s’assurer que tout le monde passe bien par la plateforme en ligne ? Certaines personnes participant à l’organisation de la votation n’en était pas à leur coup d’essai. Mais elles avaient l’habitude de fonctionner de manière moins automatisée. Ce fut extrêmement marginal, mais il est arrivé que des insoumis⋅es n’utilisent pas du tout la plateforme de tenue de bureau de vote, et nous remontent leurs résultats par e-mail, pensant bien faire.

Mais surtout, comment s’assurer que les groupes d’action se mobilisent à travers la France pour organiser des bureaux de vote toute la semaine ? De ce point de vue-là, c’est le travail de Mathilde Panot, coordinatrice de la campagne sur le nucléaire, et de Coline Maigre, coordinatrice des groupes d’action à la France insoumise, qui a été déterminant. Notre rôle est plus modeste en la matière : rendre l’utilisation de l’outil informatique la plus facile possible.

Nous avons donc pensé un système de connexion extrêmement simple, réduit à un lien personnel envoyé par e-mail, et un système d’ajout d’assesseur extrêmement simple lui aussi. L’application devait accompagner les assesseur⋅e⋅s tout au long de leurs journées de tenue de bureau. Ils et elles y notifiaient ainsi en temps réel, depuis leur smartphone, l’ouverture et la fermeture de leur bureau. Un système de notifications automatisées rappelait aux personnes qui ne l’avaient pas fait de fermer leur bureau de vote et de remonter les résultats. Au niveau national, il était possible de comparer les résultats annoncés au nombre d’émargements du bureau, qui nous parvenait en temps réel, et ainsi de détecter d’éventuels bureaux frauduleux.

Le vote le plus sûr était donc celui réalisé en bureaux, pour les personnes inscrites sur les listes électorales : vérification d’identité, émargement et dépouillement public. Comme nous souhaitions un niveau de sécurité maximal tout en permettant d’ouvrir le plus largement possible le vote, nous avons pris la décision d’annoncer le résultat final en quatre parties détaillées. En ligne ou en bureau et avec émargement sur les listes ou non. Même si nous avions mis en place une détection des comportements anormaux (un grand nombre de votes depuis une même ligne internet, par exemple), le vote en ligne sans inscription était évidemment moins fiable. Il ne nous paraissait donc pas possible de présenter le seul résultat agrégé.

Quatrième étape : la semaine du vote

Notre travail n’était pas fini avec le lancement du vote. Nous sommes restés de service toute la semaine pour contrôler le déroulement des opérations de vote – nous avions ainsi mis en service des panneaux de contrôle qui nous indiquaient en temps réel le nombre de votes, ou le nombre de bureaux ouverts. Cela nous permettait d’identifier rapidement les anomalies causées par des bugs que nous n’aurions pas précédemment identifiés, et de les corriger avant même qu’ils ne nous soient signalés par des utilisateurs dans les meilleurs cas.

Tiens, un pic d’activité… Un bug, une attaque ? Ah non, on vient juste d’envoyer un mail pour annoncer le vote.

Nous avons aussi profité de cette semaine pour ajouter la prise en compte de situations que nous n’avions au départ pas envisagé. Par exemple, il est vite apparu que la grande majorité des Français de l’étranger n’avaient pas de numéro français avec lequel voter en ligne. Nous avons alors imaginé et développé une procédure simplifiée qui tirait parti de la présence sur les listes électorales consulaires d’une adresse e-mail de contact (ce qui n’existe pas sur les listes communales). Il était possible de valider leur identité à l’aide de cette adresse, et donc de leur permettre de voter en un clic.

Le vote en ligne pour les personnes utilisant des numéros de mobiles dans les outre-mer français ne fonctionnait pas non plus au début. Ceci est arrivé suite à un problème avec notre prestataire : alors qu’il annonçait prendre en charge l’envoi vers les outre-mer, cela n’a pas fonctionné au lancement. Nous avons d’abord cru que le problème venait de notre côté avant de prendre contact avec lui. Les échanges d’e-mails ont été nombreux avant d’identifier le problème, qui impliquait une opération qui prenait elle-même plusieurs heures.

Nous ferons en sorte que ça n’arrive plus à l’avenir : d’une part, nous avons acquis au cours de cette semaine une bonne connaissance des problématiques techniques spécifiques à l’envoi de SMS dans les outre-mer, connaissance que nous ne possédions pas auparavant. D’autre part, nous ferons dorénavant des tests en amont sur les outre-mer en particulier.

Au total plus de 314 000 personnes ont participé, dont près d’un quart d’entre elle en bureau. Non seulement la plateforme a tenu, mais en dehors du jour de lancement ou certains bugs subsistaient encore, elle n’a pas connu de ralentissement. Le tout en louant un petit serveur… à 12€ par mois (pas plus puissant que votre ordinateur de bureau). Opération réussie !

Nouvelles fonctionnalités sur la plateforme

Comme annoncé lors de notre intervention à la Convention de Clermont-Ferrand, de nouvelles fonctionnalités pour les groupes d’action arrivent aujourd’hui sur la plateforme.

Les événements organisés par des groupes

Il est maintenant possible d’indiquer le groupe d’action à l’origine de l’organisation d’un événement.

Jusqu’à présent, les événements pouvaient seulement être organisés par des individus. Maintenant, vous pouvez à la création d’un événement ou lors de son édition indiquer qu’un groupe dont vous êtes animateur⋅rice organise l’événement que vous créez. Si un événement est organisé par plusieurs groupes d’appui, il suffit à son créateur ou sa créatrice d’ajouter comme organisateur⋅rice de l’événement des animateur⋅rice⋅s d’autres groupes. Iels pourront à leur tour indiquer que leur groupe co-organise l’événement.

Savoir que les événements sont organisés par des groupes permet plusieurs choses :

  • mettre en valeur les événements organisés par du travail collectif, de manière à mieux orienter les insoumis⋅es sur la plateforme, qui souhaiteraient participer à une action
  • mettre en valeur les groupes actifs : les événements futurs et passés de chaque groupe sont affichés sur sa page, ce qui permet de se faire une idée de son activité
  • encourager les insoumis⋅es à participer à des actions locales : chaque insoumis⋅es dispose désormais d’un « tableau de bord » où lui sont notamment suggérés les événements organisés par ses groupes

Le tableau de bord

Un nouveau tableau de bord vous permet d’accéder en un coup d’œil à l’ensemble de votre activité sur la plateforme.

Une capture d'écran du nouveau tableau de bord

Il inclut notamment :

  • La liste des événements à venir et de ceux dont vous êtes l’organisateur
  • La liste des groupes dont vous êtes membres, ainsi que ceux pour lesquels vous êtes animateur⋅ice ou gestionnaire
  • Une liste d’événements suggérés. Pour le moment, seuls sont suggérés les événements des groupes dont vous êtes membres et auxquels vous ne participez pas encore. Mais on compte bien ajouter d’autres suggestions.
  • Et, nouveauté, la liste des événements passés que vous avez organisés ou auxquels vous avez participé.

L’intérêt de ce dernier point, c’est qu’il est maintenant possible d’ajouter des compte-rendus aux événements.

Les compte-rendus d’événements

Les organisateurs d’un événement peuvent maintenant, une fois celui-ci terminé, ajouter un compte-rendu de l’événement qui apparaîtra directement sur la page de l’événement.

Par ailleurs, n’importe quelle personne qui s’était inscrite à l’événement peut venir ajouter ses propres de photos de l’événement, qui seront ajoutées et mise à disposition sur cette même page de compte-rendu[1].

Par exemple, nous venons de mettre en ligne un événement correspondant à la séance de clôture de la Convention : si vous étiez présents le jour-dit, vous pouvez dès maintenant rajouter vos photos !

L’aide en ligne

Vous êtes un peu perdus avec tous ces changements ? On vous comprend !

On réfléchit beaucoup aux façons de rendre l’utilisation de notre application plus facile. Une solution sur laquelle on travaille en ce moment, c’est de rajouter de l’aide sur toutes les pages.

Si vous êtes perdus, vérifiez donc que la page où vous vous trouvez ne comporte pas déjà le bouton « Aide », dans la barre de menu, en haut à droite.

Une capture d'écran du bouton aide

Cliquer sur ce bouton vous donne accès à une mini-visite guidée de la page sur laquelle vous vous trouvez.

Une capture d'écran de la fonctionnalité d'aide

[1] : Les photos sont partagés sous licence libre Creative Commons 3.0 BY-NC-SA. Cette licence permet à n’importe quelle personne de réutiliser la photo, y compris dans un travail dérivé, tant que l’usage n’est pas commercial, que mention de l’auteur est faite, et que le travail est partagé sous la même licence.

Les logiciels libres que nous utilisons

Depuis la fin du mois de septembre dernier, les outils numériques de la France insoumise sont intégralement basés sur des logiciels libres, et l’intégralité des données personnelles est hébergée en France.

Un logiciel libre est un logiciel dont l’utilisation, l’étude, la modification et la duplication en vue de sa diffusion sont permises, techniquement et légalement, ceci afin de garantir certaines libertés induites, dont le contrôle du programme par l’utilisateur et la possibilité de partage entre individus.

Wikipedia (29 novembre 2017)

Le logiciel libre est un des éléments clés de l’histoire de l’informatique moderne. C’est un ensemble d’outils techniques (des logiciels libres eux-mêmes) et légaux (les licences qui fournissent l’assurance qu’un logiciel reste libre). Aujourd’hui, l’internet repose sur une infrastructure de serveurs qui tournent très majoritairement grâce au système GNU/Linux. WordPress est utilisé par environ 30% (les sources varient) des 10 millions plus gros sites du monde.

Mais le logiciel libre est aussi un mouvement social. Des individus et des entreprises y participent, parce qu’elles estiment que dans ce domaine, le partage et la collaboration sont plus efficaces que la propriété privée des productions intellectuelles.

On voulait du coup produire cette liste des logiciels libres que nous utilisons à la France insoumise. D’abord par pur intérêt technique, mais aussi pour remercier et faire découvrir des projets collaboratifs qui existent parfois depuis plusieurs dizaines d’années. Forcément, cela fait un peu catalogue, mais ça permet aussi de mieux comprendre comment sont articulées les briques de la plateforme de la FI.

Ubuntu

C’est probablement un de ceux dont le nom est le plus connu du grand public. C’est une version du système d’exploitation GNU/Linux. Elle fait tourner les ordinateurs personnels d’Arthur et Guillaume, ainsi que les serveurs sur lesquels sont hébergés nos sites internets.

Elle est basée sur une autre version, existante depuis bien plus longtemps : Debian. Debian est un projet démocratique et collaboratif créé en 1993, doté d’une constitution, réunissant plusieurs milliers de volontaires à travers le monde.

WordPress

WordPress est un Système de gestion de contenu. En gros, un logiciel qui sert à faire des sites internets où l’on peut publier des pages et des articles. Il fait tourner au43.fr, lafranceinsoumise.fr ainsi que des dizaines de millions de sites internet.

Nous en avons besoin, car il faut que la publication de contenu et d’articles ne soit pas accessible aux seuls développeurs. Or, créer une interface de gestion de contenu aussi riche que celle de WordPress demanderait des années de travail.

Lorsque vous êtes sur https://lafranceinsoumise.fr, sans sous domaine particulier, vous êtes donc sur un site qui fonctionne grâce à WordPress.

Adjoint à Woocommerce, il permet de créer des boutiques en ligne. C’est ce qui est utilisé pour le site materiel.lafranceinsoumise.fr et dons.lafranceinsoumise.fr.

Pour faciliter l’utilisation de WordPress et de Woocommerce, nous utilisons quelques outils qui nous facilitent la tâche :

  • la stack roots.io nous permet de bénéficier des avantages des méthodes de développement moderne avec WordPress, et en particulier du versioning
  • Le plugin Elementor permet aux personnes qui publient du contenu de construire des pages graphiquement complexes avec un simple éditeur visuel.

Django

NationBuilder a été remplacé par une application entièrement écrite pour les besoins de la France insoumise, développée au quotidien par les auteurs de ce blog, composée de plus de 10 000 lignes de code.

Cette application est libre, écrite dans le langage de programmation Python. Vous pouvez trouver son code source en ligne.

Cette application n’est pas basée sur rien. Elle utilise ce qu’on appelle un framework : une sorte de boîte à outils logiciels qui permettent d’effectuer des tâches courantes plus facilement lorsque l’on écrit du code. Ce framework s’appelle Django. Il a été développé initialement par des journalistes américains au début des années 2000, et s’est depuis fortement complexifié pour devenir une référence majeure dans le monde du développement web. Il est associé à Django Rest Framework pour la gestion des API REST.

C’est probablement sur cette application que nous passons l’essentiel de notre temps de développement 🙂

Git

On aurait tendance à l’oublier, mais sans Git, notre travail serait complètement différent. Sans rentrer dans les détails techniques, c’est un logiciel qui permet le travail collaboratif. Lorsque que chacun fait à son poste des modifications sur un projet, Git se charge automatiquement de fusionner ces modifications. C’est comme si vous pouviez modifier chacun de votre côté un document texte, et que les corrections de tout le monde étaient automatiquement prises en compte une fois qu’elles étaient terminées.

Mailtrain

C’est un logiciel d’envoi d’emails en masse. C’est avec cet outil que nous envoyons les emails à tout⋅e⋅s les insoumis⋅es.

Mosaico

C’est un éditeur visuel d’emails, qui sert à la rédaction des messages envoyés avec Mailtrain. Cela permet à des utilisateurs non techniques de créer facilement des jolis emails par glisser/déplacer.


à partir de là, ça devient vraiment très technique

Ansible

C’est un logiciel d’automatisation de gestion de serveurs. On décrit dans des fichiers texte la configuration souhaitée d’un serveur, et celle-ci est automatiquement déployée sur nos machines.

Il est utilisé aussi pour le déploiement des applications : lorsque nous écrivons du code, nous publions les nouvelles version sur des dépôts publics (sur le compte GitHub de la France insoumise). Puis nous utilisons Ansible pour mettre à jour les serveurs depuis ces dépôts.

Ansible est aussi responsable de la gestion de nos sauvegardes automatiques. En cas de destruction totale de nos serveurs (ce qui est déjà hautement improbable), il nous faudrait quelques minutes pour déployer de nouveaux serveurs avec une configuration identique, et rétablir les données à partir de nos sauvegardes.

Côté langages

Si agir.lafranceinsoumise.fr est écrit sous Python (ainsi que l’application de billets électroniques de la convention), la plupart de nos petits projets (l’application procurations, le module d’authentification) sont écrits sous Node et Express.

Côté base de données

Redis, PostGres, SQLite.

Bref, un key-value store généraliste, et deux bases de données relationnelles selon la taille des projets.

La crypto ça sert à tout

Cet article se veut vulgarisateur. On va vous expliquer comment on a utilisé des technologies de cryptographie pour envoyer des autocollants, tracts et affiches  gratuites aux groupes d’action certifiés de la France insoumise.

Un peu de contexte :

Les groupes d’action certifiés ont droit chaque mois à une certaine quantité de tracts et d’affiches qui leurs sont livrés gratuitement dans toute la France par les volontaires du local. Ceci se fait au moyen d’un code utilisé au moment de la commande sur le site matériel.

Auparavant, ces codes était générés chaque mois et envoyés par e-mail aux groupes d’action. Cela occasionnait beaucoup de travail pour l’équipe opérationnelle, et de nombreux désagréments : ainsi un groupe qui était certifié au cours du mois devait attendre le mois suivant pour obtenir un code.

Dorénavant, les codes seront affichés directement sur la page de gestion de chacun des groupes d’action. Ils sont renouvelés chaque 1er du mois.

En gros, il s’agit d’afficher sur la page de chaque groupe un code, qui pourra être utilisé sur le site matériel pour ne pas payer les tracts et les affiches.

Les contraintes sont les suivantes :

  1. On ne veut pas avoir à créer les codes manuellement à chaque fois.
  2. Les animatrices et animateurs de groupes d’action doivent pouvoir trouver leur code sur leur page de gestion.
  3. Le site matériel fonctionne avec un système qui possède déjà une fonctionnalité de « codes promo » : autant s’y intégrer afin d’éviter du travail supplémentaire.
  4. Le site qui gère les groupes d’action et le site matériel sont deux systèmes différents, donc pas d’accès aux mêmes disques durs (donc pas de possibilité de partager une base de données).
  5. On veut éviter au maximum le « couplage », c’est à dire le fait que si un des deux sites (matériel ou groupe d’action) tombe en rade, l’autre soit entraîné avec lui.

La méthode qui vient le plus naturellement à l’esprit pour quelqu’un qui fait de l’informatique est la suivante. Elle consisterait à créer automatiquement des codes (1) pour chaque groupe d’action, et les enregistrer dans la base de données à côté des groupes. On peut ainsi les afficher (2) sur la page de chaque groupe. Ensuite, lors de l’achat sur le site matériel, si l’utilisateur rentre un code (3), on interroge le site de groupes d’action via une communication inter-serveurs (4). Problème, si le site de groupes d’action ne répond pas (à cause d’un problème réseau, parce qu’il est planté), alors le site matériel ne fonctionnera pas. Du coup, le point (5) n’est pas respecté.

C’est là que la cryptographie vient à la rescousse : elle va permettre que le site matériel puisse vérifier la validité d’un code sans contacter le système de groupe d’appui.

Voici comment est composé un code :

ThXRdZhJ9TzaI4

Th : les deux premiers caractères représentent la date de validité du code

XRdZhJ : les six caractères suivants identifient le groupe d’appui

9TzaI4 : ces six derniers caractères sont une signature

Tout le système repose dans cette signature. Lorsque le site de groupe d’action crée un code, il génère la partie rouge et la partie verte à partir de la date et d’un numéro unique associé à chaque groupe d’appui.

Puis, il utilise une clé secrète pour générer la partie bleue. Nous n’allons pas détailler l’algorithme ici, mais c’est comme si l’on multipliait la partie rouge et verte par la clé secrète pour obtenir la partie rouge. Si on ne connaît pas la clé secrète, impossible de générer cette signature.

Le site matériel connaît aussi la clé secrète. Lorsque que quelqu’un entre un code, l’opération est simple. Le site matériel commence par séparer le code en ses trois parties. Il reprend la partie de gauche, et recalcule la signature avec la clé.

Si la signature calculée par le site matériel correspond à la partie de droite du code fourni par l’utilisateur, c’est bon ! C’est forcément que le code provient bien du site de gestion des groupes d’action, puisque c’est le seul à connaître la clé secrète qui permet de générer cette signature.

En clair, si vous êtes un peu maligne ou malin (ou que vous allez directement voir comment ça marche) vous pouvez deviner les huit premiers caractères d’un code. Mais vous ne pourrez jamais deviner les suivants si vous n’avez pas la clé 😉

Deux aller-retours pour Athènes

Juste avant notre sortie de NationBuilder, en septembre, nous sommes allés en Grèce aider le mouvement Πλεύση Ελευθερίας (Plefsi Eleftherias) à créer sa plateforme numérique. C’est le mouvement fondé par Zoé Konstanpopoulou, ancienne présidente du parlement Grec.

Tout a commencé par une rencontre à Marseille entre Guillaume et Zoé, où ont été présentés les différents outils qu’avait mis en place la France insoumise au cours de la campagne, et comment étaient organisés les groupes d’appui sur la plateforme. Nous sommes tombés d’accord sur le fait que l’utilisation de NationBuilder était la solution la plus rapide – si ce n’est la seule accessible à ce stade – pour construire et animer une plateforme d’inspiration identique à la notre1.

Décision fut prise de se rendre en Grèce quelques jours pour travailler ensemble. Puis décision fut à nouveau prise que nous y allions séparément, à quelques jours d’intervalle, pour pouvoir être présents à deux points d’étapes du développement de la plateforme.

Nous avons été extrêmement bien accueillis. On a bien ri, bien mangé, bien dormi, et bien travaillé. L’équipe que nous avons rencontré était extrêmement sympathique.

Arthur a travaillé sur la page d’inscription, et a présenté plus en détail la manière dont les groupes d’appui se constituaient sur notre plateforme. Pas de modération à priori, pas de validation des inscriptions. Qui veut participer participe. Guillaume a travaillé sur le code nécessaire au fonctionnement des groupes d’appui et des événements locaux.

Le résultat est là. Comme pour la France insoumise, la constitution d’un mouvement à partir de sa plateforme passera par l’inclusion dans les équipes de développeu⋅r⋅s⋅es dont ce sera la tâche principale, et qui n’en seront pas moins des militant⋅e⋅s politiques.

Bon, sinon, on a mangé de délicieuses Moussaka, le meilleur souflaki d’Athènes, et prolongé l’été en profitant d’une chaleur de 40°C pendant qu’il en faisait quinze à Paris. Avant d’aller travailler dans les locaux de Πλεύση Ελευθερίας, on a même eu le temps d’aller faire chacun une petite visite. (NdG : Arthur est bien plus doué que moi pour prendre des selfies, mais un œil averti pourra remarquer que j’avais clairement plus de soleil dans la face. NdA : photo prise deux semaines plus tard à la même heure, à une période où le jour se raccourcit, je vous laisse seuls juges de cette affirmation).

Selfie d’Arthur devant l’Érechthéion.
Selfie de Guillaume au Parthenon.
Selfie de Guillaume devant le même Érechthéion, une dizaine de jours plus tard.

[1]: Cela pourrait surprendre, compte tenu du fait que nous venons nous-mêmes de quitter NationBuilder. Mais pour cela, nous avons du peu à peu développer nos propres outils, et ça nous a pris presqu’un an au total. Nous n’aurions pas été en mesure de sortir la plateforme avec l’ensemble de ses fonctionnalités dès le début si nous ne nous étions pas reposés sur une solution comme NationBuilder.

Lecture de la boite à idées

Nous avons participé la semaine dernière à la synthèse de la boîte à idées sur les outils. Nous voulions publier cet article en même temps que la synthèse, mais les derniers travaux sur celle-ci ne nous en ont pas laissé le temps avant ce weekend.

Nous ne manquons pas d’idées quant aux fonctionnalités d’une plateforme idéale de la France insoumise, si les contraintes techniques, de temps et de ressources n’existaient pas. Mais il nous faut toujours mettre en rapport les bénéfices que le mouvement retirerait d’un projet avec le temps qu’il nous prendrait, et les ressources quotidiennes ou hebdomadaires que nous devons ensuite investir pour son maintien en fonctionnement. Il faut donc sélectionner ces idées, choisir les plus urgentes, les plus utiles et programmer leur mise en œuvre, avec les ressources limitées à notre disposition.

La plateforme de la France insoumise, c’est aujourd’hui plusieurs centaines de milliers de lignes de code informatique. Une grande partie n’a pas été écrite par nous : c’est la douzaine de projets de logiciels libres que nous avons utilisé pour construire la plateforme. Mais la partie que nous avons directement écrite est constituée de plus d’une dizaine de milliers de lignes. C’est parfois plusieurs centaines écrites en une journée, et constamment révisées, adaptées et déboguées.

Ce n’est d’ailleurs pas sans difficultés : un logiciel est comme un édifice. On ne peut modifier une partie sans prendre le risque d’en déséquilibrer une autre. Notre travail consiste aussi à tester, concevoir, administrer l’infrastructure matérielle (serveurs, stockage des données), mettre à jour les logiciels tiers que nous utilisons. Il comprend le support technique, c’est-à-dire répondre aux questions des Insoumis qui nous écrivent via le formulaire de contact. Toutes ces tâches nous prennent environ la moitié de notre temps de travail – ce qui explique la lenteur que peuvent prendre certains développements !

Nos journées ressemblent un peu trop souvent à ça

La synthèse a été faite à partir d’une lecture complète de l’ensemble des contributions. Nous l’avons voulu lisible et claire, nous avons donc essayé de faire ressortir au maximum les convergences des différentes contributions. La lecture de cette boîte à idée nous a confortés dans les choix que nous envisageons de faire dans les prochains mois.

Lorsque nous nous demandons par quelles fonctionnalités nous pourrions améliorer la plateforme, nous avons parfaitement conscience que notre point de vue est particulier. Il est à la fois celui de personnes ayant le nez dans le guidon, et celui nourri des centaines de discussions que nous avons dans notre vie militante avec les utilisatrices et les utilisateurs des outils. Il s’enrichit aussi des résultats de dispositifs de tests comme celui que nous avons mis en place à Marseille, et dernièrement de cette boîte à idée.

C’est un point de vue riche enfin de notre propre expérience, en ce qui concerne la faisabilité technique de certaines propositions, mais aussi quant à la pertinence de certaines solutions. Un certain nombre de principes directeurs se sont ainsi dégagés très clairement au cours des années :

  • Il faut garder la plateforme unique : rassembler tous les secteurs de la France insoumise, les groupes d’action, l’action locale, la visibilité de chacun de ces éléments venant renforcer celle des autres dans un cercle vertueux 1.
  • Par conséquent, si la plateforme répond bien aux besoins, les “sites locaux”, qui ont généralement très peu de trafic, sont au mieux de l’énergie mal dépensée, au pire contre-productifs car ils dispersent le trafic 2. Par ailleurs, la plateforme nationale permet de mutualiser le travail, en faisant profiter l’intégralité du mouvement des nouvelles fonctionnalités.
  • A l’autre extrême, il vaut mieux éviter la création d’immenses espaces de discussions généralistes, conçu sans tenir compte du nombre de participant·e·s ni du temps variables qu’iels ont à y consacrer. Ça débouche systématiquement sur la tyrannie des plus actifs, au détriment de la participation du plus grand nombre 3. Nous privilégions le développement continu d’espaces de discussion spécifiques, structurés autour d’objectifs clairs, avec une grande autonomie dans la méthode de travail 4. Cela encourage une mentalité essentielle : ceux qui décident des contours de chaque idée, sont ceux qui la mettent en œuvre, pas ceux qui parlent le plus fort.

Nous allons continuer notre travail, pour fournir des outils aux différents espaces qui structurent la France insoumise, en gardant en tête ces principes. Récemment, nous avons ainsi fait apparaître sur le site les livrets thématiques comme des groupes spécifiques, sans assise géographique particulière. Tout le monde peut les rejoindre d’un clic.

Aujourd’hui, l’objectif qui nous paraît prioritaire, c’est de répondre aux nombreuses demandes liées à l’auto-organisation des groupes d’action. Elles sont diversement exprimées, mais on peut les résumer ainsi : rendre mieux visible l’activité des groupes d’action et les événements qu’ils organisent, et faciliter la communication entre les insoumis et entre les groupes proches ou moins proches pour l’organisation des événements. C’était la demande la plus souvent revenue dans la boîte à idées.

Nous sommes en bien meilleure posture qu’il y a quelques mois pour traiter cette question : lorsque nous étions encore sous NationBuilder, nous n’aurions pas été en mesure d’améliorer ces fonctionnalités. Mais maintenant qu’il s’agit d’une brique logicielle dont nous sommes les principaux auteurs, intervenir à ce niveau est devenu beaucoup plus facile.

A ce titre, nous comptons rapidement développer les éléments suivants :

  • Faire des pages de groupes un véritable outil de communication pour les groupes d’action. Permettre aux groupes d’indiquer qu’ils participent à l’organisation des événements, en tant que groupe (plutôt que seulement les individus, comme c’est le cas actuellement), rendrait leur activité visible directement sur leur page. Cela leur permettra d’y publier leurs compte-rendus d’action. Les nouveaux·elles insoumis·es pourront d’un coup d’œil visualiser le rythme d’action et le type d’actions organisés par les groupes qui les intéressent. On peut envisager une mise en avant des événements considérés les plus réussis par les insoumis⋅es.
  • Nous avons aussi quelques idées pour rendre visibles les événements organisés conjointement par plusieurs groupes. A ces fins, nous réfléchissons aussi à la façon dont nous pouvons intégrer des fonctionnalités de communication entre groupes d’appui directement sur les pages de gestion des groupes d’action.
  • Enfin, nous souhaitons mieux intégrer l’activité des groupes au reste de la plateforme. Nous travaillons par exemple sur l’affichage directement sur la page d’accueil les événements organisés par les groupes d’appui proches du lieu où se trouve la personne qui visite le site. A plus long terme (car c’est nettement plus compliqué), les mails d’actualités envoyés régulièrement pourraient comporter une partie personnalisée sur l’actualité des groupes voisins.

Les groupes d’action sont donc le chantier le plus imposant des mois à venir. Ce qui ne nous fait pas perdre de vue les autres points relevés par la boîte à idées.

Nous avons travaillé récemment sur un nouveau formulaire de contact sur le site. Il renvoie automatiquement les messages vers les personnes appropriées. C’est une première pierre dans le développement de meilleurs outils de contact en insoumis⋅es, membres de l’équipe opérationnelle, animatrices et animateurs de livrets ou d’autres espaces de la FI.

À propos des outils de formation et des ressources argumentaires, nous estimons que la tâche prioritaire doit être d’organiser le contenu déjà disponible. Le développement d’une partie du site fonctionnant comme portail vers ce contenu, avec des outils de recherche appropriés, fait partie de nos objectifs.

Notre dernier chantier concerne le financement des actions locales. La France insoumise est un mouvement, sans carte de parti. Participer à ses actions, c’est y appartenir. Il n’y a donc pas de comités, de trésoriers, ni de finances locales. C’est pourquoi n’importe qui peut se procurer du matériel, des tracts et des affiches, sur le site materiel.lafranceinsoumise.fr.

Heureusement, les Insoumis⋅es sont innovant⋅e⋅s. Les actions ne mettent pas en jeu que des tracts et des affiches. Il faut donc trouver un mode de fonctionnement en cohérence avec ce que nous avons fait jusqu’à présent. Comment financer des actions locales sans entrer dans des lourds processus administratifs de désignation de responsables, sélection et validation des dépenses ? Comment garder notre réactivité d’action ? On peut s’arranger localement : mais ce sont toujours les même, déjà les plus actifs, qui paient les photocopies ou achètent à manger pour les tables. C’est donc un élément très important pour permettre au mouvement de s’élargir.

Nous pensons que des outils numériques bien pensés peuvent apporter une réponse à cette question. Au cours du processus de la Convention, nous serons attentifs à toutes les idées émergeant sur le sujet. Nous formulerons aussi les nôtres.


Notes de bas de page (vous pouvez cliquer sur le numéro pour revenir au bon endroit dans le texte) :

1 : lorsque l’on crée un événement sur Facebook, on le crée sur Facebook pour bénéficier du trafic sur Facebook. Sur internet, il y a un effet boule de neige où la visibilité apporte la visibilité. Les sites locaux ont généralement une dimension trop restreinte, et disparaissent rapidement dans les tréfonds de Google.

2 : et en nous créant parfois du travail supplémentaire : nous recevons parfois des demandes d’aide de personnes qui n’arrivent pas à rejoindre ou quitter des groupes d’appui, et qui se révèlent n’être pas sur la plateforme nationale offrant ces fonctionnalités, mais sur des pages locales qui ne sont que des copier-coller de la plateforme

3 : Plaza podemos ou le Mouvement pour la 6ème République ont par exemple rencontré ces difficultés au cours de certaines expériences.

4 : C’est par exemple la méthode qu’avait adopté le Discord Insoumis : un regroupement par projet qui a été très efficace

La plateforme nouvelle est arrivée

Si vous êtes membre d’un groupe d’appui de la France insoumise, vous avez peut-être constaté quelques changements ce matin.

Travolta, confus par son environnement
Rare image d’un·e insoumis·e découvrant la nouvelle plateforme ce matin

Nous venons de mettre en ligne des changements qui sont le résultat de plusieurs mois de travail. Nous allons vous présenter ces nouvelles fonctionnalités et celles à venir. Mais avant, accrochez-vous pour un petit retour sur l’histoire de la plateforme de la France insoumise.

Au commencement était la plateforme.

La plateforme a été lancée le jour de l’annonce de la candidature de Jean-Luc Mélenchon, le 10 février 2016. Elle offrait alors les fonctionnalités suivantes :

  • Le système d’appui à la proposition de candidature
  • La possibilité de faire un don en ligne
  • La création et recherche de groupes d’appui
  • La création et recherche d’événements locaux
  • Les divers formulaires d’informations
  • Les outils de contribution à l’élaboration du programme

L‘outil de commande de matériel a été mis en ligne dans les jours qui ont suivi.

Pour la France insoumise, la plateforme a toujours été bien plus qu’une simple présence du mouvement sur internet. Au contraire, c’est l’outil qui a permis au mouvement de se constituer à partir de rien. La France insoumise, ce sont avant tout les groupes d’appui qui la constituent, et les événements que ceux-ci organisent, à l’aide des outils numériques à leur disposition.

Si vous avez lu la presse à ce sujet, vous savez peut-être que cette plateforme était basée sur l’outil NationBuilder. Début 2016, étant donné les forces en présence [NDG: un développeur sur son temps libre et pas beaucoup d’argent dans les caisses de la FI], c’était le meilleur choix pour obtenir toutes les fonctionnalités nécessaires à la création du mouvement.

Très rapidement, on a su qu’à long terme, l’objectif serait de remplacer une à une les fonctionnalités de NationBuilder par des fonctionnalités que nous aurions développées nous-même. Déjà, parce que l’ampleur qu’a pris le mouvement nous a vite amenés aux limites de l’outil. Ensuite, parce qu’il était clair que nous souhaitions nous orienter à terme vers du logiciel libre, en conformité avec l’Avenir en commun.

Le tumulte de la campagne

Mais améliorer une plateforme, pendant une campagne présidentielle, c’est compliqué. Entre l’orga des événements nationaux et les sites thématiques à mettre en ligne à la dernière minute, cela nous laissait pas beaucoup de temps, alors même que nous étions plus nombreux qu’aujourd’hui (coucou Florian et Alexis 👋👋)

Kermit la grenouille tapant frénétiquement sur sa machine à écrire
Rare image d’un·e développeur·se tentant d’avancer un peu entre deux événements nationaux

Malgré tout, au cours de la campagne, nous avons ajouté à notre système :

  • une nouvelle plateforme de dons (celle de NationBuilder ne répondait pas aux exigences de la loi électorale française passée la date d’ouverture des comptes de campagne)
  • une nouvelle carte des groupes d’appui et des événements locaux (avec les petits points bleus qui bougent quand on zoom) : cela devenait indispensable étant donné le nombre de groupes d’appui
  • les systèmes de consultations des insoumis pour la Convention de Lille et le second tour de l’élection présidentielle
  • un site d’actus plus joli que celui de NationBuilder
  • un outil de rédaction de mail pour les newsletters (nos mails étaient beaucoup plus beaux à la fin qu’au début)
  • la bascule de l’essentiel de la partie « contenu » du site (page d’accueil comprise) sur le même système que le site d’actus. Cela permettait une prise en main plus facile de la publication par chacun membre de l’équipe. C’était un gros chantier, mais cela nous a soulagé de beaucoup de travail de mise en ligne que nous effectuions nous même auparavant.
  • le site du programme avenirencommun.fr
  • le site des caravanes
  • un site de mise en relation des insoumis⋅es pour les procurations
  • la vente de places de cars pour les meetings, et de tickets pour les amphis sur le site de matériel
  • on est devenu potes avec le Discord insoumis et on a bossé (enfin ielles ont surtout bossé, merci à elleux 👏👏) ensemble sur le Mélenphone (maintenant Fiphone)
  • et plein d’autres petites améliorations de jour en jour
  • une API
  • un système Oauth2 d’authentification unique qui a servi pour le Mélenphone

Ce qui est fou, c’est qu’on a même pas eu de gros soucis techniques durant ces longs mois (bon une fois, on a allumé un firewall avant d’ouvrir le port SSH, et on a passé une mauvaise nuit.)

À l’issue des campagnes présidentielles et législatives, nous n’utilisions plus NationBuilder pour la plupart des fonctionnalités, à part l’essentiel : les groupes d’appui et les événements. Afin d’achever le travail, nous avons donc mis les bouchées doubles cet été.

Les nouveautés

Nous sommes aujourd’hui très fiers de vous présenter cette plateforme toute neuve, mise en ligne au cours de la nuit. En voici les principaux changements :

  • plus de NationBuilder. Tout tourne sur des outils maison ou libres, tout est maintenant hébergé en France !
  • de nouvelles sections pour visualiser rapidement les groupes dont vous êtes membres et les événements auxquels vous souhaitez participer
  • des nouveaux écrans de contrôle pour les groupes et événements. Il est maintenant facile d’afficher la liste des membres, de nous indiquer le nom des animateur⋅ice⋅s, ou de désigner d’autres membres
  • une rénovation de la gestion des groupes d’appui et des événements : vous pouvez modifier les informations de votre groupe ou événement, sans avoir besoin d’utiliser le formulaire de contact
  • les pages sont beaucoup plus rapides à se charger
  • un nouveau système de connexion : plus de mot de passe nécessaire, la connexion se fait via un message reçu dans la boîte mail (et on va encore simplifier ça bientôt)
  • tous nos sites sont enfin en https:// (merci letsencrypt)

La suite

Cette étape importante derrière nous, nous avons la voie libre pour mettre en œuvre plein de nouvelles fonctionnalités.

Au cours des amphis d’été, nous avions tiré au sort une trentaine de participant⋅e⋅s pour réaliser ce qu’on appelle des tests d’utilisabilité : faire réaliser par ces personnes, sans intervention de notre part, un certain nombre de tâches habituelles (chercher un groupe d’appui, créer un événement, réaliser un don…). Ces tests nous ont beaucoup appris, et nous ont permis de mieux comprendre les difficultés que certain⋅e⋅s d’entre vous rencontrent avec la plateforme.

Par ailleurs, vous avez été nombreux⋅ses, par message, par courrier, par téléphone, dans nos groupes d’appui, au moment des événements, à nous faire part de vos idées, critiques, suggestions, agacements, félicitations et difficultés avec la plateforme.

Tout ceci a rempli de nombreuses pages de petits carnets que nous avons organisé au fil du temps. Nous avons maintenant une idée plus claire des besoins du mouvement. Voici les trois directions prioritaires que nous avons identifiées :

  • rendre la plateforme plus facile à utiliser
  • rendre les groupes d’appui autonomes pour un maximum d’opérations
  • faciliter la communication dans les groupes et entre les groupes

Vous pouvez donc vous attendre à voir apparaître peu à peu des nouvelles fonctionnalités ! On reviendra ici vous les annoncer 😉

Arthur & Guillaume, co-responsables de la plateforme