Client
Nous avons été contactés par une entreprise qui fournit des services d'assurance numérique pour les entreprises et les clients particuliers. Le client est une filiale de l'une des plus grandes entreprises du secteur. Nous avons été assurés que notre collaboration bénéficierait de l'expérience et de la stabilité de l'une des plus grandes compagnies d'assurance au monde.
Description du Projet
L'entreprise travaillait à la fois dans les secteurs B2B et B2C, c'est-à-dire avec des partenaires commerciaux et des particuliers. Les propriétaires de leur plateforme web tiennent leur promesse de garantir des réclamations rapides, une assurance facile et une protection immédiate à des prix équitables et des conditions faciles à comprendre, tout en restant 100% sans papier.
Leur précédente solution web était une version MVP du produit et présentait de nombreux problèmes. Elle ne s'adaptait pas très bien et ne permettait pas la surveillance et la gestion des incidents de manière fiable, nécessitant ainsi de nombreuses opérations et ajustements manuels.
Les propriétaires de l'entreprise ont tenté de résoudre les problèmes sans changer l'approche architecturale, mais il est devenu évident que cela ne suffirait pas. Ils ont donc commencé à rechercher un ingénieur logiciel de niveau senior capable de participer à la conception architecturale et d'avoir une approche créative face aux défis complexes. C'est là qu'Elinext s'est révélé utile car nous avions la bonne personne pour le poste.
Défis
Pour résoudre les problèmes de leur produit actuel, notre client avait besoin d'un ingénieur logiciel expérimenté. Voici les principaux défis auxquels cette personne devait faire face :
- Intégrer une équipe de 8 personnes et collaborer étroitement avec le responsable technique et le chef d'équipe pour créer un service à partir de zéro
- Mettre en place et ajuster les pratiques de codage
- Proposer de nouvelles pratiques de développement et partager les connaissances au sein de l'entreprise
Liste des points problématiques que notre client cherchait à résoudre avec l'aide de notre développeur :
- Développer l'ensemble des fonctions permettant de modifier les plans d'assurance personnalisés ou les clients (fonctionnalités permettant le recalcul des plans, l'adaptation aux nouveaux calendriers de paiement, etc.)
- Mettre en œuvre l'ensemble des outils pour les cas particuliers de traitement des paiements (remboursements, remboursements partiels, rétrofacturations)
- Éliminer les problèmes de synchronisation du traitement des paiements survenus dans le système (c'est-à-dire l'écart dans le règlement des fonds, les limitations des paiements SEPA, les politiques personnalisées des tiers)
- Réduire les coûts de traitement grâce à l'intégration de services tiers
Processus
Le processus d'établissement de la connexion entre les développeurs Elinext et les membres internes de notre client n'a pas duré longtemps et comportait 4 étapes :
Étape 1 : Réunion de niveau C avec notre développeur : les problèmes ont été mentionnés et nous avons discuté des moyens de les résoudre.
Étape 2 : Réunion avec l'ingénieur principal sur le projet technique. Nous avons discuté des concepts d'architecture et des problèmes commerciaux mentionnés lors de la réunion de l'étape Étape 3 : Réflexion d'équipe sur les implémentations possibles. Comparaison des approches et des technologies pouvant aider à construire des systèmes selon les exigences.
Étape 4 : Réunion d'équipe sur l'implémentation du système. Chaque membre de l'équipe fait un rapport sur la partie de la technologie que nous prévoyons d'utiliser dans la solution. Session de Q&R et discussion sur les outils et les frameworks.
Après cela, notre développeur a rencontré les membres de l'équipe responsables de l'implémentation de la partie actuelle du système.
Solution
La solution logicielle se composait de 2 microservices pour les paiements et les factures, des bases de données SQL et NoSQL (un moteur de messagerie et un service de workflow pour l'orchestrateur d'exécution des flux).
Conformément à la philosophie événementielle, les microservices utilisaient l'event sourcing. De plus, l'approche CQRS a été choisie pour le flux de communication client-serveur.
Il y a deux modules efficaces :
Module 1 : Service de paiement
Ce module est responsable de la gestion des paiements entrants et sortants et de la connexion à différents fournisseurs pour traiter les paiements (les systèmes intégrés sont Paypal, Stripe, Klarna et l'API Deutsche Bank).
Le module inclut une approche événementielle qui permet de réduire le nombre d'erreurs de traitement et de travail manuel.
Ce module crée également des pipelines pour chaque flux d'événements. Pendant son développement, les mises à jour ont été normalisées, et grâce au développement, les opérations asynchrones ont été gérées correctement.
La combinaison de tous les abonnements de paiement dans un seul flux de mises à jour pour tous les autres microservices a éliminé la possibilité de collision, d'incohérence des mises à jour dans différents microservices et de conditions de concurrence.
Module 2 : Service de facturation
Notre client utilisait auparavant un service de comptabilité externe, mais il avait ses limites. Notre solution client a été adaptée aux exigences du système, comme la gestion des mises à jour pendant les pics de demandes et la fourniture de requêtes de données flexibles.
Résultats
Au final, le système était pleinement fonctionnel et a passé tous les tests requis. La participation de notre développeur a réduit les coûts opérationnels, augmenté la productivité de l'équipe des opérations commerciales et, par conséquent, augmenté le taux de satisfaction des clients.
Parmi les autres avantages de l'augmentation de notre ingénieur dans l'équipe de développement, nos clients ont réduit le nombre d'incidents liés aux paiements.
Nous avons intégré plus de sources de paiement, potentiellement des clients de nos clients, et nos clients ont pu alors proposer des solutions personnalisées pour les partenaires commerciaux clés.
Le système connaît un succès financier et rationalise les opérations d'assurance pour nos clients, et notre développeur a reçu des retours positifs.