Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Devoxx FR 2023 - Gestion de la dette d'architec...

Devoxx FR 2023 - Gestion de la dette d'architecture dans un contexte d'hypercroissance

La dette d’architecture est une sous partie de la dette technique qui traite des problèmes inhérents à l’architecture des systèmes d’information.

La dette d’architecture, causée par de nombreux facteurs techniques, organisationnels ou humains, augmente avec le temps et a des impacts majeurs sur la vélocité et la motivation des équipes.

Identifiée et mesurée, elle peut être réduite lors de transformations majeures ou refactorings ciblés. Alors que la dette technique est connue, outillée et couverte par de nombreuses thèses et articles, la dette d’architecture, malgré son potentiel impact majeur, n’est que très peu maitrisée.

Dans ce talk, j’aimerais partager le concept de dette d’architecture, détailler les travaux déjà effectués pour la définir et expliquer comment la mesurer grâce à la construction d’un framework au sein mon entreprise.

Ce travail est basé sur une expérience pratique dans une entreprise en hyper-croissance et sur le travail théorique de Roberto Verdecchia, Antonio Martin.

Avatar for Cyril Beslay

Cyril Beslay

April 26, 2023
Tweet

More Decks by Cyril Beslay

Other Decks in Technology

Transcript

  1. 3

  2. 1 - DETTE TECHNIQUE ET DETTE D'ARCHITECTURE 2 - COMMENT

    LA MANAGER ? 3 - MANOMANO ET LA DETTE 4
  3. Concept de développement logiciel inventé par Ward Cunningham en 1992

    Créateur du wiki, co-créateur de l'eXtreme Programming, co-auteur du Manifesto Agile !!! 6
  4. "implied cost of additional rework caused by choosing an easy

    (limited) solution now instead of using a better approach that would take longer" 7
  5. Je code en dur les jours fériés dans mon application

    de gestion de congés solution facile ✅ nécessite du travail supplémentaire dans le futur 🫣 une autre solution plus pérenne mais plus coûteuse existe (BDD) 🤔 8
  6. 9

  7. Les développeurs, ingénieurs, product managers, ... sont-ils de bons payeurs

    ? - Comment gérer cette dette sans autorité de contrôle (banque) ? - Un choix ? Un choix libre ? - Quand contracter une dette ? 11
  8. De multiples types de dette : Technique (code, tests, infra,

    ...) Fonctionnelle (bugs) Sécurité Légale Architecture ... 13
  9. "Dans un composant ou tout process fonctionnel, écart entre le

    système actuel et les principes d'architecture / standards de l'entreprise." 14
  10. Pattern Circuit Breaker Tout appel API vers un service externe

    doit implémenter le pattern Circuit Breaker 15
  11. Pattern Circuit Breaker Tout appel API vers un service externe

    doit implémenter le pattern Circuit Breaker L'équipe A développe un Micro Service qui fait des appels à l'API La Poste sans Circuit Breaker 16
  12. Le POC qui devient la norme Une équipe a fait

    un POC avec une nouvelle technologie et l'a poussé en PROD pour vérifier l'attrait client 17
  13. Le POC qui devient la norme Une équipe a fait

    un POC avec une nouvelle technologie et l'a poussé en PROD pour vérifier l'attrait client 6 mois plus tard, le POC est toujours là et l'équipe a changé 18
  14. DETTE D'ARCHITECTURE - TYPOLOGIES choix facile (limité) d’une solution aujourd'hui

    par rapport à une meilleure approche mauvais choix de framework/outil produit qui stagne dans un contexte évolutif projet de migration non terminé création/changement de standards ... 19
  15. Dette d'architecture = analyse statique impossible Outils immatures et "inutiles"

    Difficile de quantifier l'impact, de prioriser Par où commencer ? 21
  16. CAUSES PRINCIPALES EXTERNES Business Pression et délais raccourcis Non compréhension

    du concept de dette Domaine métier volatile Peu de vision long terme 24
  17. 27

  18. 29

  19. "Il n'y a que John qui sait gérer ça" 2

    micro services sont toujours livrés en même temps Temps pour analyser/résoudre un bug Complexité excessive (3 systèmes en parallèle) 30
  20. Augmentation des coûts pour les nouvelles fonctionnalités Augmentation des bugs

    Augmentation des risques de régressions/crashs Augmentation du niveau de compétence requis Diminution de la qualité du produit 31
  21. 32

  22. Pour un crédit (dette), il y a toujours quelqu’un pour

    vous rappeler qu’il faut payer tous les mois (banque) 34
  23. ⚠️ Accumuler des dettes Banqueroute = tout jeter / non

    maintenable / plus de temps à fixer qu’à ajouter de la valeur 35
  24. 🎯 Ne pas créer de dette = 🐌 Ne pas

    saisir les opportunités d'accélération/d'innovation 38.1
  25. BONNES PRATIQUES Penser l'architecture / Faire de la conception Anticiper

    les besoins fonctionnels Noter les décisions et leurs impacts via ADR 41
  26. BONNES PRATIQUES Penser l'architecture / Faire de la conception Anticiper

    les besoins fonctionnels Noter les décisions et leurs impacts via ADR Créer des tickets de dette 42
  27. STRATÉGIE ACTIVE DE MANAGEMENT Scout Rule 20% temps par Sprint

    Investir plus de temps dans les plans de refactor/architecture 47
  28. STRATÉGIE RÉACTIVE DE MANAGEMENT Correction opportuniste (nouveau gros projet) Gel

    des nouvelles fonctionnalités Réecrire en entier un composant/process 51
  29. 56

  30. Chez ManoMano Projet X ne suit pas les standards Ça

    marche, on fait + de ventes 🚀 On corrige la dette Chez Airbus Projet X ne suit pas les standards Avion qui ne décolle pas 🛬 64
  31. SECONDE APPROCHE Récolte de données par méthode qualitative Entretiens en

    2 parties avec équipes Techniques (Managers et Tech Lead) 69
  32. QUELQUES QUESTIONS "Si vous aviez carte blanche, quelle partie de

    votre périmètre vous voudriez refactorer ? Pour quelles raisons ?" "Quels échanges avec d'autres équipes ou systèmes vous paraissent complexes ou fragiles ?" "Avez-vous pris de gros raccourcis par rapports aux standards de <theme> ?" "Êtes-vous en retard dans la maintenance de vos librairies open-source ?" 70
  33. 71

  34. POUR CHAQUE ARCHITECTURE BUILDING BLOCK Risque Quel est le risque

    que cela crée des problèmes dans le futur ? Temps Quand cela risque-t-il d'arriver ? Impact Quel impact sur l'utilisateur final ? Efficacité Quel impact sur l'efficacité de l'équipe ? Déviation Quel est l'écart vis-à-vis de nos standards ? 73
  35. 74

  36. 75

  37. 76

  38. 77

  39. CHALLENGER Mettre en corrélation les résultats des enquêtes avec :

    la fréquence des incidents par domaine la vélocité des équipes (Epic Cycle Time) depuis JIRA le suivi des Programmes / migrations la mesure de la dette technique brute depuis Sonar / JIRA 79
  40. PRIORISER Présentation des cartes, des alertes aux CTO + Directeurs

    Techniques Sensibilisation du business sur les notions de dette technique Segmentation des tâches nécessaires en plus petits morceaux Suivi et collecte chaque trimestre 80
  41. "La dette est trop importante dans cette partie du système,

    il faut la nettoyer avant de faire de nouvelles fonctionnalités." 81
  42. QUELQUES RETOURS D'EXPÉRIENCE Reconnaître que la dette technique n'est pas

    toujours mauvaise Combattre les idées reçues dans toute l'entreprise Arrêter de tout mettre sous le tapis "dette technique" Revoir les critères de score + une note Métier ? Itérer et améliorer 82
  43. TAKEWAYS Définir ses standards/principes d'architecture Démystifier la dette dans toute

    l'entreprise Identifier et caractériser régulièrement 83.3
  44. TAKEWAYS Définir ses standards/principes d'architecture Démystifier la dette dans toute

    l'entreprise Identifier et caractériser régulièrement Adopter différentes stratégies de management 83.4
  45. TAKEWAYS Définir ses standards/principes d'architecture Démystifier la dette dans toute

    l'entreprise Identifier et caractériser régulièrement Adopter différentes stratégies de management Construire ses propres outils 83.5
  46. 85