← BibliothèqueToutes les vidéos
Tech.Rocks Summit 2021
Hypercube : retour d'expérience sur un framework maison
- Sébastien Monchamps (CTO, Bpifrance)
Tech.Rocks Summit 2021 · 9 décembre 2021 · 24 min · en français
Résumé
Depuis mars 2020, la tech digitale de Bpifrance a livré sept plateformes, dont celle des prêts garantis par l'État, et quatre banques en ligne. Pour tenir cette croissance, elles ont été construites sur une base maison, Hypercube. Framework, bibliothèque, plateforme de type progiciel ? L'équipe n'a jamais vraiment tranché : le talk propose d'y réfléchir ensemble et, pourquoi pas, de trouver des cas d'usage hors de Bpifrance.
Summary
Since March 2020, Bpifrance's digital tech team has delivered seven platforms, including the one for state-guaranteed loans, and four online banks. To keep up with that growth, they were built on an in-house foundation, Hypercube. Framework, library, packaged-software-style platform? The team never really settled the question: the talk invites the audience to think it through together and perhaps find use cases outside Bpifrance.
Thèmes : Architecture & développement
Transcript complet
Transcription automatique, à relire : les noms propres peuvent être mal orthographiés.
Bonjour, je suis Sébastien Monchamps, CTO du Digital. On se retrouve tout de suite. Tout petit déjà, il se demandait mais qu'est-ce que l'hypercube? Un progiciel, un nouveau framework, une bibliothèque ou peut-être le nouveau nom du Rubik's Cube? Sébastien Monchamp, bonjour. Bonjour. Vous êtes CTO de BPI France Digital. Pas du tout. Si, oui, tout à fait. Je vous sentais inquiet. Non, non, absolument pas. C'est toujours votre boulot. C'est toujours mon travail. Ça n'a pas changé. Ou alors, je ne suis pas au courant. Ah, écoutez, peut-être que d'ici le Tech.Rocks Summit, il va se passer des choses. Peut-être que le Rubik's Cube a tourné et que je n'en ai aucune idée. Est-ce que vous allez partager un peu justement ce que c'est que vos recherches sur l'Hypercube? Oui, bien sûr. Après cette superbe introduction, je vais essayer de rester à la hauteur et donc de présenter ce petit retour d'expérience sur notre framework maison qui s'appelle Hypercube.
À quoi ça sert? Qu'est-ce qu'on fait avec? C'est là-dessus que je m'éclipse. Bon courage. Merci. Eh bien, bonjour à tous. Du coup, effectivement, on va parler aujourd'hui d'un framework maison BPIfrance qui s'appelle Hypercube. Avant de parler du framework en lui-même et de ce qu'il y a dedans, on va juste prendre un petit moment pour comprendre d'où ça vient. Et pour ça, il faut revenir un petit peu en arrière. Il faut revenir plus précisément à la... à mi-mars 2020. Alors cette époque, vous vous en souvenez tous, c'était ce moment où on était sur nos smartphones, on était devant la télé, le confinement venait d'être annoncé, on réfléchissait un petit peu à ce que ça voulait dire pour nous tous. Donc entre deux courses au supermarché pour trouver des pâtes, on comprenait que nos enfants ne pourraient plus aller à l'école si on en avait, on comprenait qu'on allait devoir travailler de chez nous, voire plus travailler du tout. Et donc pour les entreprises aussi, Ça a été un grand moment d'angoisse, puisqu'il y a plein d'entreprises qui ont dû mettre en pause leur activité ou faire fonctionner leur travail de manière partielle.
Et donc, ce choc-là, il y avait absolument besoin de mettre en place un dispositif très puissant et très efficace, tout de suite, pour apporter une solution à la crise. C'est pour ça que le ministère de l'économie a décidé de mettre en place le prêt garanti par l'État. Le prêt garanti par l'État, le principe c'est quoi? C'est globalement que toute entreprise peut aller voir sa banque avec une attestation et demander un prêt pour couvrir le choc de la crise Covid qui équivaut jusqu'à 25% du chiffre d'affaires de l'année 2019 qu'elle a réalisé. Et vu l'urgence de la situation, le ministère de l'économie a souhaité mettre en place ce prêt en cinq jours. Tout le dispositif. Donc les différents services de l'État, les administrations ont été... et consulté pour savoir qui avait des équipes IT qui étaient en mesure de réaliser ce dispositif-là en cinq jours. Et le retour a été que, globalement, personne ne savait vraiment comment le faire.
BPIfrance, la banque publique d'investissement, faisait partie de cette discussion. Et il s'avère que BPIfrance est tout à fait légitime pour traiter ce genre de sujet, puisque BPIfrance, c'est la banque publique d'investissement, mais c'est la banque des entrepreneurs qui a pour mission de soutenir et de renforcer l'économie française. Et BPIfrance a proposé qu'une petite équipe qui venait juste d'être créée depuis trois mois et qui travaille un peu différemment des autres, se charge de construire la plateforme d'attestation pour les prêts garantis par l'État. Cette équipe, c'est la Tech Digital. Et donc, du coup, l'État a accepté cette proposition. Et donc, mon téléphone a sonné. Là, on est le jeudi 16 mars 2020, il est 10h57. C'est un moment évidemment dont toute l'équipe se souvient très très bien. Donc on nous explique qu'on a cette plateforme à monter, on a 5 jours, ça doit sortir le mercredi 25 mars à 8h du matin, sans faute, puisque c'est annoncé à la télévision au journal de 20h, donc nous n'avons pas le choix, le mur est devant nous, il faut s'y mettre.
Donc très vite, on se lance dans un design un peu, je ne vais pas dire marathon, mais plutôt sprint, parce que là, vu le timing, on n'avait pas le choix. On construit pendant la nuit un premier design de... l'application, on commence à le développer dès le lendemain matin à 9h, et puis quelques tests de charge et de sécurité plus tard, on a une version prête qui sort quelques minutes avant la deadline du mercredi. Donc on est... Quelques jours après la sortie en production, les choses se passent bien, on est vachement soulagé d'avoir relevé ce défi, et aussi bien sûr hyper heureux. Et puis on se dit, bon, on avait mis de côté ce qu'on était en train de faire pour s'occuper de ça, on va pouvoir... tourner à nos affaires. Sauf que là, on est le 28 mars et mon téléphone sonne. Au bout du fil, c'est la région Auvergne-Rhône-Alpes. Il faut savoir que la région Auvergne-Rhône-Alpes, c'est économiquement parlant la deuxième plus grosse région de France après l'Île-de-France. Et globalement, ce que nous dit la région Auvergne-Rhône-Alpes, c'est que le PGE, c'est un super dispositif, mais il y a un certain nombre d'entreprises qui sont trop petites pour que les banques leur accordent ce type de crédit.
Et donc, du coup, il y a besoin d'un dispositif complémentaire qui s'appelle le prêt rebond, qu'il faudrait mettre en place pour pouvoir sauver toutes ces petites entreprises en région Auvergne-Rhône-Alpes. Donc on se dit, pas de problème, on a fait quelque chose, on peut essayer de le dupliquer pour ce use case. Sauf que ce que nous demande la région Vendée-Rhône-Alpes, ce n'est pas de construire une attestation simple, c'est de construire beaucoup plus que ça, c'est de construire toute une plateforme de crédit front to back, de A à Z, qui permette d'octroyer ces crédits et d'en suivre le fonctionnement. C'est un autre chantier, beaucoup plus costaud que le précédent, et la région Vendredi-Alpes nous donne trois semaines pour le faire. On refait une équipe, on refait une task force, on travaille jour et nuit, on fait face à quelques grosses difficultés puisque ce n'est initialement pas le type de plateforme que l'on construit. Et finalement, on arrive avec un design de plateforme ouverte où il y a un certain nombre de choses que l'on ne peut pas faire.
On fait nous, techniquement parlant. Un certain nombre de choses qu'on confie à des prestataires auxquels on se connecte par API. Un exemple, par exemple, vu que tout devait se faire à distance, l'identification formelle des clients, on a dû la faire par face matching. On a fait ça avec la plateforme Hubble. Et donc, du coup, au bout des trois semaines, on arrive avec une première version qui a ses faiblesses, mais qui fonctionne bien et qui part en production. Et au bout de quelques jours, on s'aperçoit que, évidemment, c'est dur puisqu'il y a des milliers d'entreprises qui se présentent au guichet, mais on y arrive, la plateforme tient et les crédits commencent à être décaissés. Du coup, on est quelques jours après ces trois semaines, vers fin avril, et on se dit que maintenant qu'on a réussi ces deux plateformes, on va pouvoir retourner à nos affaires initiales, qui étaient de construire la banque en ligne de BPIfrance. Sauf que là, le téléphone sonne.
Le téléphone sonne une fois, deux fois, plusieurs fois. Et on se retrouve à fin juin avec six acteurs différents qui nous demandent de construire en tout neuf plateformes. Et là, on comprend qu'il y a quelque chose qui est en train de se passer. Et on a tout de suite une conviction, c'est qu'on va pouvoir aider ces gens. Qui sont dans une urgence absolue, puisque d'aucuns vont demander à construire une plateforme pour aider un secteur d'activité en particulier. une région en particulier, d'autres c'est pour aider spécifiquement les entreprises les plus en difficulté, l'urgence est partout. Donc on doit répondre à tout cela. On sait qu'on a une capacité à le faire, mais on a besoin de quelque chose qui nous permette de scaler un minimum la partie technique de ce qu'on fait, puisque là on a scalé uniquement avec des personnes, puisque l'équipe est passée du mois de mars de 30 personnes. À 150 personnes au mois de juin. Et donc, du coup, on décide de construire Hypercube. Hypercube, l'enjeu, le principe de ce framework, c'est de dire qu'on a besoin de construire ces activités front-to-back de plateforme très vite, mais sans sacrifier la qualité.
Pourquoi? Parce que dans le monde bancaire, si on sacrifie la qualité d'une plateforme de crédit, on fait très vite face à des problèmes réglementaires extrêmement forts parce qu'on n'a pas réalisé tel contrôle comme il fallait, parce que le client a des écarts, des erreurs dans ses échéanciers, etc. C'est des choses qui sont très encadrées par la loi et sur lesquelles on ne peut pas faire d'erreur. Donc la philosophie initiale d'Hypercube, c'est vraiment de dire, on va construire un framework qui nous permet d'aller vite et qui nous permet de garantir le niveau de qualité minimale que la réglementation exige. Une fois qu'on a travaillé à poser les bases d'Hypercube, on a construit une première version pendant... l'été 2020. Et partant de là, on commence à faire face à tout un tas de problématiques propres à la construction d'un framework maison. Qu'est-ce qui est custom? Qu'est-ce qui va être générique? Et donc du coup, on a dû innover sur tout un ensemble d'aspects.
Alors, il y a beaucoup de choses qu'on pourrait dire sur le framework. Je vais essayer de prendre trois exemples et trois axes différents d'innovation sur lesquels on a dû travailler pour pouvoir transformer ce framework en une réalité qui fonctionne. Le premier axe d'innovation, il est technique. Il y a eu un moment où on commençait à sortir de nombreuses plateformes en production les unes après les autres, et il s'avère que tout le monde avait besoin en même temps d'avoir sa plateforme. Donc la difficulté, c'était que, pour faire simple, Une équipe qui travaillait sur une plateforme, une fois que cette plateforme était en production et était à peu près stable, il fallait absolument qu'elle puisse aller travailler sur la plateforme d'à côté, indépendamment du fait qu'on arrivait à mutualiser des composants. Et donc du coup, on s'est retrouvé dans une situation où on avait besoin vraiment rapidement d'arriver à passer les plateformes dans ce que nous, on appelle un mode no-run. Le mode no-run, c'est quoi? C'est en fait la capacité qu'a une plateforme à pouvoir fonctionner et gérer ses erreurs toute seule. Sans qu'il n'y ait aucun profil tech qui soit impliqué sur le fonctionnement de la plateforme au quotidien.
Donc on a défini le mode no run en disant une plateforme en no run c'est quoi? C'est zéro heure de développeur sur la plateforme et c'est par contre un customer success manager, alors un ou plusieurs ça va dépendre du volume de clients qui transitent sur la plateforme, un ou plusieurs Customer Success Managers qui vont gérer à la fois les demandes clients et à la fois effectuer certains gestes fonctionnels relativement simples. Il peut y avoir certains cas où un développeur est requis, mais c'est ultra ponctuel. Et ça, c'est le principe du neurone. On pourrait se dire du coup, La meilleure manière d'arriver à faire ce no-run, c'est finalement de trouver le bon outil, la bonne manière de faire, et du coup, en déployant cet outillage, y arriver extrêmement facilement. Ce n'est pas le choix que l'on a fait. On a plutôt choisi de se baser sur des outils qu'on connaît. Alors, pour les membres de la communauté qui ont l'habitude, on a par exemple travaillé sur Kibana, tout simplement, puisque, comme on se le disait un peu précédemment, on a
plusieurs partenaires qui nous fournissent des services et donc on doit monitorer leur API, gérer les erreurs, gérer les moments où elles seraient hors service, etc. Sans qu'un tech de chez nous ait à intervenir pour regarder un log, faire une action et j'en passe. Donc ce travail a consisté autour de Kibana à dire, plutôt que d'aller chercher un outil qui sache faire mieux que ça et qui automatise tout un tas de trucs, faisons plutôt quelque chose à partir de Kibana qu'on maîtrise très bien et travaillons sur la méthode que l'on met en place pour arriver à passer de il y a une équipe avec un PO, un dev, pardon, un PO, un tech lead et trois devs qui travaillent sur la plateforme à il y a zéro heure de toutes ces personnes-là en temps passé sur la plateforme. Pour faire ça, on a mis en place de l'amélioration continue avec des sprints de une semaine, pendant lesquels il y avait un objectif extrêmement précis à atteindre.
pour la semaine et on a chaque semaine cherché à ce que l'objectif défini tacle une route cause de génération d'incidents ou de temps passé par les équipes techniques qui soit la plus pragmatique possible. Un exemple de ça, ça va être sur une semaine il y a eu un sprint dont l'objectif était qu'en tant que développeur, je n'ai jamais à aller regarder le log technique des API auxquels je suis connecté. Et donc du coup, toute une démarche qui a été mise en place pendant la semaine pour faire en sorte qu'à la fin de la semaine, cet objectif soit rempli. Donc il a fallu quand même un certain nombre de semaines pour arriver à mettre en place réellement cette approche No Run. Et du coup, la bonne nouvelle, c'est qu'on y est arrivé. C'est-à-dire qu'en combinant cette approche avec des outils qu'on connaît bien, mais qu'on exploite à fond d'un côté, avec de l'autre côté une approche d'amélioration continue, des objectifs, un rythme assez élevé, sprint sur une semaine, cette combinaison des deux a fait que nous avons actuellement trois plateformes, quatre plateformes même, qui fonctionnent.
Dans ce mode que l'on appelle No Run, sur cette plateforme actuellement en production. Ça, c'était le premier axe, qui est un axe plutôt technique. On a dû innover sur beaucoup d'autres aspects. Un deuxième axe d'innovation sur lequel on a dû travailler, c'est notre organisation interne, nos équipes. On a commencé le framework et... On a commencé à répondre aux besoins clients en staffant une équipe à chaque fois qu'on nous demandait une plateforme. Arrivé à 14 équipes, on a commencé à se dire que c'était bien parce que ça répondait aux besoins des clients, certes, mais il y avait quand même un problème, c'est que chaque équipe devait à la fois répondre à ses objectifs clients et métiers, et à la fois contribuer, quand il construisait des composants ou des morceaux de composants, à Hypercube lui-même. Et ça créait une vraie schizophrénie. quotidien pour arriver à tenir les sprints et arriver à garder l'équipe focus et motivée et pas découragement face à l'ampleur de la tâche.
Donc pour ça, on a beaucoup travaillé de la théorie que vous connaissez peut-être, vous connaissez peut-être le livre qui s'appelle Team Topologies, le livre qui s'appelle Accelerate. Ces livres-là, on s'en est beaucoup servi pour chercher à construire une manière de travailler dans laquelle on a Des équipes qui sont focusées non plus sur des produits ou des plateformes, mais des équipes qui sont focusées sur des objectifs métiers. Exemple, tout client qui vient sur une de nos plateformes, il doit sortir de la plateforme de souscription en donnant un NPS qui a comme résultat un score supérieur à 60. Ça, c'est un objectif qu'il y a une équipe, une impact team, du coup, qui va avoir. Donc on a des impact teams, on a des équipes qui travaillent sur les produits internes. Par exemple, dans Hypercube, nous avons mis en place une bibliothèque de composants. Qui regroupe près de 200 composants d'interface, et bien il y a une équipe qui s'occupe de ces composants d'interface.
Et puis on a également ce qu'on appelle des bandit context teams, c'est-à-dire des équipes qui s'occupent des microservices qui sont sous-jacents à Hypercube. Du coup, c'est l'éloignement. occasion cette organisation de discuter un peu de ce qu'il y a dans Hypercube. Dans Hypercube, en fait, il y a quatre grands éléments. Le premier élément, c'est une bibliothèque de composants d'interface qui permet à n'importe quel développeur de construire exactement ce qu'il veut en termes d'interface client. puisqu'il peut construire des formulaires, construire des tableaux de bord, etc. En utilisant cette bibliothèque qui est construite en Angular. La deuxième partie d'Hypercube, c'est un ensemble de microservices qui sont en production, qui sont en run. Ce ne sont pas des microservices sur étagère qu'on va instancier, c'est vraiment des microservices qui sont en run et dont le développeur que le développeur peut utiliser pour pouvoir faire fonctionner la plateforme qu'il a à construire sur la base d'un cœur de SI déjà fonctionnel.
Le troisième élément d'Hypercube, c'est un orchestrateur de processus qui permet aux développeurs de pouvoir de A à Z, orchestrer son process fonctionnel et son process technique. Et enfin, le quatrième élément d'Hypercube, c'est un ensemble de services qui ne sont pas les microservices cœur d'Hypercube, qui sont des microservices satellites, qu'ils soient des microservices de partenaires ou des microservices du SIBPI France, et qui en fait permettent d'enrichir la plateforme en fonction des besoins métiers. Donc vous voyez, Vous l'aurez compris, avec cette plateforme Hypercube, on ne parle pas d'un progiciel configurable par les métiers, on parle vraiment d'une boîte à outils pour les développeurs. Et donc du coup, si on revient à notre sujet d'organisation, on a dû mettre en place une organisation qui permette à la fois de réaliser les objectifs métiers avec les équipes dites streamlined, et les impact teams, et de réaliser également les objectifs techniques pour que le framework vive et continue à produire de la scalabilité et à fournir une expérience développeur qui soit suffisamment bonne.
On a dû innover enfin sur un dernier axe qui est peut-être le plus important à long terme. Et cet axe-là, ça a été de convaincre le COMEX de BPI France et lui expliquer ce que l'on était en train de faire et pourquoi c'était important d'investir un petit peu sur Hypercube. En tant que premier produit technologique construit par BPI France. Concrètement, on a au COMEX de la banque BPI France une seule personne qui sait faire de la texte sur une quinzaine de membres. Et du coup, il y avait un véritable enjeu de faire comprendre ce que l'on faisait, pour avoir le bon niveau de sponsoring et avoir la bonne implication des métiers. Puisque Hypercube, ce n'est pas qu'un objet technologique. C'est en fait quelque chose qui cherche à déployer un produit pour le client et qui du coup comprend effectivement des bases technologiques. et bases techniques, mais aussi et surtout tout un tas d'éléments d'expérience utilisateur, de fonctionnalités métiers qu'on cherche à modulariser autant que possible pour créer de la scalabilité.
Donc la méthode qu'on a cherché à mettre en place pour réaliser cette sensibilisation du COMEX de BPIfrance à la tech, ça a été de rechercher les choses qu'ils connaissaient déjà. Un exemple, on avait une personne qui connaissait très bien les progiciels, puisque dans sa business line, il y a... énormément de progicialisation historiquement. Et donc on partait de cette chose que la personne connaissait, et avec ça, on comparait en fait ce que l'on faisait sur Hypercube pour expliquer les différences et les choix que l'on prenait. Et donc on a cherché pour chaque membre du COMEX à identifier quelque chose qu'il connaissait, et partir de là pour expliquer notre démarche, expliquer la valeur qui a été créée, et expliquer en quoi ça pouvait lui bénéficier. On faisait ça bien sûr devant tout le monde, ce qui fait qu'en combinant les points de vue, on a réussi à construire une vision un peu agrégée de ce qu'est Hypercube, et du coup on a maintenant des patrons métiers qui sont extrêmement sponsors, et qui ont notamment très bien compris l'importance d'avoir...
Des fonctionnalités, quand on les construit, qui sont dans Hypercube et pas spécifiques à côté, puisque sinon, ils perdent de la vitesse et ils perdent de la qualité. Donc, il y a bien d'autres axes sur lesquels on pourrait parler du retour d'expérience hypercube, mais on arrive bientôt à la fin de cette intervention, et donc il reste quand même un point important qu'il faut qu'on aborde. C'est le point de... Quels sont les résultats qu'on a eus avec ce framework? Est-ce que ça valait le coup de faire ça? Puisque bien sûr, ça n'a pas été un long fleuve tranquille. À notre sens, oui, mille fois oui, ça valait le coup de se dire que plutôt que d'aller chercher un projet ciel, des choses déjà toutes faites, il valait mieux créer nous-mêmes la chose dont on avait besoin. Pourquoi? Parce que si on regarde un petit peu les chiffres, on a aujourd'hui 150 personnes qui travaillent à la tech digitale, donc 14 équipes sur ce framework mutualisé. On a construit 7 plateformes qui sont actuellement en production et qui livrent des crédits.
On a construit également 5 banques en ligne puisqu'on a étendu Hypercube pour faire aussi de la banque en ligne. Et si on regarde les choses du point de vue des clients, le truc le plus important pour nous, c'est la satisfaction client. Les NPS sont tous supérieurs à 50 sur toutes nos plateformes. Il y en a même une qui est à 80. On a également distribué avec le prêt garanti par l'État à peu près 800 000 prêts garantis par l'État pour un montant de 145 milliards d'euros. On a distribué plus de 10 000 crédits depuis avril 2020 pour un montant de 350 millions d'euros. Donc 10 000 crédits, ça veut dire 10 000 entreprises aidées et pour certaines sauvées. Et... Puisque ces chiffres arrivaient et qu'on a réussi à monétiser, la vente de nos plateformes aux entités, de l'État, à des acteurs privés aussi. On a créé officiellement pendant l'été 2020 la huitième business line de BPIfrance qui s'appelle Plateforme Digitale. Donc BPIfrance est une banque, mais elle a une business line qui apporte du revenu et qui s'appelle Plateforme Digitale.
Cette business line, Elle a fait plusieurs millions d'euros de chiffre d'affaires dès la première année et on a une croissance à trois chiffres. prévues pour 2022. Donc pour nous, le bilan est extrêmement positif. Et c'est pour ça que je voulais faire ce retour d'expérience aujourd'hui et le partager avec la communauté, puisque je sais qu'il y a des débats récurrents, que ce soit en interne, mais surtout vis-à-vis des décideurs métiers, votre CEO, votre founder, dans les boîtes dans lesquelles vous pouvez travailler, sur l'apport que peut avoir la technologie d'un point de vue business et les opportunités business que ça peut créer. Donc vraiment, mon objectif au travers de ce talk, c'était de pouvoir présenter un use case, un retour d'expérience sur quelque chose qui a vraiment fonctionné et qui a eu, à notre avis, un impact vraiment hyper fort sur le métier BPIfrance, puisqu'on en a fait un nouveau business carrément. Voilà ce que je voulais partager avec vous aujourd'hui. Je vous remercie beaucoup pour votre attention et on se retrouve juste après pour les questions réponses.
Absolument, je n'ai même plus besoin de faire mon travail. C'est ça qui est formidable avec vous Sébastien. J'ai compris que l'hypercube n'avait absolument rien à voir avec le Rubik's Cube. Eh oui, malheureusement, désolé. Mais on peut quand même faire des questions réponses sur le Rubik's Cube après si vous voulez. On va surtout les faire maintenant en live. Qu'est-ce que vous en dites? Avec grand plaisir. A tout de suite. A tout de suite.
