{"id":40976,"date":"2026-04-29T08:00:00","date_gmt":"2026-04-29T06:00:00","guid":{"rendered":"https:\/\/leocare.eu\/fr\/?post_type=leocare_lab&#038;p=40976"},"modified":"2026-04-01T23:17:59","modified_gmt":"2026-04-01T21:17:59","slug":"comment-resorber-sa-dette-technique-partie-2","status":"publish","type":"leocare_lab","link":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/","title":{"rendered":"Comment r\u00e9sorber sa dette technique : op\u00e9rer sans tout casser (partie 2)"},"content":{"rendered":"\n<p>Une fois qu&rsquo;on conna\u00eet mieux un projet, on peut commencer \u00e0 se projeter. Pour nous, \u00e7a a \u00e9t\u00e9 au bout d&rsquo;un an et demi. On a commenc\u00e9 \u00e0 penser \u00e0 comment <strong>adapter l&rsquo;architecture c\u0153ur<\/strong> vers quelque chose qui nous faciliterait la vie dans le contexte de notre application. Ce deuxi\u00e8me volet passe de la d\u00e9couverte \u00e0 la compr\u00e9hension : apr\u00e8s la dette de surface (partie 1),<strong> on s&rsquo;attaque ici \u00e0 la dette profonde et structurante, avant de conclure sur la dette cach\u00e9e dans la partie 3.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C&rsquo;est quoi, la dette profonde ?<\/h2>\n\n\n\n<p>La dette profonde, c&rsquo;est celle qui est <strong>ancr\u00e9e dans l&rsquo;architecture du projet<\/strong>. C&rsquo;est le choix technologique qu&rsquo;on a fait pour aller vite, mais qui revient nous hanter. Un service monolithique qui n&rsquo;\u00e9volue plus, des d\u00e9pendances non ma\u00eetris\u00e9es, une API centrale qui <strong>devient un goulot d&rsquo;\u00e9tranglement<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"658\" src=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-1024x658.jpg\" alt=\"dette profonde\" class=\"wp-image-40980\" srcset=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-1024x658.jpg 1024w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-300x193.jpg 300w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-768x494.jpg 768w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-980x630.jpg 980w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-575x370.jpg 575w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-600x386.jpg 600w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-700x450.jpg 700w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-480x309.jpg 480w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-515x331.jpg 515w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-467x300.jpg 467w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-360x231.jpg 360w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-330x212.jpg 330w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-173x111.jpg 173w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-150x96.jpg 150w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-100x64.jpg 100w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-20x13.jpg 20w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-40x26.jpg 40w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-140x90.jpg 140w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-200x129.jpg 200w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-315x202.jpg 315w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-544x350.jpg 544w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-623x400.jpg 623w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-475x305.jpg 475w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-576x370.jpg 576w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde-992x638.jpg 992w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/dette-profonde.jpg 1369w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Comment on la d\u00e9busque ?<\/h2>\n\n\n\n<p>D\u00e9tecter la dette profonde exige une <strong>compr\u00e9hension globale du projet<\/strong>. Contrairement \u00e0 la dette de surface qui saute aux yeux, celle-ci <strong>se r\u00e9v\u00e8le avec le temps<\/strong>, quand vous commencez \u00e0 vraiment comprendre comment les pi\u00e8ces s&rsquo;assemblent.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Les signaux<\/h3>\n\n\n\n<p>Voici les indicateurs qui doivent vous mettre la puce \u00e0 l&rsquo;oreille. Si vous en reconnaissez plusieurs, c&rsquo;est probablement que la dette profonde est d\u00e9j\u00e0 bien install\u00e9e :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cartographiez votre architecture<\/strong> : quelles sont les d\u00e9pendances critiques ? Quels modules cr\u00e9ent des goulots d&rsquo;\u00e9tranglement ? Si vous <strong>n&rsquo;arrivez pas \u00e0 dessiner un sch\u00e9ma clair<\/strong> de votre architecture, c&rsquo;est d\u00e9j\u00e0 un signal.<\/li>\n\n\n\n<li><strong>Couplage fort entre modules<\/strong> : quand toucher un module oblige \u00e0 en modifier trois autres. Les d\u00e9pendances sont tellement imbriqu\u00e9es qu&rsquo;on <strong>ne sait plus o\u00f9 commence une feature et o\u00f9 elle finit<\/strong>.<\/li>\n\n\n\n<li><strong>Absence de couches d&rsquo;abstraction<\/strong> : le code UI qui appelle directement la base de donn\u00e9es. Les appels r\u00e9seau \u00e9parpill\u00e9s partout. <strong>Pas de s\u00e9paration claire<\/strong> entre la logique m\u00e9tier et le reste.<\/li>\n\n\n\n<li><strong>God classes et monolithes internes<\/strong> : ce manager de 5000 lignes qui fait tout. Ce singleton appel\u00e9 depuis 200 fichiers. Ces classes deviennent <strong>impossibles \u00e0 faire \u00e9voluer sans tout casser<\/strong>.<\/li>\n\n\n\n<li><strong>\u00c9coutez les plaintes r\u00e9currentes<\/strong> : si chaque nouvelle fonctionnalit\u00e9 casse trois autres modules, il y a un <strong>probl\u00e8me structurel<\/strong>. Si l&rsquo;\u00e9quipe dit souvent \u00ab\u00a0on ne peut pas faire \u00e7a \u00e0 cause de X\u00a0\u00bb, notez ces X.<\/li>\n\n\n\n<li><strong>Temps de d\u00e9veloppement qui explose<\/strong> : une feature simple qui prend des semaines. Des estimations toujours d\u00e9pass\u00e9es. Ce n&rsquo;est pas forc\u00e9ment un probl\u00e8me de comp\u00e9tence, <strong>c&rsquo;est souvent la dette qui freine<\/strong>.<\/li>\n\n\n\n<li><strong>Peur de toucher certaines parties<\/strong> : ces zones du code que tout le monde \u00e9vite. \u00ab\u00a0On ne touche pas \u00e0 \u00e7a, \u00e7a marche.\u00a0\u00bb C&rsquo;est un signe que <strong>la dette est devenue trop co\u00fbteuse \u00e0 adresser<\/strong>.<\/li>\n\n\n\n<li><strong>Bugs r\u00e9currents au m\u00eame endroit<\/strong> : vous corrigez un bug, il revient sous une autre forme. <strong>Le probl\u00e8me n&rsquo;est pas le bug, c&rsquo;est la structure qui le permet.<\/strong><\/li>\n\n\n\n<li><strong>D\u00e9pendances circulaires<\/strong> : A d\u00e9pend de B qui d\u00e9pend de C qui d\u00e9pend de A. Ces cycles rendent le code <strong>impossible \u00e0 tester et \u00e0 faire \u00e9voluer proprement<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Notre exp\u00e9rience : repenser l&rsquo;architecture<\/h2>\n\n\n\n<p>Quand on parle d&rsquo;architecture, on peut vite tomber dans un pi\u00e8ge : choisir une approche parce qu&rsquo;elle est tendance, parce que c&rsquo;est \u00ab\u00a0ce qui se fait\u00a0\u00bb, ou parce qu&rsquo;on l&rsquo;a vue dans une conf\u00e9rence. <strong>C&rsquo;est une erreur.<\/strong> L&rsquo;objectif n&rsquo;est pas d&rsquo;adopter la derni\u00e8re architecture \u00e0 la mode, mais de trouver celle qui <strong>r\u00e9pond aux besoins de votre projet, votre \u00e9quipe, et votre contexte<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"793\" src=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1024x793.jpg\" alt=\"strategie dette profonde\" class=\"wp-image-40979\" srcset=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1024x793.jpg 1024w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-300x232.jpg 300w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-768x595.jpg 768w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1536x1190.jpg 1536w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1549x1200.jpg 1549w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1272x986.jpg 1272w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-980x759.jpg 980w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-575x446.jpg 575w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-600x465.jpg 600w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-700x542.jpg 700w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-480x372.jpg 480w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-515x399.jpg 515w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-387x300.jpg 387w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-360x279.jpg 360w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-330x256.jpg 330w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-173x134.jpg 173w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-150x116.jpg 150w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-100x77.jpg 100w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-20x15.jpg 20w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-40x31.jpg 40w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-140x108.jpg 140w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-200x155.jpg 200w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-310x240.jpg 310w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-452x350.jpg 452w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-623x483.jpg 623w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-475x368.jpg 475w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-576x446.jpg 576w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-992x769.jpg 992w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde-1440x1116.jpg 1440w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/strategie-dette-profonde.jpg 1608w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nous avons discut\u00e9 de plusieurs architectures : <strong>VIPER, MVI, MVVM<\/strong>. Notre pr\u00e9requis \u00e9tait clair : pas question d&rsquo;appliquer une architecture \u00ab\u00a0cl\u00e9 en main\u00a0\u00bb parce qu&rsquo;elle \u00e9tait populaire. On voulait quelque chose qui puisse <strong>s&rsquo;adapter \u00e0 nos r\u00e9alit\u00e9s<\/strong> : ne pas nous obliger \u00e0 utiliser toute la m\u00e9canique pour un simple \u00e9cran statique, mais <strong>conserver une ligne directrice coh\u00e9rente<\/strong> sur l&rsquo;ensemble du projet.<\/p>\n\n\n\n<p>On a exp\u00e9riment\u00e9 et trouv\u00e9 un m\u00e9lange de <strong>MVVM\/MVI avec des Coordinators et de la Clean Archi<\/strong> (DomainLayer, UseCase, DataLayer, Repository, etc.). L&rsquo;id\u00e9e \u00e9tait de fournir des objets cl\u00e9s utilisables selon les besoins. Le r\u00e9sultat :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Des <strong>features isol\u00e9es et scalables<\/strong> en termes d&rsquo;architecture<\/li>\n\n\n\n<li>Certains parcours avec une <strong>architecture un peu plus \u00e9volu\u00e9e<\/strong> selon les besoins<\/li>\n\n\n\n<li>Un <strong>socle autour des Coordinators<\/strong> pour g\u00e9rer les workflows et pouvoir les lancer de fa\u00e7on standalone<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Int\u00e9grer la nouvelle architecture dans le legacy<\/h2>\n\n\n\n<p><strong>Le plus dur n&rsquo;est pas de trouver l&rsquo;architecture, mais de l&rsquo;int\u00e9grer dans le projet existant avec du code legacy.<\/strong><\/p>\n\n\n\n<p>On a install\u00e9 le <strong>socle de base de la navigation de niveau 0<\/strong> dans un premier temps, en laissant toutes les features actuelles utiliser l&rsquo;ancien syst\u00e8me. On avait une TabBar au niveau 0, on s&rsquo;est concentr\u00e9s l\u00e0-dessus. Ensuite, on a <strong>prioris\u00e9 selon les enjeux business<\/strong> pour revoir les architectures de chaque partie. C&rsquo;est une phase qui n&rsquo;est pas facile, car il faut d&rsquo;un c\u00f4t\u00e9 op\u00e9rer ce changement, et de l&rsquo;autre <strong>garder en t\u00eate une strat\u00e9gie pour les parties qui n&rsquo;ont pas encore \u00e9t\u00e9 trait\u00e9es<\/strong>.<\/p>\n\n\n\n<p><strong>Bien noter ce qui ferait sens en fonction des enjeux business pour glisser des \u00e9volutions petit \u00e0 petit<\/strong>, c&rsquo;est essentiel. Essayez autant que possible de <strong>finir un chantier avant d&rsquo;en entamer un nouveau<\/strong>. Sinon, avec une charge mentale importante, vous risquez de perdre le recul n\u00e9cessaire pour adapter votre strat\u00e9gie au fur et \u00e0 mesure.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Adapter l&rsquo;architecture selon les besoins<\/h2>\n\n\n\n<p>Parfois, certaines parties de votre application ont besoin d&rsquo;une <strong>architecture un peu diff\u00e9rente<\/strong> pour fonctionner correctement. Et c&rsquo;est OK.<\/p>\n\n\n\n<p>\u00c7a a \u00e9t\u00e9 notre cas pour les parcours avec des <strong>formulaires complexes<\/strong> : collecte d&rsquo;informations utilisateur, validations venant du backend, structure pouvant \u00e9voluer avec les enjeux l\u00e9gaux. On a d\u00fb <strong>concevoir une architecture sp\u00e9cifique<\/strong> en s&rsquo;inspirant de patterns existants, tout en veillant \u00e0 ce qu&rsquo;elle se branche proprement au reste de notre socle.<\/p>\n\n\n\n<p><strong>On peut tr\u00e8s bien avoir diff\u00e9rentes architectures dans un m\u00eame projet<\/strong>, si c&rsquo;est justifi\u00e9. Les architectures que vous connaissez (MVC, MVVM, VIPER, etc.) ont toutes \u00e9t\u00e9 cr\u00e9\u00e9es pour r\u00e9pondre \u00e0 un besoin pr\u00e9cis. L&rsquo;important, c&rsquo;est d&rsquo;avoir une <strong>ligne directrice commune<\/strong> et de <strong>documenter pourquoi certaines parties divergent<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Les outils de cette phase<\/h2>\n\n\n\n<p>Dans cette phase de compr\u00e9hension, on a ajout\u00e9 des outils qui permettent de prendre du recul et de mesurer l&rsquo;\u00e9tat r\u00e9el du projet :<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"545\" src=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1024x545.jpg\" alt=\"outils dette profonde\" class=\"wp-image-40978\" srcset=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1024x545.jpg 1024w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-300x160.jpg 300w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-768x408.jpg 768w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1536x817.jpg 1536w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1500x798.jpg 1500w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1372x730.jpg 1372w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-980x521.jpg 980w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-575x306.jpg 575w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-600x319.jpg 600w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-700x372.jpg 700w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-480x255.jpg 480w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-515x274.jpg 515w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-490x261.jpg 490w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-360x191.jpg 360w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-330x176.jpg 330w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-173x92.jpg 173w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-150x80.jpg 150w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-100x53.jpg 100w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-20x11.jpg 20w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-40x21.jpg 40w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-140x74.jpg 140w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-200x106.jpg 200w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-315x168.jpg 315w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-658x350.jpg 658w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-560x298.jpg 560w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-623x331.jpg 623w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-475x253.jpg 475w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-576x306.jpg 576w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-992x528.jpg 992w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde-1440x766.jpg 1440w, https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/outils-dette-profonde.jpg 1728w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Outil<\/th><th>But \/ Mission<\/th><\/tr><\/thead><tbody><tr><td><strong>Tracking<\/strong><\/td><td>Comprendre les comportements utilisateurs et voir les parcours probl\u00e9matiques. Essentiel pour <strong>comprendre les enjeux business<\/strong> et prioriser les am\u00e9liorations techniques en les alignant avec les priorit\u00e9s de l&rsquo;entreprise.<\/td><\/tr><tr><td><strong>SonarQube<\/strong><\/td><td>Analyser la qualit\u00e9 globale du code et <strong>suivre les indicateurs de dette technique<\/strong> dans le temps.<\/td><\/tr><tr><td><strong>Visualisateur de librairies<\/strong><\/td><td>V\u00e9rifier les librairies utilis\u00e9es, faire un \u00e9tat des lieux, et voir si certaines peuvent \u00eatre remplac\u00e9es ou ont un <strong>impact fort sur le code core<\/strong>.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Le Tracking : comprendre les enjeux business<\/h3>\n\n\n\n<p>On a mis en place le <strong>Tracking<\/strong>. Certes, c&rsquo;est souvent vu comme un outil marketing, mais on a voulu en profiter pour <strong>comprendre les usages de nos utilisateurs<\/strong>. Comme dans la phase pr\u00e9c\u00e9dente avec les crashs, ici on affine les recherches pour <strong>identifier plus pr\u00e9cis\u00e9ment les probl\u00e8mes<\/strong> de l&rsquo;application.<\/p>\n\n\n\n<p>On a coupl\u00e9 le Tracking avec les <strong>Crash et NonFatal dans Firebase Crashlytics<\/strong>. R\u00e9sultat : on peut savoir ce que l&rsquo;utilisateur a fait dans les instants pr\u00e9c\u00e9dant un probl\u00e8me. <strong>C&rsquo;est pr\u00e9cieux pour le debug.<\/strong> On a aussi con\u00e7u notre Tracker pour \u00eatre <strong>modulaire<\/strong> : il peut partager les donn\u00e9es de tagging \u00e0 plusieurs outils en m\u00eame temps, que ce soit pour l&rsquo;analyse marketing ou pour le debug technique.<\/p>\n\n\n\n<p><strong>Je recommande d&rsquo;y aller par \u00e9tapes :<\/strong> mettre en place des outils d\u00e9taill\u00e9s alors que votre application pr\u00e9sente d\u00e9j\u00e0 des probl\u00e8mes majeurs visibles ne vaut peut-\u00eatre pas le coup. <strong>Cela peut m\u00eame vous surcharger de travail sur la dette, plut\u00f4t que de vous aider.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SonarQube : centraliser les m\u00e9triques<\/h3>\n\n\n\n<p>On a int\u00e9gr\u00e9 <strong>SonarQube<\/strong>, qui s&rsquo;inscrit dans la continuit\u00e9 du Linter, mais avec des <strong>r\u00e8gles suppl\u00e9mentaires et une centralisation<\/strong> pour les v\u00e9rifications lors des PRs. L&rsquo;avantage de la centralisation, c&rsquo;est qu&rsquo;on peut <strong>observer l&rsquo;\u00e9volution \u00e0 travers le temps<\/strong>.<\/p>\n\n\n\n<p><strong>Attention aux indicateurs de fa\u00e7ade<\/strong> : prenez le temps de voir avec l&rsquo;\u00e9quipe quels indicateurs permettront de comprendre que l&rsquo;application <strong>s&rsquo;am\u00e9liore r\u00e9ellement<\/strong>. Il n&rsquo;y a rien de pire que de voir des indicateurs qui ne correspondent pas \u00e0 ce que l&rsquo;on fait au quotidien.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Visualisateur de librairies : anticiper les blocages<\/h3>\n\n\n\n<p>C&rsquo;est un sujet qu&rsquo;on n\u00e9glige souvent, et pourtant <strong>il peut devenir critique<\/strong>. Une librairie d\u00e9pr\u00e9ci\u00e9e, une d\u00e9pendance qui bloque une mont\u00e9e de version d&rsquo;OS, une lib qui n&rsquo;est plus maintenue\u2026 et soudain, <strong>vous \u00eates bloqu\u00e9s<\/strong>. Le business attend une feature, mais vous ne pouvez pas avancer sans d&rsquo;abord r\u00e9gler ce probl\u00e8me technique.<\/p>\n\n\n\n<p>L&rsquo;id\u00e9e, c&rsquo;est d&rsquo;<strong>anticiper<\/strong>. Faites r\u00e9guli\u00e8rement un \u00e9tat des lieux de vos d\u00e9pendances :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Librairies d\u00e9pr\u00e9ci\u00e9es<\/strong> : est-ce qu&rsquo;une lib que vous utilisez n&rsquo;est plus maintenue ? Plus vous attendez, <strong>plus la migration sera douloureuse<\/strong>.<\/li>\n\n\n\n<li><strong>Blocages de mont\u00e9e de version<\/strong> : certaines libs peuvent vous emp\u00eacher de passer \u00e0 une nouvelle version d&rsquo;iOS ou Android. Si vous ne les identifiez pas \u00e0 l&rsquo;avance, <strong>vous d\u00e9couvrirez le probl\u00e8me au pire moment<\/strong>.<\/li>\n\n\n\n<li><strong>Libs structurantes vs libs rempla\u00e7ables<\/strong> : une lib d&rsquo;UI, \u00e7a se remplace. Une lib de navigation utilis\u00e9e partout, <strong>c&rsquo;est un chantier de plusieurs mois<\/strong>. Identifiez lesquelles sont critiques.<\/li>\n\n\n\n<li><strong>Licences et s\u00e9curit\u00e9<\/strong> : des libs avec des failles de s\u00e9curit\u00e9 connues ou des licences incompatibles <strong>peuvent devenir des bombes \u00e0 retardement<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Un point important : <strong>un choix de lib pertinent \u00e0 un instant T peut devenir obsol\u00e8te avec le temps<\/strong>. C&rsquo;est exactement ce qu&rsquo;on a v\u00e9cu avec l&rsquo;arriv\u00e9e de <strong>Compose<\/strong> et <strong>SwiftUI<\/strong> c\u00f4t\u00e9 mobile. Des solutions qu&rsquo;on avait choisies sont devenues legacy. On ne peut pas tout faire d&rsquo;un coup. <strong>On note tout, on partage avec l&rsquo;\u00e9quipe, et on se coordonne pour prioriser ensemble.<\/strong> Le pire sc\u00e9nario, c&rsquo;est de d\u00e9couvrir qu&rsquo;une lib bloque tout le jour o\u00f9 vous devez livrer une feature importante. <strong>Anticipez.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conseils pour cette phase<\/h2>\n\n\n\n<p>Dans cette phase de compr\u00e9hension globale, vous aurez peut-\u00eatre l&rsquo;impression d&rsquo;\u00eatre <strong>sur tous les fronts<\/strong>. Prenez bien le temps de corriger un maximum de remont\u00e9es \u00e0 chaque outil ajout\u00e9, afin de <strong>garder un rythme de fond<\/strong>.<\/p>\n\n\n\n<p><strong>Laissez-vous la possibilit\u00e9 d&rsquo;\u00e9voluer<\/strong> dans la fa\u00e7on dont vous g\u00e9rez les outils dans votre quotidien. Un outil et une fa\u00e7on d&rsquo;interagir avec lui <strong>ne seront pas les m\u00eames dans cette phase que dans la pr\u00e9c\u00e9dente<\/strong>, ni dans la suivante. Votre compr\u00e9hension et vos besoins vont \u00e9voluer.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00c0 retenir<\/h2>\n\n\n\n<p>Cette phase demande de la <strong>patience<\/strong> et de la <strong>rigueur<\/strong>. Les choix architecturaux que vous faites ici auront un <strong>impact durable sur la maintenabilit\u00e9<\/strong> de votre projet. Prenez le temps de bien les r\u00e9fl\u00e9chir et de <strong>les aligner avec les enjeux business<\/strong> de votre entreprise.<\/p>\n\n\n\n<p><em>Ce deuxi\u00e8me volet pr\u00e9pare le terrain pour le final de la s\u00e9rie. Si ces chantiers d&rsquo;architecture r\u00e9sonnent avec votre contexte, la prochaine \u00e9tape consiste \u00e0 rendre visible la dette cach\u00e9e et \u00e0 la piloter sereinement.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Une fois qu&rsquo;on conna\u00eet mieux un projet, on peut commencer \u00e0 se projeter. Pour nous, \u00e7a a \u00e9t\u00e9 au bout d&rsquo;un an et demi. On a commenc\u00e9 \u00e0 penser \u00e0 comment adapter l&rsquo;architecture c\u0153ur vers quelque chose qui nous faciliterait la vie dans le contexte de notre application. Ce deuxi\u00e8me volet passe de la d\u00e9couverte [&hellip;]<\/p>\n","protected":false},"author":49,"featured_media":40977,"comment_status":"closed","ping_status":"closed","template":"","categorie_leocare_lab":[37],"class_list":["post-40976","leocare_lab","type-leocare_lab","status-publish","has-post-thumbnail","hentry","categorie_leocare_lab-developers"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>LeoLab<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"LeoLab\" \/>\n<meta property=\"og:description\" content=\"Une fois qu&rsquo;on conna\u00eet mieux un projet, on peut commencer \u00e0 se projeter. Pour nous, \u00e7a a \u00e9t\u00e9 au bout d&rsquo;un an et demi. On a commenc\u00e9 \u00e0 penser \u00e0 comment adapter l&rsquo;architecture c\u0153ur vers quelque chose qui nous faciliterait la vie dans le contexte de notre application. Ce deuxi\u00e8me volet passe de la d\u00e9couverte [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Leocare, assurance en ligne automobile et habitation\" \/>\n<meta property=\"og:image\" content=\"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/carton-fragile.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"505\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"9 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"LeoLab","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/","og_locale":"fr_FR","og_type":"article","og_title":"LeoLab","og_description":"Une fois qu&rsquo;on conna\u00eet mieux un projet, on peut commencer \u00e0 se projeter. Pour nous, \u00e7a a \u00e9t\u00e9 au bout d&rsquo;un an et demi. On a commenc\u00e9 \u00e0 penser \u00e0 comment adapter l&rsquo;architecture c\u0153ur vers quelque chose qui nous faciliterait la vie dans le contexte de notre application. Ce deuxi\u00e8me volet passe de la d\u00e9couverte [&hellip;]","og_url":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/","og_site_name":"Leocare, assurance en ligne automobile et habitation","og_image":[{"width":800,"height":505,"url":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/carton-fragile.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/","url":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/","name":"LeoLab","isPartOf":{"@id":"https:\/\/leocare.eu\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/#primaryimage"},"image":{"@id":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/#primaryimage"},"thumbnailUrl":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/carton-fragile.jpg","datePublished":"2026-04-29T06:00:00+00:00","breadcrumb":{"@id":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/leocare.eu\/fr\/leocare-lab\/comment-resorber-sa-dette-technique-partie-2\/#primaryimage","url":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/carton-fragile.jpg","contentUrl":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2026\/04\/carton-fragile.jpg","width":800,"height":505,"caption":"carton fragile"},{"@type":"WebSite","@id":"https:\/\/leocare.eu\/fr\/#website","url":"https:\/\/leocare.eu\/fr\/","name":"Leocare, assurance en ligne automobile et habitation","description":"enfin (r)assur\u00e9.e","publisher":{"@id":"https:\/\/leocare.eu\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/leocare.eu\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/leocare.eu\/fr\/#organization","name":"Leocare, assurance en ligne automobile et habitation","url":"https:\/\/leocare.eu\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/leocare.eu\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2020\/03\/logo-leocare.svg","contentUrl":"https:\/\/leocare.eu\/fr\/wp-content\/uploads\/2020\/03\/logo-leocare.svg","caption":"Leocare, assurance en ligne automobile et habitation"},"image":{"@id":"https:\/\/leocare.eu\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/leocare_lab\/40976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/leocare_lab"}],"about":[{"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/types\/leocare_lab"}],"author":[{"embeddable":true,"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/users\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/comments?post=40976"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/media\/40977"}],"wp:attachment":[{"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/media?parent=40976"}],"wp:term":[{"taxonomy":"categorie_leocare_lab","embeddable":true,"href":"https:\/\/leocare.eu\/fr\/wp-json\/wp\/v2\/categorie_leocare_lab?post=40976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}