[{"data":1,"prerenderedAt":528},["ShallowReactive",2],{"/fr/dette-technique/boite-a-outils-craft-app-durable":3,"search-api":-1},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"id":10,"date":11,"listed":12,"nocomments":6,"hidden":6,"categories":13,"tags":14,"cover":18,"readingTime":19,"body":24,"_type":522,"_id":523,"_source":524,"_file":525,"_stem":526,"_extension":527},"/fr/dette-technique/boite-a-outils-craft-app-durable","dette-technique",false,"","La boîte à outils craft qui empêche une app de mourir à 18 mois","Ce n'est pas la discipline qui empêche une app de mourir, c'est un système qui dit non à votre place. Les six couches de garde-fous craft qui tiennent mon CRM.",71,"2026-06-17",true,[5],[15,16,17],"Outillage craft","Dette technique","CI/CD","covers/articles/boite-a-outils-craft-app-durable.jpg",{"text":20,"minutes":21,"time":22,"words":23},"11 min read",10.84,650400,2168,{"type":25,"children":26,"toc":504},"root",[27,39,44,48,55,60,65,70,84,98,101,107,112,186,191,194,207,210,216,221,228,233,239,244,250,255,261,274,280,285,291,303,306,312,317,327,337,355,358,364,369,374,379,382,394,397,403,408,413,416,422,437,450,463,476,489,492],{"type":28,"tag":29,"props":30,"children":31},"element","p",{},[32],{"type":28,"tag":33,"props":34,"children":35},"strong",{},[36],{"type":37,"value":38},"text","On me demande souvent quel est mon secret pour qu'une app tienne dans le temps. La réponse déçoit toujours : il n'y a pas de secret, juste un système qui reste vigilant quand moi je ne le suis plus. Voici l'atelier complet derrière crmcoaching, le CRM que je développe seul.",{"type":28,"tag":29,"props":40,"children":41},{},[42],{"type":37,"value":43},"Pendant 25 ans, dans des banques, des médias et des assurances, j'ai vu le même film : des équipes compétentes, un produit qui démarre vite, et un système qui devient une boîte noire au bout de 18 mois. Quand j'ai lancé mon propre SaaS, je me suis posé une question simple. Comment un seul développeur, qui code avec une IA qui produit dix fois plus vite qu'avant, peut-il empêcher sa codebase de pourrir ? La réponse n'est pas la discipline. C'est une boîte à outils craft où chaque outil dit \"non\" tout seul, à ma place, à 23h, le vendredi soir où je n'ai plus la lucidité de le faire.",{"type":28,"tag":45,"props":46,"children":47},"hr",{},[],{"type":28,"tag":49,"props":50,"children":52},"h2",{"id":51},"pourquoi-la-discipline-ne-passe-pas-à-léchelle-mais-le-système-oui",[53],{"type":37,"value":54},"Pourquoi la discipline ne passe pas à l'échelle (mais le système, oui)",{"type":28,"tag":29,"props":56,"children":57},{},[58],{"type":37,"value":59},"Commençons par le mécanisme. Le code, comme tout système, tend vers le désordre. C'est la deuxième loi de la thermodynamique appliquée au logiciel : sans énergie injectée en permanence, l'entropie augmente. Une fonction grossit, un module en appelle un autre qu'il ne devrait pas connaître, une dépendance non auditée entre dans l'arbre.",{"type":28,"tag":29,"props":61,"children":62},{},[63],{"type":37,"value":64},"L'IA n'a pas créé ce problème, elle l'a accéléré. Quand Claude ou Copilot génèrent du code dix fois plus vite, ils génèrent aussi dix fois plus d'entropie potentielle. Une étude GitClear sur 2024 a mesuré une hausse de 8 fois du code dupliqué dans les dépôts fortement assistés par IA. Le volume monte, la cohérence baisse.",{"type":28,"tag":29,"props":66,"children":67},{},[68],{"type":37,"value":69},"La défense classique, c'est la vigilance humaine : la revue de code, l'attention, la rigueur. Sur le papier, c'est solide. Dans la vraie vie, c'est héroïque et fragile. Un humain fatigue, fait une exception \"juste cette fois\", laisse passer un raccourci un soir de rush. Un outil, lui, ne fatigue jamais. Il applique la même règle au commit numéro 1 et au commit numéro 3000.",{"type":28,"tag":71,"props":72,"children":73},"blockquote",{},[74],{"type":28,"tag":29,"props":75,"children":76},{},[77,82],{"type":28,"tag":33,"props":78,"children":79},{},[80],{"type":37,"value":81},"Ce que j'ai observé",{"type":37,"value":83}," : sur crmcoaching, j'ai longtemps gardé une règle de complexité en simple avertissement. Tant que c'était un warning, je le contournais sans y penser. Le jour où je l'ai passée en erreur bloquante, l'intégration s'est arrêtée net sur trois fonctions devenues illisibles. Ce n'était pas un problème de discipline. C'était un problème de système : tant que la règle n'est pas physique, elle n'existe pas.",{"type":28,"tag":29,"props":85,"children":86},{},[87,89,96],{"type":37,"value":88},"C'est le coeur de ma méthode : transformer chaque règle craft en point fixe automatique. Un point fixe, c'est un garde-fou qui rattrape une erreur sans intervention humaine. La durabilité d'une app se mesure au nombre de points fixes actifs multiplié par leur couverture. C'est exactement l'antidote aux ",{"type":28,"tag":90,"props":91,"children":93},"a",{"href":92},"/fr/dette-technique/5-raisons-app-meurt-18-mois",[94],{"type":37,"value":95},"cinq raisons qui font mourir une app à 18 mois",{"type":37,"value":97},".",{"type":28,"tag":45,"props":99,"children":100},{},[],{"type":28,"tag":49,"props":102,"children":104},{"id":103},"les-six-signaux-qui-disent-que-votre-codebase-na-pas-de-garde-fous",[105],{"type":37,"value":106},"Les six signaux qui disent que votre codebase n'a pas de garde-fous",{"type":28,"tag":29,"props":108,"children":109},{},[110],{"type":37,"value":111},"Avant de détailler l'atelier, voici comment savoir si le vôtre est trop léger. Ces signaux sont observables dès demain matin.",{"type":28,"tag":113,"props":114,"children":115},"ul",{},[116,127,137,156,166,176],{"type":28,"tag":117,"props":118,"children":119},"li",{},[120,125],{"type":28,"tag":33,"props":121,"children":122},{},[123],{"type":37,"value":124},"Signal 1 : la qualité dépend de qui relit.",{"type":37,"value":126}," Si un commit propre ou pourri ne dépend que de l'attention du relecteur ce jour-là, vous n'avez pas de système, vous avez de la chance.",{"type":28,"tag":117,"props":128,"children":129},{},[130,135],{"type":28,"tag":33,"props":131,"children":132},{},[133],{"type":37,"value":134},"Signal 2 : aucune règle n'est bloquante.",{"type":37,"value":136}," Tout est en avertissement, rien n'arrête un merge. Un avertissement que personne ne traite est une décoration, pas un garde-fou.",{"type":28,"tag":117,"props":138,"children":139},{},[140,145,147,154],{"type":28,"tag":33,"props":141,"children":142},{},[143],{"type":37,"value":144},"Signal 3 : vous ne savez pas ce que vos dépendances contiennent.",{"type":37,"value":146}," Combien de paquets transitifs dans votre ",{"type":28,"tag":148,"props":149,"children":151},"code",{"className":150},[],[152],{"type":37,"value":153},"node_modules",{"type":37,"value":155}," ? Quelles licences ? Quelles failles connues ? Si la réponse est \"aucune idée\", la dette est déjà là.",{"type":28,"tag":117,"props":157,"children":158},{},[159,164],{"type":28,"tag":33,"props":160,"children":161},{},[162],{"type":37,"value":163},"Signal 4 : vos tests testent des mocks.",{"type":37,"value":165}," Couverture à 85%, et pourtant ça plante en production. Vos tests vérifient le code, pas le comportement.",{"type":28,"tag":117,"props":167,"children":168},{},[169,174],{"type":28,"tag":33,"props":170,"children":171},{},[172],{"type":37,"value":173},"Signal 5 : la production vous apprend les pannes.",{"type":37,"value":175}," Vous découvrez les incidents par les utilisateurs, pas par une alerte. Le garde-fou s'arrête au merge au lieu de surveiller le live.",{"type":28,"tag":117,"props":177,"children":178},{},[179,184],{"type":28,"tag":33,"props":180,"children":181},{},[182],{"type":37,"value":183},"Signal 6 : l'IA code sans cadre.",{"type":37,"value":185}," Vous acceptez les suggestions sans politique, sans règles versionnées, sans filet en aval. L'outil le plus rapide de votre équipe est aussi le moins encadré.",{"type":28,"tag":29,"props":187,"children":188},{},[189],{"type":37,"value":190},"Si vous cochez trois de ces signaux, votre app tient à la vigilance, pas au craft. Et la vigilance ne passe pas l'échelle.",{"type":28,"tag":45,"props":192,"children":193},{},[],{"type":28,"tag":195,"props":196,"children":201},"cta",{"cta":197,"href":198,"title":199,"type":200},"Coder comme un senior →","https://app.kamanga.fr/forms/mentoring","Votre codebase pourrit et vous ne savez pas par où la verrouiller ?","call",[202],{"type":28,"tag":29,"props":203,"children":204},{},[205],{"type":37,"value":206},"Reconnaître les signaux est une chose, installer les bons points fixes sur une codebase qui existe déjà en est une autre. En mentoring 1:1, on part de votre repo réel et on pose ensemble les premiers garde-fous qui comptent, dans le bon ordre, sans tout casser.",{"type":28,"tag":45,"props":208,"children":209},{},[],{"type":28,"tag":49,"props":211,"children":213},{"id":212},"mon-atelier-en-six-couches-de-défense",[214],{"type":37,"value":215},"Mon atelier en six couches de défense",{"type":28,"tag":29,"props":217,"children":218},{},[219],{"type":37,"value":220},"Je n'ai pas 50 outils en vrac. J'ai six couches, et chaque couche rattrape ce que les autres laissent passer. C'est de la défense en profondeur, le principe que les équipes sécurité connaissent bien : aucun rempart unique, mais un empilement où il faut tout franchir pour casser le système.",{"type":28,"tag":222,"props":223,"children":225},"h3",{"id":224},"couche-1-construire-vite-et-juste",[226],{"type":37,"value":227},"Couche 1 : construire vite et juste",{"type":28,"tag":29,"props":229,"children":230},{},[231],{"type":37,"value":232},"Le socle, c'est l'orchestration et les types. Turborepo met en cache chaque tâche et ne rejoue que ce qui a changé. pnpm mutualise les dépendances et porte deux garde-fous discrets : une liste blanche des paquets autorisés à exécuter un script d'installation, et un mécanisme pour forcer une version corrigée d'une dépendance transitive. TypeScript en mode strict casse à la compilation ce qui casserait sinon en production. Le cache et les types ne sont pas du confort : ce sont les premiers points fixes. Rejouer moins, échouer plus tôt.",{"type":28,"tag":222,"props":234,"children":236},{"id":235},"couche-2-tenir-larchitecture",[237],{"type":37,"value":238},"Couche 2 : tenir l'architecture",{"type":28,"tag":29,"props":240,"children":241},{},[242],{"type":37,"value":243},"Ici, la règle devient physique. Biome, un linter écrit en Rust, fait échouer le build quand une fonction dépasse 50 lignes ou quand sa complexité cognitive franchit 15. J'ai un script maison qui empêche même de redescendre une règle d'erreur en avertissement en douce. Au-dessus, un analyseur de graphe d'imports vérifie que mon domaine métier n'importe jamais la base de données ni le framework : une frontière qu'aucun test ni aucune erreur de type ne détecterait. Ce verrou de complexité, c'est ce qui m'évite les fonctions de 80 lignes que l'IA produit sans broncher dès qu'on la laisse faire.",{"type":28,"tag":222,"props":245,"children":247},{"id":246},"couche-3-prouver-que-ça-marche",[248],{"type":37,"value":249},"Couche 3 : prouver que ça marche",{"type":28,"tag":29,"props":251,"children":252},{},[253],{"type":37,"value":254},"Trois niveaux de tests : unitaires rapides sans base de données, intégration contre une vraie base PostgreSQL jetable, et bout en bout qui pilotent un navigateur réel comme un utilisateur. Au-dessus, la couverture qui ne peut que monter, et une matrice qui relie chaque exigence à son test. Le test n'est pas un filet posé après coup, c'est une preuve versionnée que le comportement attendu existe.",{"type":28,"tag":222,"props":256,"children":258},{"id":257},"couche-4-verrouiller-la-chaîne-dapprovisionnement",[259],{"type":37,"value":260},"Couche 4 : verrouiller la chaîne d'approvisionnement",{"type":28,"tag":29,"props":262,"children":263},{},[264,266,272],{"type":37,"value":265},"C'est le coeur, parce que c'est là que l'IA fait le plus de dégâts silencieux. Trois questions, un même réflexe. Mes dépendances sont-elles fraîches ? Dependabot ouvre les mises à jour, regroupées pour ne pas me noyer sous les notifications. C'est tout le sujet de ",{"type":28,"tag":90,"props":267,"children":269},{"href":268},"/fr/dette-technique/dependabot-craft-gestion-dependances",[270],{"type":37,"value":271},"la gestion des dépendances avec Dependabot",{"type":37,"value":273},". Sont-elles légales ? Un contrôle de licences compare chaque paquet à une liste blanche et bloque le push si une licence inconnue entre. Sont-elles sûres ? Un scanner de vulnérabilités refuse le merge dès qu'une faille critique apparaît, même trois niveaux sous mes dépendances directes. À cela s'ajoutent un scanner de secrets et une analyse statique de sécurité. Chacun de ces outils dit \"non\" à ma place.",{"type":28,"tag":222,"props":275,"children":277},{"id":276},"couche-5-garder-la-main-en-production",[278],{"type":37,"value":279},"Couche 5 : garder la main en production",{"type":28,"tag":29,"props":281,"children":282},{},[283],{"type":37,"value":284},"Le point fixe ne s'arrête pas au merge. Des en-têtes HTTP de sécurité et une limitation de débit durcissent l'API. Un outil de suivi d'erreurs capture chaque exception avec sa trace complète. Un monitoring synthétique rejoue mes parcours critiques sur l'app déployée, et une sonde vérifie la disponibilité brute toutes les trois minutes. Le déploiement ne se déclenche que sur une CI verte, jamais sur un build en cours ou rouge.",{"type":28,"tag":222,"props":286,"children":288},{"id":287},"couche-6-encadrer-lia-pas-la-lâcher",[289],{"type":37,"value":290},"Couche 6 : encadrer l'IA, pas la lâcher",{"type":28,"tag":29,"props":292,"children":293},{},[294,296,302],{"type":37,"value":295},"La méta-couche. Mon assistant de développement suit un pipeline imposé : cadrage, exigences, spécification, plan, implémentation, revue. Des règles versionnées chargées à chaque session. Une documentation à jour injectée pour éviter les hallucinations sur les versions récentes des librairies. L'IA n'est ni le danger ni la magie : c'est un ouvrier rapide qu'on encadre avec le même réflexe craft que le reste. C'est aussi ma réponse concrète aux ",{"type":28,"tag":90,"props":297,"children":299},{"href":298},"/fr/intelligence-artificielle/5-patterns-dangereux-claude",[300],{"type":37,"value":301},"cinq patterns dangereux que l'IA reproduit",{"type":37,"value":97},{"type":28,"tag":45,"props":304,"children":305},{},[],{"type":28,"tag":49,"props":307,"children":309},{"id":308},"les-trois-pièges-qui-vident-un-atelier-de-sa-valeur",[310],{"type":37,"value":311},"Les trois pièges qui vident un atelier de sa valeur",{"type":28,"tag":29,"props":313,"children":314},{},[315],{"type":37,"value":316},"J'ai construit cet atelier en faisant des erreurs. Voici les trois à éviter.",{"type":28,"tag":29,"props":318,"children":319},{},[320,325],{"type":28,"tag":33,"props":321,"children":322},{},[323],{"type":37,"value":324},"Le garde-fou non bloquant.",{"type":37,"value":326}," Une règle en avertissement n'est pas un garde-fou, c'est une suggestion. Tant qu'un merge passe malgré le signal rouge, le signal n'existe pas. Si vous installez un outil, rendez-le bloquant ou ne l'installez pas.",{"type":28,"tag":29,"props":328,"children":329},{},[330,335],{"type":28,"tag":33,"props":331,"children":332},{},[333],{"type":37,"value":334},"Le hook local sans relais en CI.",{"type":37,"value":336}," Un contrôle qui ne tourne que sur votre machine se contourne en une variable d'environnement. Le hook local, c'est le confort (un retour en deux secondes). La CI, c'est le contrat (rien ne merge sans passer). Il faut les deux, jamais l'un sans l'autre.",{"type":28,"tag":29,"props":338,"children":339},{},[340,345,347,353],{"type":28,"tag":33,"props":341,"children":342},{},[343],{"type":37,"value":344},"L'exception non tracée.",{"type":37,"value":346}," Désactiver une règle \"juste pour débloquer\" sans date ni raison, c'est de la dette cachée. La même exception avec une justification versionnée et une date de revue, c'est de la dette tracée. C'est le réflexe de ",{"type":28,"tag":90,"props":348,"children":350},{"href":349},"/fr/architecture-craft/adr-architecture-decision-record",[351],{"type":37,"value":352},"l'ADR appliqué à chaque garde-fou",{"type":37,"value":354}," : une décision assumée, datée, justifiée.",{"type":28,"tag":45,"props":356,"children":357},{},[],{"type":28,"tag":49,"props":359,"children":361},{"id":360},"ce-que-ça-change-concrètement",[362],{"type":37,"value":363},"Ce que ça change concrètement",{"type":28,"tag":29,"props":365,"children":366},{},[367],{"type":37,"value":368},"Le résultat n'est pas théorique. Sur crmcoaching, je tiens aujourd'hui une douzaine de points fixes actifs : lint syntaxique, lint d'architecture, verrou de complexité, trois niveaux de tests, contrôle de licences, scan de vulnérabilités, scan de secrets, validation des migrations, monitoring de production. Neuf workflows d'intégration continue, plus de cinquante décisions d'architecture tracées en six mois.",{"type":28,"tag":29,"props":370,"children":371},{},[372],{"type":37,"value":373},"L'effet économique est direct. Code, système, organisation, valeur : chaque garde-fou rattrape un défaut au niveau du code avant qu'il ne contamine le système, puis l'organisation, puis le coût. Un bug attrapé par un linter coûte quelques secondes. Le même bug en production coûte un incident, une astreinte, un client perdu. La règle craft que je répète en mission tient en une phrase : un logiciel bien conçu n'est pas une question d'esthétique, c'est une capacité à changer vite, sans casser, sans peur.",{"type":28,"tag":29,"props":375,"children":376},{},[377],{"type":37,"value":378},"Et le gain le plus important est invisible : je code seul, avec une IA, sur un produit que je vends, et je dors la nuit. Pas parce que je suis vigilant. Parce que mon système l'est à ma place.",{"type":28,"tag":45,"props":380,"children":381},{},[],{"type":28,"tag":195,"props":383,"children":388},{"cta":384,"href":385,"title":386,"type":387},"Les 100 pratiques que l'IA n'enseigne pas →","https://kamanga.fr/referentiel-craft","Les réflexes craft que l'IA ne vous donnera jamais","product",[389],{"type":28,"tag":29,"props":390,"children":391},{},[392],{"type":37,"value":393},"Cet atelier repose sur des réflexes que l'IA ne suggère pas spontanément. Le Craft Bundle réunit les 100 pratiques craft à connaître pour coder propre, verrouiller votre codebase et gagner le temps que la dette vous prend. Le référentiel que j'aurais voulu avoir à mes débuts.",{"type":28,"tag":45,"props":395,"children":396},{},[],{"type":28,"tag":49,"props":398,"children":400},{"id":399},"conclusion",[401],{"type":37,"value":402},"Conclusion",{"type":28,"tag":29,"props":404,"children":405},{},[406],{"type":37,"value":407},"Ce que je veux que vous reteniez, c'est qu'aucun outil ne sauve une app à lui seul. C'est l'empilement qui tient : construire, tenir l'architecture, prouver, verrouiller la chaîne, surveiller la production, encadrer l'IA. Au bout d'une dizaine de crans contre l'entropie, votre code ne meurt plus à 18 mois, il tient dix ans.",{"type":28,"tag":29,"props":409,"children":410},{},[411],{"type":37,"value":412},"La bonne nouvelle, c'est que chacun de ces outils est public, documenté, et reproductible en une après-midi. Vous n'avez pas besoin des cinquante d'un coup. Vous avez besoin du premier point fixe, puis du deuxième. Si en lisant ces lignes vous avez réalisé que votre codebase tient à votre seule vigilance, c'est probablement le bon moment pour poser votre premier garde-fou physique.",{"type":28,"tag":45,"props":414,"children":415},{},[],{"type":28,"tag":49,"props":417,"children":419},{"id":418},"faq-sur-la-boîte-à-outils-craft",[420],{"type":37,"value":421},"FAQ sur la boîte à outils craft",{"type":28,"tag":423,"props":424,"children":425},"details",{},[426,432],{"type":28,"tag":427,"props":428,"children":429},"summary",{},[430],{"type":37,"value":431},"1. Cinquante outils pour un seul développeur, ce n'est pas de la sur-ingénierie ?",{"type":28,"tag":29,"props":433,"children":434},{},[435],{"type":37,"value":436},"Non, parce que je n'ai pas codé ces outils, je les ai branchés. Chacun est une dépendance de quelques minutes d'installation et de configuration. Le coût est marginal, le retour est permanent : ils tournent à chaque commit sans que j'y pense. La sur-ingénierie, ce serait d'écrire ces garde-fous moi-même. Les assembler, c'est juste du craft.",{"type":28,"tag":423,"props":438,"children":439},{},[440,445],{"type":28,"tag":427,"props":441,"children":442},{},[443],{"type":37,"value":444},"2. Par quel outil commencer si je n'ai rien aujourd'hui ?",{"type":28,"tag":29,"props":446,"children":447},{},[448],{"type":37,"value":449},"Par la couche 2 : un linter bloquant sur la complexité et la taille des fonctions. C'est l'outil au meilleur rapport effort/impact, il attrape la dette la plus fréquente et son installation prend une heure. Ensuite, ajoutez un scan de secrets en CI pour ne jamais fuiter une clé. Ces deux-là couvrent déjà les erreurs les plus coûteuses.",{"type":28,"tag":423,"props":451,"children":452},{},[453,458],{"type":28,"tag":427,"props":454,"children":455},{},[456],{"type":37,"value":457},"3. Est-ce que cet atelier ralentit le développement au quotidien ?",{"type":28,"tag":29,"props":459,"children":460},{},[461],{"type":37,"value":462},"L'inverse. Le cache de build divise le temps de CI, les types attrapent les erreurs avant l'exécution, et les garde-fous m'évitent les allers-retours de revue. Le seul moment où un outil \"ralentit\", c'est quand il bloque un commit qui aurait créé un incident. Ce ralentissement-là, je le paie volontiers.",{"type":28,"tag":423,"props":464,"children":465},{},[466,471],{"type":28,"tag":427,"props":467,"children":468},{},[469],{"type":37,"value":470},"4. Ces outils sont-ils spécifiques à TypeScript et à mon CRM ?",{"type":28,"tag":29,"props":472,"children":473},{},[474],{"type":37,"value":475},"Les noms changent, le principe non. Un verrou de complexité existe en Java avec SonarQube, un contrôle de licences existe dans tous les écosystèmes, un scan de vulnérabilités aussi. J'ai construit cet atelier sur crmcoaching en TypeScript, mais les six couches de défense se transposent à n'importe quelle stack. Ce qui compte, c'est de rendre chaque règle physique et bloquante.",{"type":28,"tag":423,"props":477,"children":478},{},[479,484],{"type":28,"tag":427,"props":480,"children":481},{},[482],{"type":37,"value":483},"5. L'IA ne va-t-elle pas finir par produire du code propre sans tous ces garde-fous ?",{"type":28,"tag":29,"props":485,"children":486},{},[487],{"type":37,"value":488},"L'IA accélère la production, elle ne remplace pas le jugement. Elle optimise pour \"ça compile et les tests passent\", pas pour \"ça tient dans cinq ans\". Tant que c'est le cas, les garde-fous restent le seul moyen de tenir le craft à l'échelle de ce qu'elle génère. L'outil le plus rapide de votre équipe a besoin du cadre le plus solide.",{"type":28,"tag":45,"props":490,"children":491},{},[],{"type":28,"tag":195,"props":493,"children":498},{"cta":494,"href":495,"title":496,"type":497},"Passer à l'action, gratuitement →","/mes-ressources","Ressource gratuite : l'auto-audit de maturité engineering","resource",[499],{"type":28,"tag":29,"props":500,"children":501},{},[502],{"type":37,"value":503},"Avant d'empiler les outils, mesurez où vous en êtes. L'auto-audit de maturité engineering est une grille à cinq niveaux qui révèle vos angles morts (qualité, tests, sécurité, chaîne de dépendances, production) et vous dit quel point fixe poser en premier. Gratuit, guidé, scoring visuel.",{"title":7,"searchDepth":505,"depth":505,"links":506},2,[507,508,509,518,519,520,521],{"id":51,"depth":505,"text":54},{"id":103,"depth":505,"text":106},{"id":212,"depth":505,"text":215,"children":510},[511,513,514,515,516,517],{"id":224,"depth":512,"text":227},3,{"id":235,"depth":512,"text":238},{"id":246,"depth":512,"text":249},{"id":257,"depth":512,"text":260},{"id":276,"depth":512,"text":279},{"id":287,"depth":512,"text":290},{"id":308,"depth":505,"text":311},{"id":360,"depth":505,"text":363},{"id":399,"depth":505,"text":402},{"id":418,"depth":505,"text":421},"markdown","content:fr:dette-technique:boite-a-outils-craft-app-durable.md","content","fr/dette-technique/boite-a-outils-craft-app-durable.md","fr/dette-technique/boite-a-outils-craft-app-durable","md",1782669284214]