Conformité des sous-traitants du BTP, 2020 à 2021

Viaco : une plateforme SaaS serverless du BTP menée jusqu'à sa version 1.0

Viaco, aujourd'hui une marque du groupe Once For All, numérise deux outils du chantier : la pré-qualification des sous-traitants et le panneau de chantier. Pendant quatorze mois, Innéair a dirigé son équipe de développement comme tech lead et Scrum Master : elle a restructuré l'API serverless de la plateforme, changé sa stratégie de tests, écrit son processus de livraison et mené l'équipe jusqu'à la version 1.0.

Client
Viaco, plateforme SaaS B2B pour les donneurs d'ordre et les prestataires du BTP
Plateforme
Un questionnaire de conformité (loi Sapin 2, RSE) rempli une fois par chaque prestataire et pré-rempli à partir des données légales de son entreprise ; un panneau de chantier consultable par QR code
Intervention d'Innéair
Tech lead et Scrum Master de l'équipe de développement, restructuration de l'API, stratégie de tests et processus de livraison
Technologies
  • Services Node.js, TypeScript, Serverless Framework
  • AWS Lambda, API Gateway, SQS, S3
  • Données MySQL, Sequelize
  • Interface React, react-admin
  • Identité Keycloak
  • Tests et livraison Jest, GitLab CI
Grands comptes utilisateurs
  • Vinci
  • Bouygues Immobilier

Piloter l'équipe et tenir une date

Innéair a rejoint Viaco en mai 2020 comme tech lead et Scrum Master, sous la responsabilité du CTO. Elle dirigeait une équipe de quatre à cinq développeurs : elle concevait avec eux, relisait et validait leur travail, et menait les entretiens techniques de recrutement. Elle tenait les revues de sprint et animait les rétrospectives. Elle a écrit le processus de livraison de l'équipe et réalisait les mises en production : chacune passe par une copie de la production, suit un ordre de déploiement fixe et publie un changelog. Avant chaque chantier structurant, Innéair rédigeait une étude comparative, par exemple pour choisir entre une nouvelle version de l'API à côté de l'ancienne et une migration en place.

En mars 2021, Viaco attendait une nouvelle version pour convaincre plusieurs grands groupes du BTP, et le périmètre demandé dépassait ce que l'équipe pouvait livrer à la date voulue. Innéair a mesuré la vélocité réelle de l'équipe, posé les leviers possibles et proposé au CTO un arbitrage, qu'il a accepté : aucune baisse de qualité, un découpage en lots et une date tenable. Innéair a mis la version 1.0 en production à la date visée, le 8 avril 2021.

Restructurer l'API serverless

La plateforme existait depuis 2019 : une API serverless sur AWS, une application React et un back-office. En juillet 2020, Innéair a séparé les handlers HTTP des services métier, centralisé la gestion des erreurs et regroupé les fonctions par ressource, pour limiter les démarrages à froid et le nombre de fonctions à déployer. L'API est passée de 27 à 17 fonctions Lambda, et deux décisions d'architecture écrites expliquent la séparation et le regroupement.

En 2021, Innéair a piloté la nouvelle version de l'API, de son router aux partenariats entre donneurs d'ordre et prestataires, et y a livré la nouvelle API des pré-qualifications et la création directe de partenariats. Elle a aussi piloté l'analyse des questionnaires au regard de la loi Sapin 2 et de la RSE, ainsi que leur pré-remplissage à partir des données légales, et conçu la note RSE.

Tester l'API sans dépendre de l'extérieur

Innéair a d'abord publié le rapport de couverture dans la chaîne d'intégration continue. Début 2021, elle a changé la stratégie de tests de l'API : les scénarios appellent les fonctions comme le ferait API Gateway, sur une base en mémoire, avec les services externes simulés. Ils ne dépendent plus de la base de développement partagée, et le changement a fait apparaître des écarts entre le modèle de données et la base, aussitôt corrigés.

Sur toute la mission, Innéair a piloté l'effort de l'équipe : la couverture des tests de l'API est passée de 47 % à 83 %.

Des traitements asynchrones réutilisables

En 2021, Innéair a conçu les traitements asynchrones de la nouvelle version de l'API. Une demande d'export part dans une file SQS, le fichier est déposé sur S3 et l'utilisateur reçoit une notification. Les relances groupées ne rejouent que les messages en échec, et quatre consumers copiés reposent désormais sur une base commune.

Innéair a aussi refondu le service d'e-mails : des blocs composables, en français et en anglais, ont remplacé huit gabarits HTML complets.

Un poste prêt en deux commandes, des décisions écrites

Dès ses deux premières semaines, Innéair a outillé le poste de travail : son installation ne demande plus que Docker et deux commandes. Elle a aussi écrit la première décision d'architecture de l'équipe, celle qui décide de tracer les suivantes, puis la plupart de celles qui ont suivi. Elle a monté les versions de React, de Node.js, de Sequelize et de Serverless Framework, et piloté le retrait d'Elasticsearch, un service de moins à faire tourner.

À la fin de la mission, Innéair a passé le relais à un développeur de l'équipe et l'a accompagné : les décisions d'architecture, le processus de livraison et les études techniques étaient écrits et datés.

Réalisation suivante : ALM, Groupe 361 : reprise d'une plateforme d'avis clients

Ce qu'en dit l'équipe Viaco

« Vincent est l'un des développeurs les plus rigoureux et soucieux de la qualité qu'il m'ait été donné de cotoyer. »

Dimitri TeboulDéveloppeur, équipe Viaco

Votre équipe doit livrer plus sereinement ?

Innéair travaille aux côtés de votre équipe pour installer les tests automatisés, la mise en production continue et les décisions écrites, sur votre code.

Écrire à Innéair Voir les autres réalisations