Quick Connect sous son capot
En trois ans, C2S Bouygues a développé un outil innovant et puissant permettant la digitalisation de la collecte de données pour les utilisateurs en mobilité.
Découvrez aujourd’hui avec l’interview de Patrick LEFEVRE, Architecte Logiciel les enjeux de la création du produit Quick Connect : de sa conception jusqu’à son déploiement chez nos clients.
Bonjour Patrick, peux-tu te présenter ?
Je m’appelle Patrick Lefèvre, j’ai rejoint le groupe Bouygues en 1991 juste après ma formation d’ingénieur en Génie Logiciel à l’Epita.
J’ai commencé mon parcours en tant que développeur, puis chef de projet. Je suis maintenant Chef de Service et Architecte Logiciel chez C2S Bouygues.
Je travaille sur l’architecture, la conception et la réalisation du produit Quick Connect depuis sa création.
Peux-tu nous expliquer la genèse du produit Quick Connect ?
L’aventure Quick Connect démarre en 2017 avec la première édition du Easy Digital Challenge, le premier concours d’innovation à l’échelle du Groupe. C’est le projet Quick Connect qui l’a remporté. A l’origine c’était un projet présenté par une équipe de la DSI de Bouygues Immobilier et de COLAS. L’idée d’avoir un outil pour créer des formulaires associés à des équipements identifiés par QR code était née.
Un premier prototype a été développé au Spot Bouygues, le laboratoire d’innovation de Bouygues sur le campus de EPITECH/EPITA. C2S a ensuite été missionné pour développer et industrialiser le projet. J’ai pris en charge le projet compte tenue de mon expérience de dix ans sur le développement de produits similaires.
Quels ont été les principaux défis auxquels tu as dû faire face ?
Ils sont nombreux donc je ne vais en citer que quelques-uns.
Le premier défi auquel je pense a eu lieu lors de notre premier projet avec COLAS Bonnevile. Pour répondre à leurs besoins spécifiques, nous devions construire tout le socle générique du produit QuickConnect. C’est beaucoup plus complexe que de simplement répondre aux besoins spécifiques du client. Mais cela a été gagnant, cette généricité a permis de répondre aux besoins exprimés, et de faciliter la réponse aux futurs besoins non encore exprimés.
Le second défi était le suivant : l’application devait être en mesure d’afficher les formulaires correctement et rapidement. C’est la moindre des choses pour que l’utilisateur adhère à l’application. Chaque élément d’un formulaire Quick Connect doit s’afficher rapidement, alors que nous ne connaissons pas à l’avance la structure des formulaires affichés.
Le troisième défi était d’ordre technologique. Nous avions l’habitude de concevoir des solutions dans des environnements dit OnPremise. En revanche, pour QuickConnect, nous avons choisi le Cloud Azure et poussé le principe de DevSecOps tout au long de la conception.
Cette orientation Cloud a dépassé le cadre de QuickConnect, et maintenant nous avons chez C2S des dizaines de collaborateurs certifiés dans les technologies orientées Cloud. Nous utilisons différents services Azure comme les WebApi, les WebJob et AzureFunction, les services SQL, les Blob, les Container, les Queue, les EventHub et pour l’automatisation de l’infrastructure, des outils comme TerraForm. Désormais, nous employons aussi de nombreux langages de programmation, notamment DotNetCore et C#, Java, Swift, Angular et TypeScript. Tout récemment, la liste s’agrandit avec l’ajout de ReactJS, ElasticSearch et SalesForce.
De quoi es-tu le plus fier ?
Comme grande fierté, je donnerais la mécanique de scripts que nous avons intégrée dans QuickConnect. C’est un défi technique qui a été pour moi très captivant et passionnant.
Pour résumer, cette mécanique permet aux concepteurs de formulaires d’y intégrer du code, qui sera exécuté lorsqu’un de ces formulaires sera rempli par l’agent en mobilité. Ces petits bouts de code permettent d’implémenter des règles de validité, des règles fonctionnelles ou des calculs métier en s’appuyant sur les données en cours de saisie.
Cela permet de rendre plus dynamique les formulaires. QuickConnect est une application « No Code », et avec cette mécanique de script, QuickConnect devient un application « No Code ++ ».
Quels sont les différents composants qui constituent la solution, et sur quelle(s) technologie(s) repose-t-elle ?
Le produit QuickConnect est constituée de 3 parties : la partie “Application cliente” sous Android et iOS, bientôt sous PC, la partie “Administration” et la partie “Serveur back office” constituée principalement d’une API et d’un ensemble de composants techniques.
L’Application cliente est destinée aux utilisateurs sur le terrain et leur permet de remplir les formulaires qui leur sont attribués. Les utilisateurs peuvent accéder à l’historique de leurs déclarations, continuer les déclarations qu’ils ont mises en pause ou les dupliquer.
Les utilisateurs peuvent scanner des QR Codes et accéder aux rubriques et documents des équipements créés sur la plateforme QuickConnect.
Le principal composant de l’application mobile reste cependant le moteur de rendu des formulaires.
La technologie utilisée est native aux plateformes, Java pour Android et Swift pour iOS.
L’Administration est destinée aux administrateurs, aux concepteurs de formulaires et aux analystes de données. C’est une application Web Angular qui offre à nos utilisateurs les principales fonctions suivantes :
- Le concepteur de formulaire pour définir les champs des formulaires.
- Le Dashboard pour consulter les référentiels de données qui sont rattachées à l’organisation de l’utilisateur. Ces référentiels sont par exemple les utilisateurs, les équipements qui ont été déclarés sur la plateforme et aussi toutes les déclarations faites en mobilité.
- L’Administration des référentiels : Le site permet de créer les organisations du client afin d’y affecter ses utilisateurs et ses équipements.
Le Serveur BackOffice est le cœur de QuickConnect, même s’il n’est pas visible par nos clients. Il est constitué de plusieurs éléments
- La Web API. Elle est l’interface entre le coeur de QuickConnect et les programmes clients comme l’administration et les applications mobile. C’est ici qu’est implémentée la majeure partie des algorithmes QuickConnect, des traitements asynchrones et des appels de WebHook. Elle s’appuie sur son moteur de persistance des données, un peu hybride entre SqlServer, ElasticSearch et azure Blob
- Un ensemble de connecteurs pour lire ou écrire des données dans des systèmes externes. Nous avons des connecteurs SalesForce, MQTT, SharePoint et EventHub, Télégram, ….
Qu’est-ce qui différencie l’implémentation de QuickConnect des autres solutions de gestion de formulaires ?
L’interconnexion avec le SI de nos clients est toujours une forte préoccupation pour nous. La solution permet à nos clients d’implémenter leur propre connecteur pour venir injecter leurs référentiels dans la plateforme. Nous avons le mode Référentiel Maitre/Esclave ou mixte pour traiter cette interconnexion.
Et à l’inverse, avec notre mécanique de WebHooks, de connecteurs et d’extensions, nous offrons une remontée d’information dans le SI de nos clients depuis la plateforme. Les extensions nous offrent une certaine agilité pour venir implémenter du spécifique client.
Bien que QuickConnect puisse être utilisé de manière autonome, sans SI client, cette facilité d’interconnexion avec ces derniers me parait être un élément différenciant.
En deuxième élément, la mécanique du langage de Script de QuickConnect (QCScript) apporte un vrai plus pour rendre dynamique les formulaires. Elle va bien au-delà des règles de visibilité et formules de calcul que nous avons également et que nous trouvons dans les autres solutions.
Comment se gère la montée en charge du produit ?
La montée en charge est supportée par une architecture SaaS et hébergée sur le Cloud Azure. Nous supervisons en permanence la consommation des ressources (calcul et stockage). Nous ajustons continuellement ces ressources aux besoins pour assurer le bon fonctionnement de la plateforme.
Si nos clients ont des besoins de ressources spécifiques, compte tenu de leurs croissances d’activités ou de leurs cas d’usage (très consommateur de ressource), nous pouvons leur proposer des environnement dédiés, ajustés à leurs exigences.
Quels sont les enjeux de maintenance du produit ?
Comme pour tout logiciel, la règle d’or est « Il faut que cela marche ! ». Pour ça, la maintenance est pour moi un point essentiel et nécessite une place importante dans l’organisation de l’équipe. Importante car la maintenance a un impact financier direct. La correction d’un bug découvert en phase de développement ou recette est beaucoup plus facile à traiter que si le bug est remonté depuis les plateformes de production.
Une bonne gestion de la maintenance participe à limiter au maximum les temps d’indisponibilité et d’augmenter la productivité de nos utilisateurs. Elle permet d’améliorer la qualité du produit que ce soit en termes de fonctionnement mais aussi de sécurité.
Au-delà de la réaction à la suite d’une remontée de bug, nous sommes dans un cycle d’amélioration continue de nos tests unitaires automatisés et de mise en place de non-régression. Ce processus est extrêmement important pour nous.
C’est un choix d’entreprise qui est fait ici pour intégrer les notions de sécurité et d’environnement. Nous devons en permanence répondre aux nouvelles failles et aux nouveaux types d’attaque. Chez C2S, nous avons un axe de réflexion majeur sur les différentes actions possibles à notre niveau pour être le plus Green IT possible.
Comment prends-tu en compte les demandes spécifiques des clients ?
Pour la relation client, nous utilisons le logiciel Mantis pour qu’ils puissent déclarer des bugs et des demandes d’évolution. L’équipe QuickConnect peut être contactée par mail ou par téléphone, et notre équipe commerciale reste à l’écoute de nos clients.
Nous rencontrons régulièrement nos clients via des Comités de Projet et réalisons des démonstrations. A ces occasions, nous étudions les demandes spécifiques qui nous sont présentées afin de déterminer quelle est la manière la plus appropriée pour y répondre.
Deux cas peuvent se présenter :
- La demande spécifique peut être traitée par une réponse générique, intégrée au produit, et pouvant être utilisée dans d’autre cas d’usage chez d’autres clients. Dans ce cas, la demande est intégrée dans notre Roadmap Produit et une priorisation peut être envisagée si le client émetteur est prêt à financer une partie de la charge de travail.
- La demande spécifique ne peut être traitée par une réponse générique. Elle reste spécifique au besoin d’un seul client et est intégrée dans QuickConnect sous forme de WebHook ou de programmes complémentaires. Le client finance dans ce cas l’intégralité de la charge de travail.
Dès le début de la conception, nous avons prévu d’intégrer dans l’architecture de QuickConnect une mécanique de WebHook et de programmes complémentaires pour répondre aux besoins spécifiques de nos clients. Cela nous permet de venir greffer dans la plateforme des fonctionnalités dédiées à nos clients.
Peux-tu nous parler des prochaines évolutions du produit ?
Les évolutions prévues pour 2022 sont les suivantes :
- Développement de la corbeille : cette option permet, un peu comme sous Windows, de mettre dans une corbeille les éléments supprimés par les utilisateurs sur l’application d’administration. Un menu permettra de sortir de la corbeille les éléments afin d’y accéder normalement par la suite. Cette corbeille sera automatiquement vidée.
- Gestion des catalogues : cette option permet de faciliter le design de formulaire en proposant une liste prédéfinie de champs paramétrés dans un ou plusieurs catalogues. Le but est de faciliter l’exploitation de la donnée dans les rapports BI en normalisant les ID des champs
- Gestion de scanners externes : cette option permet d’améliorer l’usage de QuickConnect en proposant à l’utilisateur de connecter une douchette externe à son mobile. Le scan des QRCode est plus facile et rapide
- Application Client web : la saisie d’une déclaration sera maintenant possible depuis un PC
- Amélioration Recherche dans les familles : avec l’intégration de Elastic Search dans la plateforme, la recherche dans les familles d’équipement sera plus performante. On pourra en plus réaliser des jointures entre équipements.
- Templating Excel : Excel sera ajouté à la liste des types de document supportés par notre mécanique de document templating. Nous aurons ainsi Word, Pdf et Excel.
Merci Patrick pour cette très belle interview !
Vous avez trouvé cela instructif ? N’hésitez pas à cliquer sur ce lien pour en apprendre davantage sur la constitution technique de QuickConnect :)
Joseph Lorgeoux, Chargé de communication et Marketing