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 !