Retour d'expérience · Technique
Un logiciel métier en seize jours, et les garde-fous qui le rendent défendable.
Un cabinet d'audit et d'expertise comptable s'est doté d'un logiciel de suivi du temps, sur mesure, testé, documenté, en production, en seize jours. L'application est en service et lui appartient. Elle tourne à l'adresse horalio.net. Ce qui a été rare dans ce projet n'est pas la génération de code. C'est la discipline qui a permis d'oser le mettre en production.
Voici le retour d'expérience technique, en deux parties : comment on construit, puis ce que cela change. Ce qui est rare n'est pas la vitesse, c'est le jugement qui la dirige.
1. Ce que la vitesse déplace
Quand une machine produit du code plus vite qu'un humain ne le relit, le risque change de nature. Il n'est plus dans la difficulté d'écrire, il est dans la dérive silencieuse : une convention qui s'effrite d'une session à l'autre, une décision d'architecture oubliée puis contredite trois jours plus tard, une règle métier posée à l'écran mais pas au bon endroit, un test rouge contourné parce qu'on est pressé.
Rien de tout cela n'est spectaculaire. C'est exactement pour cette raison que c'est dangereux. Un projet assisté qui échoue n'explose pas, il pourrit.
Tout ce qui suit n'a qu'un objet : rendre la dérive impossible sans qu'on s'en aperçoive. C'est cela, et non la génération, qui constitue le savoir-faire.
2. L'origine et le périmètre réel
Un cabinet d'audit et d'expertise comptable veut agiliser ses processus internes et se doter d'un logiciel de suivi du temps « ultra simplifié ». Toute la conception s'est appuyée sur ce mot, et il vaut la peine de s'y arrêter, parce qu'il est trompeur. L'ultra simple est multidimensionnel et coûteux à produire. C'est un résultat, pas une caractéristique : ce qui reste une fois tous les arbitrages tranchés. Un logiciel riche est un logiciel qui n'a tranché sur rien et qui a reporté chaque décision sur l'utilisateur, en la déguisant en liberté de configuration. C'est très largement plus facile à construire.
Cinq dimensions distinctes, qui ne se réduisent pas les unes aux autres : simple à saisir (nombre de gestes, valeurs par défaut justes, absence de navigation), simple à apprendre (promesse falsifiable : ou bien un nouveau collaborateur y arrive seul, ou bien elle est fausse), simple à adopter (l'outil parle le vocabulaire de la maison, il n'y a rien à traduire), simple à lire (le responsable qui consulte n'a pas les besoins du collaborateur qui saisit, et la simplicité de la lecture ne se déduit pas de celle de la saisie), simple à maintenir (moins d'options, moins d'états, moins de combinaisons à tester).
Deux conséquences d'ingénierie commandent tout le reste. D'abord, la simplicité remonte jusqu'au modèle de données. Elle ne se joue pas dans l'interface. Si la structure conçoit mal le monde du client, aucun écran ne pourra être simple : il faudra demander à l'utilisateur de compenser à la main ce que le modèle ne sait pas représenter. Une interface compliquée est presque toujours le symptôme d'un modèle qui pense de travers. Ensuite, la génération assistée rend la simplicité plus difficile à tenir, pas plus facile. Tant qu'ajouter une fonction coûtait cher, le budget arbitrait à notre place. Quand l'ajout devient presque gratuit, ce garde-fou disparaît : la machine ajoutera tout ce qu'on lui demande, immédiatement, proprement, sans jamais objecter. La simplicité cesse d'être une contrainte budgétaire pour devenir une pure affaire de jugement.
Deux autres exigences complètent la commande : de très fortes capacités de personnalisation (types de missions, libellés, règles, dossiers), et la constitution d'un actif pour l'entreprise. Ce qui est personnalisé n'est pas un jeu d'options offert à l'utilisateur, c'est la structure elle-même, arbitrée avant la première ligne de code. Et le vrai gisement n'est pas la saisie, c'est la donnée qu'elle produit : traçabilité interne pour le pilotage des missions, transparence vis à vis du client sans exposer coûts ni marges, et fiabilisation des remontées réglementaires auprès de la supervision de la profession, où la qualité des déclarations dépend directement de la fiabilité des temps déclarés.
Les chiffres, pour situer :
- Lignes versionnées : environ 39 100.
- Commits en seize jours : 269 (premier le 7 juillet, mise en production le 21).
- Composants d'interface : 122.
- Tests automatisés : 163 au moment de la mise en production.
- Rôles d'assistance orchestrés : 8.
- Côté serveur : 14 modules d'actions serveur, 10 routes applicatives, 25 modules de logique métier pure, sur une base relationnelle de 805 lignes de schéma et 23 migrations.
Le périmètre, et ce qu'on sous-estime toujours. L'interface (environ 23 400 lignes, 122 composants) couvre la saisie, les tableaux de bord, les rapports, le paramétrage, un parcours d'accueil en six étapes et une version mobile unifiée. C'est la partie que l'assistance génère le plus vite, et celle où « ça a l'air fini » trompe le plus. Le serveur porte l'essentiel : isolation entre cabinets, contrôle des accès, calculs de budget. Invisible, mais c'est le vrai produit. La recette est la part la plus sous-estimée, et elle a coûté autant que le développement : 163 tests automatisés, des passes manuelles allant jusqu'à cinquante-cinq points de contrôle en une fois, quatre jeux de données reflétant les vrais dossiers, et une recette navigateur systématique avant chaque livraison.
Le développement au fil de l'eau, sans recette, n'est pas du développement rapide. C'est du développement amputé.
3. Cadrage : l'assistance accélère, elle ne décide pas
L'assistance excelle à produire un cahier des charges, des scénarios d'usage et un modèle de données en quelques heures. La limite arrive vite, et elle arrive toujours au même endroit : au premier changement qui touche la structure.
Le cabinet demande que plusieurs collaborateurs puissent intervenir sur un même dossier. En base, l'affectation reposait sur une relation simple, un collaborateur pour un dossier. Le faire proprement supposait une table de liaison et, dans la foulée, une refonte du contrôle d'accès. Un développement au fil de l'eau aurait bricolé un contournement dans la nuit. La bonne décision a été de suspendre, d'arbitrer avec le client, et de traiter la demande comme un chantier.
L'expérience, c'est savoir ce qu'on ne code pas tout de suite.
4. Le modèle du monde du client
Cette décision mérite qu'on s'y arrête, parce qu'elle touche au véritable objet de ce projet et au seul actif difficilement reproductible. Le terme consacré est l'ontologie. Je l'emploierai peu, parce qu'il fait fuir et qu'il fait croire à de la théorie. Il s'agit d'une chose très concrète : les objets dont une organisation parle, les règles qui les gouvernent, et l'ordre dans lequel ces règles s'appliquent. Ses noms, ses verbes, sa grammaire.
Ce n'est pas le schéma de base de données. Le schéma en est une implémentation, à un instant donné, dans une technologie donnée. On peut implémenter parfaitement un modèle faux, et c'est même le cas le plus fréquent : normalisé, indexé, contraint, et décrivant un monde qui n'est pas celui du client.
Un exemple tiré de ce projet. La cascade de taux appliquée aux temps saisis suit un ordre de spécificité strict, du plus particulier au plus général : un taux fixé pour un collaborateur sur un projet donné l'emporte sur un taux de projet, qui l'emporte sur un taux de client, qui l'emporte sur le taux du cabinet. Techniquement, c'est une fonction de résolution de quelques lignes. Conceptuellement, c'est une affirmation sur le monde : ce cabinet tient que le particulier prime toujours sur le général en matière de valorisation. Un autre cabinet pourrait décider l'inverse. Aucun logiciel générique ne pose jamais cette question, et c'est pour cela que tant d'utilisateurs corrigent leurs états à la main après extraction. Cette règle est extraite en fonction pure et testée, précisément parce qu'elle n'est pas technique. Le code peut changer, la règle non.
Le premier geste de cadrage : demander les fichiers parallèles. La façon la plus rapide de détecter un désaccord entre le modèle installé et le métier réel est de regarder ce qui gravite autour du logiciel officiel. Des tableurs tenus à la main que personne n'a commandés, des champs libres remplis de codes transmis oralement, des conventions de nommage qui portent une information structurée que l'outil ne sait pas stocker, une double saisie que plus personne ne conteste parce qu'elle date d'avant tout le monde.
Ces artefacts ne sont pas de l'indiscipline. Ce sont les fragments du métier réel, expulsés du système parce qu'il ne savait pas les accueillir, et réinjectés à la main par des gens qui savent de quoi ils parlent. Chacun est une spécification gratuite, déjà rédigée, qui attend d'être lue. C'est la première chose que je demande en arrivant, avant toute discussion de besoin : montrez-moi vos fichiers parallèles. Une heure passée dessus vaut une journée d'atelier.
Pourquoi cela ne se recueille pas par écrit. L'essentiel est tacite. Demandez à un associé ce qu'est une mission : vous obtiendrez une définition claire, en une phrase, immédiatement. Observez ensuite le cabinet travailler, et vous trouverez plusieurs catégories de missions au comportement distinct, dont certaines qu'il n'aurait jamais pensé à mentionner parce qu'elles vont de soi. Ce n'est ni de l'imprécision ni de la rétention. C'est la nature du savoir professionnel : ce qu'on maîtrise le mieux est ce qu'on explicite le moins. La technique qui fonctionne est contre-intuitive : proposer une formulation délibérément approximative et attendre la correction. Un modèle affiché et légèrement faux déclenche en trente secondes un « non, pas tout à fait, en réalité c'est plutôt... » que trois réunions de recueil n'auraient pas produit. C'est la justification technique, et non commerciale, du travail sur place.
Un critère opérationnel, transposable dès demain. Une demande arrive. Avant de l'estimer, posez une seule question : jusqu'où se propage-t-elle ? Si elle reste sur un écran, c'est une fonctionnalité. On l'estime, on la planifie, on la livre. Si elle touche en même temps le contrôle d'accès, les rapports et l'historique, ce n'est pas une fonctionnalité. C'est le modèle qui était faux, et cela devient un chantier. L'épisode des dossiers partagés en est l'illustration exacte : « plusieurs collaborateurs sur un dossier » se présentait comme un champ à dupliquer, deux heures de travail. En réalité le système tenait pour acquis qu'un dossier appartient à un collaborateur, et les règles de confidentialité dérivaient de cette appartenance.
La propagation est la signature. Et c'est précisément là qu'un développement assisté non dirigé produit son pire résultat. La machine sait parfaitement créer une table de liaison, migrer les données et adapter les écrans. Elle ne sait pas qu'en faisant cela elle vient d'invalider silencieusement un modèle de sécurité. Le code compilera, les tests existants passeront, et la faille attendra la recette. Ou pire, la production.
Ce qui est réellement possédé. Nous disons que le cabinet possède son logiciel. C'est exact du code et des données. Mais la valeur durable n'est pas là. Le code a une espérance de vie de quelques années, et la génération assistée rendra son remplacement presque indolore. En revanche, la manière dont un cabinet d'audit conçoit une mission, un temps déclarable, une règle de confidentialité vis à vis d'un confrère, évolue à l'échelle d'une décennie. Ce que le cabinet possède réellement, c'est le modèle explicite et formalisé de son propre travail. Le code qui l'exprime aujourd'hui pourrait être régénéré en quelques jours à partir de ce modèle. L'inverse n'est pas vrai. La pile technique de ce projet se copie en une après-midi. La compréhension de la façon dont un commissaire aux comptes justifie son temps devant sa supervision ne se copie pas, parce qu'elle ne se trouve écrite nulle part.
5. Architecture et règles métier, là où la génération devient dangereuse
Le cœur du produit, ce sont des règles de confidentialité : qui voit quoi, et surtout qui ne voit pas quoi. Le piège du code généré vite est toujours le même : la règle est posée là où elle se voit, c'est à dire dans l'interface, et nulle part ailleurs. Un contrôle constaté en recette l'illustrait parfaitement : une interdiction de saisie correctement affichée à l'écran, mais absente côté serveur, donc contournable par un appel direct.
Une règle métier non gardée côté serveur n'existe pas.
Le principe paraît élémentaire, et il n'est pourtant pas toujours respecté par des logiciels du marché installés de longue date, où un contrôle affiché à l'écran se contourne par un appel direct. Ce que l'on croit interdit reste parfois grand ouvert côté données. Autre dette classique, et plus insidieuse : la même règle dupliquée à l'identique dans sept fichiers. La générer sept fois coûte quelques secondes. La repérer, la centraliser et garantir qu'elle ne se redupliquera pas relève du métier, pas de la génération.
6. La boucle client, de la remontée à la preuve de livraison
C'est ici que se trouve, à mon sens, le vrai tour de force du projet. Il ne consiste pas à coder vite. Il consiste à avoir fermé la boucle entre le besoin du cabinet et la preuve de sa livraison, sans jamais sortir de l'outil.
Tout commence dans l'application. Le cabinet formule ses demandes directement depuis HORALIO. Elles remontent dans un back-office d'arbitrage où chaque demande est traitée : acceptée avec un niveau de priorité, planifiée sur une version cible, mise en attente, marquée comme doublon, ou refusée avec un motif explicite. Le dépôt de code joue le rôle de pivot. À l'acceptation, un ticket est créé automatiquement, et sa fermeture fait repasser la demande en « livrée » côté client. L'assistance ne se contente pas de créer des tickets : elle surveille le dépôt, interprète chaque demande au regard du contexte propre au cabinet, puis prépare la planification avec les éléments requis, attendu, description, impacts connexes, urgence, criticité, et jusqu'à une recommandation d'arbitrage. L'arbitrage humain reste souverain, mais il reçoit un dossier déjà instruit.
Le cabinet voit en temps réel ce qui est en cours, ce qui est planifié, ce qui est écarté, et pourquoi. La traçabilité n'est pas un artefact interne réservé à l'équipe : c'est une information rendue au client, avec ses justifications. Résultat : une remontée du matin peut être arbitrée, développée, testée et mise en ligne dans la foulée. La vélocité n'est plus bridée par le cycle de développement. Elle est cadrée par le dernier garde-fou qu'on refuse de sacrifier, la validation humaine.
La clé de voûte : des jeux de tests contextualisés. L'assistance produit les jeux de données de recette qui reflètent les vrais cas du cabinet, dossiers réels, rôles réels, cas limites métier, ainsi que les tests qui verrouillent le noyau sensible. Sans cette génération contextualisée, la recette deviendrait le goulot d'étranglement. Avec elle, tester cesse d'être un frein et devient le socle de confiance qui autorise la vitesse.
Le flux, dans ses grandes lignes. Une anomalie ou un besoin détecté en recette interne devient un ticket tracé. L'assistance l'instruit au regard du contexte du cabinet, alimente un carnet de commandes priorisé et propose un séquencement. Un plan de livraison est déployé en préproduction, accompagné de supports de recette portant uniquement sur les développements concernés, que le cabinet valide ou amende sur son propre périmètre. L'intégration passe sous double contrôle automatisé, puis la mise en production est faite par un humain, souverain, non délégué. Suivent une page de livraison lisible pour le client et une surveillance des journaux.
Une dizaine de points de contrôle jalonnent cette chaîne, chacun réglé par des essais successifs. Le détail de ce réglage, c'est à dire ce qui est automatisé, ce qui ne doit jamais l'être, et où placer exactement les vérifications, constitue l'essentiel du savoir-faire. Il ne se transpose pas d'une organisation à l'autre sans être discuté. L'assurance qualité, poste habituellement le plus coûteux et le plus négligé d'un projet logiciel, devient ici industrialisée, contextualisée et continue, sans jamais retirer à l'humain la décision qui engage la production.
Un mot sur l'outillage. Un saut important s'est produit depuis le début de l'année, tant sur la capacité d'analyse contextuelle que sur l'orchestration. Autre bascule utile : la possibilité de déléguer certaines tâches à des modèles plus économiques, avec des livrables d'une qualité étonnante. On répartit la puissance là où elle est nécessaire, et la frugalité là où elle suffit. Quant au coût de cet outillage, souvent imaginé démesuré, il s'est limité à un abonnement du commerce. Rapporté à ce qui a été produit, il n'est pas significatif. Sur le maquettage, un poste entier a disparu du budget, celui des outils graphiques : le prototypage assisté a produit des maquettes proches à environ 90 % de la version finale.
7. La barrière de qualité, non négociable
Aucun envoi vers la branche principale sans trois feux verts : vérification des types à zéro erreur, suite de tests à 163 sur 163 passés, et construction du paquet en succès. La logique sensible (calculs de budget, cascade de taux, seuils d'alerte) est extraite en fonctions pures et testée. Le reste peut bouger, ce noyau non.
Ce point est contre-intuitif et mérite d'être appuyé : c'est précisément parce que le code est produit vite qu'il faut une barrière plus stricte, pas plus souple. La barrière est ce qui autorise la vitesse. Sans elle, la vitesse n'est qu'une dette contractée à découvert.
8. Sécurité
Le principe directeur : ce qui est interdit à l'écran doit être interdit côté serveur, et vérifié comme tel. Concrètement, quatre familles de mesures ont été appliquées et vérifiées avant la mise en production : une isolation stricte des données entre cabinets, portée par le modèle de données et non par l'interface ; une gestion des jetons et des accès temporaires reposant sur des mécanismes standards, avec expiration et révocation ; des garde-fous d'environnement empêchant la préproduction d'atteindre de vrais destinataires ; et une chaîne de sauvegardes chiffrées en région européenne, testée de bout en bout, avec rotation des accès après mise en ligne.
Les audits eux-mêmes ont été outillés. Des agents d'audit offensif open source ont été passés sur l'application pour sonder les points d'entrée avant la mise en production. L'assistance n'a pas seulement écrit le code, elle a aussi servi à l'attaquer pour le durcir. Plusieurs opérations d'infrastructure sensibles ont été volontairement repassées à l'humain. Une assistance automatisée ne doit pas détenir les clés de la production sans validation.
Le détail des mécanismes défensifs, nommage des champs d'isolation, algorithmes exacts, durées de validité, comportement des rapports partagés, n'est pas publié à dessein. Publier l'architecture défensive d'une application en production qui héberge les données de clients d'un cabinet d'audit reviendrait à en publier la carte.
9. Exploitation et souveraineté
C'est ici que se joue la promesse faite au cabinet. Une application livrée n'est rien si elle reste captive d'une plateforme qu'on ne maîtrise pas. Deux briques rendent HORALIO réellement possédable. La conteneurisation : l'application, ses dépendances et son environnement sont figés dans une image reproductible à l'identique, indépendante de la machine, déplaçable d'un serveur à l'autre. Et une plateforme de déploiement auto-hébergée, installée sur le serveur du cabinet, alternative souveraine aux plateformes commerciales. À chaque envoi de code, elle enchaîne migrations et construction, puis un déploiement progressif sans coupure. Tout le confort du déploiement moderne, sans confier ni le code ni les données à un tiers.
Les pièges qui ne s'inventent pas sont ceux qui coûtent des heures, et aucun n'est générable. Ne jamais conclure « déployé » d'après l'apparence : le seul marqueur fiable est l'empreinte de la version exposée par l'application elle-même. Et un déploiement progressif fait coexister deux versions pendant une minute environ, l'empreinte alternant entre les deux ; un script d'attente naïf conclut au succès dès la première réponse favorable, alors que la bascule n'est pas terminée. Une dizaine d'autres pièges du même ordre ont jalonné la mise en production, du voyant « succès » de l'orchestrateur qui ne dit rien de l'état réel, aux échecs d'authentification difficiles à diagnostiquer. Chacun a coûté du temps une fois, et une seule.
Et la mise en production n'est pas la fin. Sauvegardes chiffrées vers un stockage objet européen, testées de bout en bout. Surveillance de disponibilité hébergée hors du serveur surveillé, parce qu'un serveur ne peut pas signaler sa propre panne. Notifications d'incident. Procédure écrite de reprise. Le cabinet tient chaque maillon de la chaîne, du conteneur à la sauvegarde, sans dépendance à un grand fournisseur de nuage.
Ce métier a un nom : l'ingénieur déployé chez le client
Tout ce qui précède décrit une manière de travailler. Elle n'est pas de mon invention : c'est un modèle établi, nommé, et aujourd'hui massivement adopté par le secteur. Le Forward Deployed Engineer, ou FDE, que l'on peut rendre en français par ingénieur déployé chez le client.
Le rôle a été inventé et systématisé par Palantir, dont les premiers clients étaient des agences gouvernementales et de grandes institutions, c'est à dire des environnements où l'infrastructure est complexe, la conformité contraignante, et où aucun logiciel du commerce ne pouvait convenir tel quel. Plutôt que de livrer une licence et de laisser le client se débrouiller, l'entreprise déployait ses ingénieurs à l'intérieur, pour des mois, afin de construire les cas d'usage avec les équipes. Le modèle a longtemps été jugé trop coûteux et trop étrange pour être copié. Il ne l'est plus. OpenAI a monté son équipe en 2024, Anthropic a développé la sienne, rejoints par Databricks, Scale AI, Google DeepMind et d'autres. Les offres d'emploi pour ce poste ont progressé de plus de 800 % entre janvier et septembre 2025. Au printemps 2026, Anthropic et OpenAI ont chacun lancé une coentreprise de déploiement en entreprise chiffrée en milliards, entièrement construite autour de ce rôle.
Le trait distinctif est une responsabilité de bout en bout : celui qui cartographie le problème le premier jour est celui qui répond quand la production casse six mois plus tard. Cela exclut le passage de relais vers une équipe de support qui n'a rien conçu, et cela exclut le rôle d'intégrateur qui paramètre le produit d'un autre. On construit ce qui manque, et on en répond. Les seize jours ne sont pas la démonstration, ils en sont la conséquence : le modèle de données parlait déjà la langue du cabinet avant la première ligne de code, et la personne qui a tranché sur la refonte du contrôle d'accès était la même que celle qui répondrait de la production ensuite.
10. Économie de la méthode
Les contraintes économiques ont imposé la méthode, et non l'inverse. Un prix volontairement bas interdit l'infrastructure coûteuse et le développement à rallonge. La marge n'existe que dans la frugalité. D'où quatre règles qui ont toutes une traduction financière directe : un seul déploiement à la fois, ce qui évite les constructions inutiles ; une recette menée sur la préproduction déployée, contrainte transformée en avantage ; une mémoire persistante entre sessions d'assistance, qui économise la quasi-totalité du contexte rechargé à chaque reprise ; et une barrière de qualité passée en local, ce qui revient à payer la vérification une fois plutôt que trois fois en constructions ratées. La vitesse de l'assistance ne réduit les coûts que si la méthode est rationalisée. Sans cela, elle les déplace simplement vers la facture d'infrastructure.
11. L'équivalent en équipe humaine
C'est l'estimation la plus discutée, alors traitons l'objection avant qu'on ne la formule. Estimer une charge humaine à partir d'un nombre de lignes est une méthode contestée, et elle l'est davantage encore ici : le code assisté est en moyenne plus verbeux que le code écrit à la main. Compter les lignes surestime donc mécaniquement l'effort équivalent. L'ordre de grandeur ne repose pas sur le volume, mais sur la liste des livrables, dont chacun est vérifiable :
- une application multi-locataires avec contrôle d'accès et isolation des données ;
- un back-office d'administration livré simultanément (provisionnement, arbitrage des demandes, supervision) ;
- une documentation fonctionnelle et une documentation technique ;
- un cahier de tests spécifique au client ;
- une fonction de recette contextualisée, section par section et rôle par rôle, intégrée au produit ;
- un journal des livraisons et sa gestion ;
- une chaîne d'exploitation complète, sauvegardes, surveillance, procédure de reprise.
Ce sont précisément ces à-côtés, jamais glamour, que les projets réels sacrifient presque toujours. Chiffrer ce périmètre à l'ancienne conduit, quelle que soit la méthode d'estimation retenue, à une équipe pluridisciplinaire de cinq à six personnes mobilisée plusieurs mois, soit de l'ordre de trente hommes-mois. Les huit rôles orchestrés (le terme d'agent recouvre ici des rôles distincts, tenus par une même personne s'appuyant sur une assistance spécialisée à chaque étape) : cadrage et analyse fonctionnelle, architecture, design et maquettage, développement, revue de code et sécurité, recette, livraison et exploitation, documentation.
Les ordres de grandeur, marché France, à ajuster selon le périmètre. En interne, une trentaine d'hommes-mois en masse salariale chargée conduit à environ 180 à 230 k€. En prestation, avec tarif journalier mixte, marge et coordination, plutôt 350 à 500 k€. HORALIO a été construit par un pilote expérimenté sur trois semaines, infrastructure mutualisée, abonnement d'assistance, pour une fraction de ces montants. L'écart n'est pas une remise commerciale, c'est un changement de nature. Le montant exact ne figure pas ici volontairement : il dépend trop du périmètre, et un chiffre isolé se retourne toujours contre celui qui le publie.
12. Du service loué au logiciel possédé
Un basculement de modèle s'est opéré. Non plus un service mutualisé, mais un serveur dédié au cabinet, où les données sont hébergées et pilotées en pleine maîtrise. La conteneurisation et le déploiement auto-hébergé sont exactement ce qui rend ce passage tangible plutôt que théorique. L'assistance a joué ici trois rôles simultanés : un transfert de compétence, puisque la logique de l'outil est explicite et maîtrisée ; un accélérateur, seize jours au lieu d'années d'itérations ; et un créateur de valeur, l'application cessant d'être une charge locative pour devenir un actif détenu.
La formule, sans ambiguïté. La propriété est le principe, pas une option. Le cabinet fait déployer l'application sur son propre serveur et en devient propriétaire, code et données compris. Une instance que nous hébergeons reste possible pour démarrer sans mobiliser d'infrastructure, mais elle est pensée dès l'origine comme réversible : la sortie est prévue, documentée, et ne dépend d'aucune autorisation de notre part. Un logiciel qu'on ne peut pas emporter n'est pas un logiciel qu'on possède, et une clause contractuelle ne remplace pas un artefact déplaçable.
13. La suite
L'évolution est tracée : embarquer sur le serveur dédié un modèle allégé, hébergé localement, pour faire naître un assistant qui travaille au plus près des données du cabinet. Modèle maîtrisé, hébergement souverain, données qui ne sortent pas. L'intelligence intégrée à l'actif, plutôt que louée à l'extérieur. D'autres briques suivront vraisemblablement, un planning des ressources, une paie simplifiée adossée au dispositif simplifié de l'organisme de recouvrement social. Chacune se greffe sur le socle existant.
14. La réserve honnête : et si le modèle économique de l'assistance changeait ?
Tout ce qui précède repose sur une condition que je ne maîtrise pas : la stabilité du modèle de facturation des fournisseurs de modèles. L'économie de ce projet tient à un abonnement forfaitaire, aujourd'hui largement subventionné par les levées de fonds du secteur. Si la facturation basculait vers une tarification à l'usage calée sur le coût réel de production, l'équation changerait pour tout le monde, y compris pour moi.
Ce n'est pas une hypothèse d'école, c'est en train de se produire. Le cas d'Anthropic sur son modèle le plus puissant, Fable 5, est instructif. Lancé début juin 2026, il a d'abord été suspendu quelques jours plus tard pour une raison sans rapport avec les prix, une restriction américaine à l'exportation liée à des inquiétudes sur des usages en cybersécurité, avant réouverture le 1er juillet. Puis, sur le volet tarifaire, l'arbitrage est tombé le 20 juillet : le modèle reste inclus sans date de fin dans les formules haut de gamme, à hauteur de la moitié des limites hebdomadaires, tandis que les formules d'entrée de gamme basculent vers des crédits d'usage payants. Autrement dit, la bascule vers l'usage a bien eu lieu, elle n'a pas été annulée, et elle frappe d'abord les petits comptes.
Pour un projet comme celui-ci, la conséquence est simple à énoncer : la frugalité méthodologique décrite plus haut n'est pas une coquetterie d'ingénieur. C'est une couverture.
15. Où est la survaleur
L'intelligence artificielle a réellement multiplié la vitesse. Mais soyons lucides sur l'endroit où se trouve la valeur. Beaucoup se trompent de combat. Résumer des courriels et produire des plans d'action, c'est sympathique, limité et coûteux. De très grandes entreprises font aujourd'hui marche arrière face à l'envolée des coûts. Distribuer des assistants conversationnels et obliger chacun à faire relire ses messages, c'est l'illusion de la transformation. La transformation réelle demande un travail chirurgical : identifier précisément où se trouvent les points d'amélioration organisationnelle et de démultiplication des marges. Cette hauteur de vue, la machine ne l'apporte pas. Ce sont les praticiens qui l'apportent, encore pour un temps.
Ce qui a fait tenir HORALIO, ce n'est pas la génération de code. C'est la méthode, et le jugement de savoir quand ne pas coder vite.
Concrètement : une barrière de qualité non négociable, des tests sur le noyau sensible, des règles gardées côté serveur, un seul déploiement à la fois, une vérification par l'empreinte et non par l'apparence, une recette qui pèse autant que le développement, et la décision de mise en production laissée à un humain.
HORALIO est en production, à l'adresse horalio.net. Environ 39 000 lignes, seize jours, huit rôles orchestrés, un audit de sécurité passé avant mise en ligne. Et, pour un cabinet, le début de la propriété pleine et entière de son outil.
L'intelligence artificielle ne remplace pas l'expertise, l'expérience, la mémoire, l'intuition. Elle les amplifie de façon vertigineuse. Mais elle démultiplie tout aussi vite les erreurs, les impasses et les boucles de celui qui n'en a pas.
Questions fréquentes
Comment un logiciel métier a-t-il pu être mis en production en seize jours ?
Ce qui a été rare n'est pas la génération de code mais la discipline qui l'a dirigée : un modèle de données qui parlait déjà la langue du cabinet, une barrière de qualité stricte, et une recette contextualisée aussi coûteuse que le développement lui-même.
Que possède réellement le cabinet ?
Au-delà du code et des données, l'actif durable est le modèle explicite et formalisé de son propre travail : sa façon de concevoir une mission, un temps déclarable, une règle de confidentialité. Le code qui l'exprime aujourd'hui pourrait être régénéré en quelques jours ; l'inverse n'est pas vrai.
Pourquoi une règle métier doit-elle être gardée côté serveur ?
Parce qu'une interdiction affichée seulement à l'écran se contourne par un appel direct. Une règle métier non gardée côté serveur n'existe pas. L'isolation des données entre cabinets et le contrôle des accès sont portés par le modèle, pas par l'interface.
Retour d'expérience technique. HORALIO, un logiciel métier possédé, en production sur horalio.net.