## Technique

J’ai parlé un peu de [technique](/david/2020/03/13/) récemment et la pile de technologies que l’on a utilisé pour ce projet me semble être relativement stable et compréhensible. Le code est accessible sur [Microsoft Github](https://github.com/betagouv/zam/) sous [licence AGPL-3](https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0)), on peut voir que la répartition est assez équilibrée entre Ronan et moi. C’est du Python 3 annoté pour les types qui utilise [Pyramid](https://trypyramid.com/) comme *framework* web. Rien de très exotique et c’est intentionnel considérant que nous souhaitions à un moment transmettre le produit (voir plus bas).

![Il y aura toujours Bootstrap sur Zam.](/static/david/2020/zam_meme_bootstrap.jpg "Un petit mème <em>courtesy of</em> Maïtané 😅.")

Ce qui est peut-être un peu plus inhabituel c’est de ne pas utiliser [Microsoft npm](https://www.npmjs.com/) pour gérer nos dépendances JavaScript, cela permet de bien voir ce que l’on ajoute, une sorte de [friction](https://timkadlec.com/remembers/2020-03-18-building-with-friction/) ([cache](/david/cache/2020/331eb17ffb3f4fbb5fdd8123c0dc1eeb/)) manuelle qui m’est chère lorsqu’on parle de faire tourner mon code sur la machine de beaucoup d’autres.

Les principaux défis techniques ont été de gérer des données en entrée en provenance des sites parlementaires qui n’étaient pas forcément très stables. Lorsque toute la pertinence du produit repose sur la fraîcheur des données à un moment clé du processus législatif, c’est quelque peu anxiogène de se dire que l’on n’a aucun contrôle dessus !

La plus grande victoire technique est certainement d’avoir eu envie de reprendre ce code pour la suite (voir plus bas) au lieu de partir sur quelque chose de neuf.
