Client
Une startup luxembourgeoise s'est adressée à Elinext pour créer un logiciel de collaboration sur des documents liés aux obligations.
Défi
L'émission d'obligations est un processus complexe. Il implique plusieurs parties qui doivent échanger des documents, faire preuve de diligence raisonnable, assurer la conformité légale et passer par plusieurs niveaux d'approbation. Parfois, les parties doivent préparer des dizaines de contrats qui ne diffèrent que par quelques clauses. Tout cela demande beaucoup de temps et d'efforts.
Une startup basée au Luxembourg a décidé d'améliorer le processus. Ils ont eu l'idée d'une application qui semi-automatiserait la création d'accords et permettrait à plusieurs parties de collaborer à leur finalisation. L'idée était si attrayante qu'elle a attiré les investisseurs des 10 plus grandes banques d'investissement mondiales.
Tout d'abord, la startup a embauché un développeur indépendant pour créer l'application. Mais le développeur s'est vite rendu compte que le projet était trop grand pour lui et a suggéré Elinext en remplacement. Nous avons rapidement mis en place la bonne équipe et la startup a décidé de collaborer avec nous.
Processus
L'équipe que nous avons réunie était assez grande. La taille a changé tout au long du projet, comptant 22 personnes en moyenne. Il s'agissait notamment de développeurs de niveau Middle à Senior spécialisés en JavaScript, C++ et PHP, d’ingénieurs d'assurance qualité, d’un ingénieur DevOps, d'un chef de projet et d'un analyste d'affaires.
Nous avons abordé le défi en utilisant les pratiques Agiles axées sur Scrum. Et avant de planifier chaque sprint, nous essayé de clarifier les exigences avec notre client pour faire face à la complexité globale du logiciel.
Les exigences et les priorités ont continué à changer rapidement, et pour rattraper le retard, nous avons dû abandonner Scrum et passer à Kanban au milieu du projet. Cela nous a aidés à passer de la refonte de l'architecture à l'amélioration du produit en tenant compte des commentaires des parties prenantes. Dans le même temps, nous avons continué à refactoriser progressivement la plateforme. Pour le développement de nouvelles fonctionnalités, nous sommes revenus à la méthodologie Scrum avec des améliorations Kanban précédemment implémentées.
Refactorisation de la Plateforme
Le développeur précédent a utilisé C++ pour créer un prototype que nous devions transformer en plateforme d'exploitation. Mais, après avoir examiné le prototype, nous avons réalisé que la plateforme ne pouvait pas être mise à niveau/étendue, on avait besoin de refactoriser la plateforme. C'est ce qu'on a fait.
Lors du refactoring, nous avons dû gérer une architecture spécifique. Il représentait des centaines de dépendances internes ainsi que des intégrations avec des applications tierces. Et comme si cela ne suffisait pas, les délais serrés et la pression croissante des parties prenantes ont rendu la tâche d'autant plus difficile.
Nous avons relevé le défi en adaptant notre approche et la composition de l'équipe. Et puis nous avons dû tester toutes ces dépendances internes et externes.
Remplacement d'un Service Tiers Basé sur un Abonnement
À l'origine, notre client avait utilisé une intégration avec l'outil tiers Contract Express (CI) pour générer des documents à partir des informations saisies dans le système. Et l'utilisation de ce service avait coûté de l'argent à la startup.
Nous avons construit notre propre analyseur interne pour avoir la même fonctionnalité que CI pour le traitement des questionnaires et des documents, ce qui a également optimisé et étendu le flux de création de documents. Grâce à cela, la création de documents est devenue plus conviviale et pratique.
Assurance de la Qualité
La principale caractéristique de la plateforme est les questionnaires remplis par les utilisateurs. Et des erreurs se produisaient généralement lorsque le système traitait les entrées des utilisateurs, convertissant les questionnaires en documents.
La manière dont le traitement est effectué dépend de deux choses: le modèle prédéfini pour un questionnaire spécifique et la logique métier du logiciel. Une erreur mineure dans l'un ou l'autre pouvait causer des problèmes, il fallait donc tester les deux. Et, en plus de cela, il existe des millions de façons dont les utilisateurs peuvent remplir les questionnaires.
Alors, comment tester un système aussi complexe et identifier les problèmes? La réponse réside dans les tests automatisés. Nous avons créé des scripts qui ont généré une multitude de questionnaires remplis au hasard. Mais nous n'avons pas limité l'assurance qualité à l'automatisation — notre équipe d'assurance qualité l'a accompagnée manuellement.
Produit
La plateforme que nous avons créée se compose de cinq applications fonctionnant ensemble. Appelons-les Modèles, Contrats, Documents, Collaborations et Gestion.
L'application Modèles permet aux utilisateurs de gérer des modèles et des questionnaires, tandis que les Contrats et les Documents convertissent les questionnaires en documents. L'application Collaborations permet à plusieurs utilisateurs de travailler ensemble sur des documents. Enfin, la Gestion est l'endroit où les administrateurs configurent les rôles et les autorisations des utilisateurs.
Faisons un parcours utilisateur à travers la plateforme.
Téléchargement de Modèles
Tout commence par un modèle. Un modèle est un fichier DOCX contenant des formules et préparé par l'administrateur système.
L'administrateur système télécharge le modèle pour que le système le convertisse en questionnaire. Avant de télécharger, il sera invité à indiquer pour quelle partie le document est destiné: à l'émetteur, au concessionnaire ou à l'utilisateur interne.
Création de Questionnaires et de Sous-modèles
Une fois le modèle téléchargé, l'administrateur passe à un autre onglet. Là, il devra spécifier une société (concessionnaire ou émetteur) et le modèle à utiliser pour créer des documents pour cette partie. Toutes les options sont disponibles dans les menus déroulants respectifs.
De plus, l'administrateur peut ajouter un sous-modèle - une fonction facultative, mais vraiment utile. Les champs de modèle sont souvent remplis d'un tas d'informations répétitives, et pour éviter de saisir à nouveau les mêmes informations, vous pouvez réutiliser un sous-modèle.
Après avoir créé un questionnaire basé sur un modèle, l'utilisateur verra plusieurs champs de types différents, tels que des listes déroulantes ou des boutons radio. Ils sont organisés en plusieurs onglets (par exemple, informations financières, dates et détails de l'échange).
De plus, une fois que certains champs sont définis, les nouveaux sous-champs sont révélés. Par exemple, si une agence de notation est spécifiée, l'utilisateur verra un menu déroulant de notations à choisir pour un émetteur spécifique.
Dès que tous les champs remplis, l'utilisateur peut enregistrer son travail sous forme de questionnaire ou de sous-modèle pour d'autres utilisations. Les champs du questionnaire seront enregistrés dans l'application Contrats. Enfin, le questionnaire peut être envoyé ultérieurement pour collaboration.
Autres Actions sur les Questionnaires
L'utilisateur peut suivre et modifier les questionnaires soumis dans l'onglet respectif. Là, il peut vérifier les différentes versions de la soumission, suivre les modifications qui y sont apportées et passer aux étapes suivantes.
Deux de ces étapes consistent sont l'attribution d'un ID à la transaction transaction conformément aux normes européennes et l'envoi d'une demande au réseau d'investissement Liquidnet. Et ces actions sont effectuées par l'intégration avec des services tiers. La troisième étape est la finalisation du document.
En outre, le questionnaire peut être téléchargé sous forme de fichier JSON pour être réutilisé dans le système. Et si l'utilisateur a besoin d'intégrer les informations avec d'autres applications, il peut les télécharger au format CSV ou dans d'autres formats populaires.
Enfin, les utilisateurs peuvent collaborer les uns avec les autres sur des documents à l'aide de la fonction de commentaire de l'application Collaborations. Si quelqu'un a laissé une suggestion au document, l'autre utilisateur verra une notification dans la colonne correspondante. En cliquant dessus, l'utilisateur accédera à la section des commentaires où il verra une modification proposée et le commentaire qui l'accompagne.
L'utilisateur peut accepter la suggestion, la rejeter ou proposer une alternative.
Collaborations
Une fois que le questionnaire a été finalisé et que sa version exécutive a été créée, la demande sur la liste recevra le nom de transaction. En cliquant sur ce nom, l'utilisateur sera redirigé vers l'application de Collaboration.
Dans cette application, l'utilisateur verra divers dossiers créés automatiquement et nommés d'après des entités telles que des Concessionnaires, des Investisseurs et des Émetteurs. Chaque dossier contient des documents associés, et le dossier que vous venez de créer sera surligné dans une couleur différente.
L'utilisateur peut maintenant afficher le document qu'il a créé et inviter d'autres personnes à y collaborer en discutant dans la section des commentaires. Chaque nouveau commentaire crée une nouvelle version du document.
Parfois, l'utilisateur peut avoir besoin de partager des documents avec des personnes qui ne sont pas enregistrées dans le système. Et pour ce faire, il peut créer un dossier public dans Collaborations, permettant à toute personne disposant du lien de collaborer sur des documents.
Résultats
En près de trois ans, nous avons créé un produit stable et performant avec une architecture sophistiquée. Au fur et à mesure que les investissements affluaient, notre client a senti sa confiance grandir et a fini par constituer sa propre équipe interne. Aujourd'hui, c'est une entreprise prospère avec une main-d'œuvre importante répartie au Luxembourg, au Royaume-Uni, au Portugal et en France.