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

Apprivoiser la dette technique

Apprivoiser la dette technique

Un produit logiciel est basé sur des idées, des fonctionnalités mais aussi et surtout de la technologie. Cette technologie doit être en mesure de répondre aux deux premiers.

La dette technique est un concept qui fait partie intégrante d'un produit technologique. De part sa nature de "dette", elle fait souvent peur et est facilement oubliée dans l'equation de la qualité et de l'intégrité du produit.

Hors une dette technique non maîtrisée peut vite se transformer en un boulet qui va venir vampiriser la productivité des équipes et détruire la valeur d'un produit

Dans cette conférence, je présente comment mieux cerner cette dette et ses enjeux. J'aborde des exemples d'outils éprouvés au sein de mes équipes pour reprendre en main une dette technique déjà existante et valoriser l'importance de la gestion de cette dernière à tous les niveaux de l'entreprise.
Une gestion saine de la dette technique nous permettant de garder heureux: développeurs, clients et utilisateurs

Avatar for Elodie Micoulet

Elodie Micoulet

November 15, 2018

More Decks by Elodie Micoulet

Other Decks in Technology

Transcript

  1. Qui suis-je? Elodie Micoulet Scrum Master chez Nuglif (La Presse+)

    Linkedin www.linkedin.com/in/elodiemicoulet
  2. Quoi trouver dans cette présentation? Une meilleure compréhension de ce

    qu'est la dette technique, de l'impact qu'elle a sur votre produit et de l'importance de l'inclure dans la valeur de votre produit
  3. Quoi trouver dans cette présentation? Des idées pour aider vos

    équipes à mettre en valeur leur dette technique
  4. Quoi trouver dans cette présentation? Des réflexes pour identifier votre

    dette technique grâce à une meilleure compréhension de cette dernière
  5. dette nom féminin (latin debita, pluriel de debitum, de debere,

    devoir) Somme d'argent que l'on doit à quelqu'un à qui on l'a empruntée
  6. Et la dette technique? Un projet de développement logiciel inclut

    souvent une conception logicielle (qu'elle soit formalisée ou pas). Cette dernière fait partie de la qualité du projet. Ainsi, un non-respect de la conception, intentionnel ou non, induit des coûts supplémentaires dans le futur. Ce sont les intérêts. C'est pourquoi l'on parle de dette technique
  7. Pourquoi cette analogie? Métaphore introduite dans le début des années

    90 par Ward Cunningham Objectif: expliquer le refactoring en cours à sa ligne d'affaires
  8. "If you develop a program for a long period of

    time by only adding features and never reorganizing it to reflect your understanding of those features [...] that program simply does not contain any understanding and all efforts to work on it take longer and longer [...] the interest is total -- you'll make zero progress" Ward Cunningham
  9. Le choix d'une solution rapide maintenant versus une solution pérenne

    qui prend plus de temps à développer Qu'est-ce qui engendre de la dette?
  10. Le choix d'une solution rapide maintenant versus une solution pérenne

    qui prend plus de temps à développer Pas Seulement Qu'est-ce qui engendre de la dette?
  11. Le produit Définition du besoin incomplète Changements de dernière minute

    Pression de livraison Mauvaise compréhension … (ex non exhaustifs) Qu'est-ce qui engendre de la dette?
  12. La technologie Manque de connaissance "Collisions" de développement Suites de

    tests incomplètes Refactoring repoussé … (ex non exhaustifs) Qu'est-ce qui engendre de la dette?
  13. La vision Manque d'ownership Retard sur les standards d'industrie Dépendance

    forte entre des composantes … (ex non exhaustifs) Qu'est-ce qui engendre de la dette?
  14. Ce que l'agilité nous permet: Se rapprocher des besoins clients

    Apporter de la valeur rapidement Faire évoluer constamment la solution Explorer, expérimenter en petits incréments
  15. Si je ne gère pas ma dette, je tombe facilement

    dans le piège ⋎ Si je tombe dans le piège, je ne gère plus ma dette
  16. Si je ne gère pas ma dette, je tombe facilement

    dans le piège ⋎ Si je tombe dans le piège, je ne gère plus ma dette OU (inclusif)
  17. Les enjeux que cela soulève Difficile de maintenir une cohérence

    dans la conception du logiciel Risque de repousser la maintenance à un "plus tard" qui devient "jamais" dans l'objectif de livrer plus de fonctionnalités rapidement
  18. Cycle de livraison sans gestion de la dette Dette volontaire

    ou involontaire Feature Itération n Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+x Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+2x Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+3x
  19. Résultat? Difficulté à découper en plus petits incréments Difficulté à

    garder une équipe pluridisciplinaire Difficulté à garder un produit évolutif
  20. Cycle de livraison avec gestion de la dette Dette volontaire

    ou involontaire Feature Itération n Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+x Gestion de la dette Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+2x Gestion de la dette Dette volontaire ou involontaire Intérêt sur la dette Feature Itération n+3x Gestion de la dette
  21. La dette n'est PAS un problème d'agilité Dette FAIT PARTIE

    d'un produit logiciel (qu'importe la manière de le développer / livrer) MAIS Mauvaise gestion de dette impact l'agilité
  22. "Nous n'avons pas le temps pour le design" "Nous devons

    livrer maintenant et gérer les conséquences (plus tard)" "Maintenant, nous savons comment nous aurions dû le faire" "Qu'est-ce que les micro services?" Imprudent Volontaire Involontaire Prudent
  23. Mise en contexte: Les exemples présentés pour illustrer les différents

    points sont des outils testés lors de situations précises D'autres outils peuvent être plus adaptés à votre niveau de gestion de dette.
  24. Situation de l'équipe en exemple: Équipe avec un fort attachement

    à la qualité du développement, consciente de la dette, faisant beaucoup de refactoring "caché" dans les stories Équipe supportant plusieurs produits développés par d'autres équipes (peu de connaissance de l'état global de la dette) Équipe ayant à livrer un projet à haute valeur avec une date go live fixe
  25. Bénéfices? ❖ Se libérer l'esprit ❖ Être conscient de l'état

    de la dette et de ce que l'on ajoute ❖ Balancer les forces entre PO et équipe pour les objectifs de livraisons ❖ Augmenter la confiance
  26. Exemple de catégorisation à plusieurs niveaux Par priorité • Critique

    • Majeur • Mineur Par objectifs d'amélioration • Maintenabilité • Productivité • Support • Automatisation • Sécurité • Intégrité
  27. ▪ Connaître les dépendances ▪ Connaître l'ampleur (estimation) ▪ Connaître

    la fréquence d'utilisation Comment prioriser et identifier si une dette doit être traitée ou pas?
  28. Bénéfices? ❖ Avoir une idée de l'ampleur (estimation) ❖ Connaître

    les éléments critiques ❖ Lâcher prise ❖ Mitiger le risque
  29. Bénéfices? ❖ Montrer l'avancement ❖ Valoriser le travail de l'équipe

    ❖ Prendre de meilleures décisions d'affaires ❖ Avoir une compréhension commune de l'état du produit
  30. Avoir une entente avec le PO d'une moyenne de dette

    traitée par sprint. A ajuster en fonction des besoins business et à travers le temps Exemple de prise en main
  31. Bénéfices? ❖ Maîtriser la vélocité de l'équipe ❖ Maintenir la

    qualité du produit ❖ Améliorer la compréhension du travail effectué ❖ Orienter les décisions Produit et Techno
  32. Échantillons de visualisations Beaucoup d'autres visualisations possibles une fois les

    données récoltées et les besoins identifiés Toutes les visualisations présentées NE SONT PAS utilisées à chaque sprint