Cap Collectif passe en open source


un homme a entre les mains une plateforme de participation citoyenne open source

À la création de Cap Collectif, nous avons fait le choix d’éditer un logiciel propriétaire dont le code n’est pas ouvert à tous. En 7 ans, comme un bon vin que l’on garde dans une cave, notre code a été amélioré, optimisé et fiabilisé, grâce au travail de tous les développeurs qui se sont succédé chez Cap Co, mais également grâce aux nombreuses contributions de nos clients.


Aujourd’hui, le temps est venu de dévoiler au grand jour ces millions de lignes de code. Roulements de tambour : Le code Cap Collectif devient Open Source !


Un logiciel bâti sur des fondations solides


En tant que CTO - comprenez responsable technique de la plateforme, de son fonctionnement et de ses évolutions - c’est avec grand plaisir que je vous annonce que notre logiciel fait désormais partie de la grande famille du code libre, à laquelle nous devons tant.


Eh oui, notre modèle propriétaire ne nous interdisait pas d’être déjà utilisateur et contributeur de l'open source. Pour vous donner une idée, le million de lignes de code de la plateforme Cap Collectif - principalement écrit en PHP et en JavaScript - ne représente qu’un faible pourcentage des lignes de code qui permettent à la plateforme de fonctionner !


Nous utilisons de nombreux projets open source comme le framework Symfony créé en France, ReactJS, l’implémentation en PHP de GraphQL, ainsi que Docker, ElasticSearch, Redis, RabbitMQ, MariaDB, pour notre infrastructure. Ne vous inquiétez pas pour tout ce jargon. L’essentiel est de comprendre que Cap Collectif est bâti sur de nombreuses technologies libres et solides.


Pourquoi ? Car du code open source a déjà été éprouvé par des milliers de développeurs et pour une infinité d’autres projets. Ce choix nous permet d’assurer un service fiable et pérenne. Nous avons modifié ces technologies libres pour les adapter à nos besoins et partagé nos modifications à la communauté.


Nous avons par exemple créé GraphQL Doctor, contribué au développement du bundle GraphQL le plus utilisé en Symfony et rendu open source notre Design System. Peut-être que ça ne vous parle pas, mais dans le milieu, je vous assure qu'à notre modeste échelle, c’est plutôt classe :)


Ouvrir son code et soigner l’accueil des contributeurs


Notre passage en open source, incitera - nous l'espérons - des développeurs externes à contribuer à notre travail (si vous êtes développeur ou développeuse et que vous souhaitez voir la bête, rendez-vous sur Github).


Ouvrir son code ne veut pas forcément dire que des développeurs viendront y contribuer. Je dirais même que dans les faits, peu de contributeurs sont actifs sur la majorité des projets open sourcés et peu sont capables de développer des fonctionnalités majeures, qui nécessitent une bonne compréhension de l’architecture globale du projet.


Comment ça se passe en pratique ? Lorsque l’on développe un projet open source chacun travaille de son côté (on parle alors de “fork”) puis propose des modifications à la version du code principal. Ces modifications doivent ensuite être revues et acceptées par l’équipe qui gère le projet. On appelle ce modèle de développement “Fork and Branch”. Toutes les fonctionnalités développées par chacun - individuellement - ne se retrouvent pas dans le code principal d’un outil open source. La décision revient toujours à l’équipe mère de valider ou non, le travail proposé par les développeurs externes doit être relu, amélioré et validé et cela demande du temps. C’est une des raisons pour lesquelles Cap Collectif n’a pas ouvert son code dès le début.


Avec 7 ans d’ancienneté, nous avons désormais les épaules suffisantes pour accueillir des contributions externes. Une documentation technique sera prochainement accessible à tous, ainsi que les données avec lesquelles notre équipe de développeurs travaille au quotidien. Nous consacrerons du temps pour relire, contextualiser et améliorer les contributions externes afin de vous encourager à participer et accepter vos contributions. Notre roadmap produit pour 2022 est accessible à tous pour donner de la visibilité sur les développements auxquels nous donnons la priorité en interne.


Toutefois, nous continuerons à donner la priorité à la dynamique collaborative que nous avons créée avec nos clients, qui ne dépend pas de l’ouverture du code et ne requiert donc pas d’expertise technique.


Le collaboratif, ce n’est pas qu’une question de code


Chez Cap Collectif, nous sommes quotidiennement à l’écoute des demandes de nos clients, car nous savons qu’aucun projet participatif ne se ressemble. De nombreuses fonctionnalités sont directement issues de demandes clients, comme l’outil d’analyse co-conçu avec une dizaine de clients, ou récemment le scrutin secret.


C’est une réelle fierté de pouvoir dire qu’un réseau de 250 collectivités clientes participe constamment à l’évolution de la plateforme. Depuis 2017, ce réseau se réunit plusieurs fois par an. Parce que notre nombre de clients n’a cessé de croître, nous organisons désormais des webinaires, dont un certain nombre sont des ateliers de design, permettant tour à tour de recueillir le besoin de nos clients, de réfléchir avec eux à des pistes d’évolution et de leur présenter les maquettes fonctionnelles des nouveautés produit à venir.


En chiffres, nous consacrons plus de 200 jours par an aux idées de nos clients, de manière à fournir un service au plus proche de leurs besoins et in fine de celui des citoyens. Si le code de Cap Collectif n’était jusqu’alors pas libre, les fonctionnalités quant à elles, ont toujours été pensées de manière collaborative.


Open source mais open data depuis toujours


Chez Cap Collectif nous avons toujours privilégié le développement d’une API ouverte, simple à utiliser et bien documentée. C’est que l’on appelle de l’open data.


“Oula, mais qu’est-ce qu’il raconte ?”


Ne vous inquiétez pas, vous allez comprendre. Une API (Interface de programmation d’application) c’est par exemple ce qui permet à votre téléphone d’afficher la météo sans que vous n’ayez à vous rendre sur le site de Météo France. Votre widget météo, votre API donc, communique directement avec le site Météo France. En ce qui nous concerne, notre API est ce qui nous permet de donner accès à toutes les données qui transitent sur notre plateforme : compteurs de votes, de participants, de contributions, à l’exception des données personnelles évidemment, sans pour autant donner accès à notre code. Les comités de suivi ont donc accès à toutes nos données pour détecter les fraudes potentielles mais ils ne demandent pas l’accès au code car il ne présente aucun intérêt pour eux.


En bref, notre API ouverte nous permet de rendre libres et consultables les chiffres de toutes les instances Cap Collectif. C’est ce qu’on appelle de l’open data.


Open data : données libres

Open source : code libre


L’open data a toujours été une priorité absolue de Cap Collectif car c’est elle qui garantit la transparence vitale en matière de civic tech, bien plus que l’accès au code. Ce choix stratégique nous permet de pouvoir dire fièrement que Cap Collectif est une civic tech qui dispose aujourd’hui d’une API complète, stable, documentée, accessible et d’un code source libre.


Un nouveau cycle


Pour Capco, 2022 marque le début d’un nouveau cycle avec son passage en open source, la commercialisation d’une offre de participation citoyenne commune et exclusive avec le Groupe La Poste. De mon côté, c’est également l’occasion d’annoncer mon départ vers de nouvelles aventures. Arrivé comme stagiaire chez Cap Collectif, je finis cette incroyable aventure en étant fier de rendre accessible à tous plus de 7 ans de travail à concevoir la meilleure plateforme de participation citoyenne possible.


Aurélien David

CTO Cap Collectif.



Ces articles peuvent aussi vous intéresser :