"Une dette technique non maîtrisée peut vite se transformer en un boulet qui vient vampiriser la productivité des équipes.
Dans cette conférence, nous nous attèlerons à cerner cette dette et ses enjeux. Nous verrons quels moyens peuvent être mis en oeuvre pour la prendre en main, grâce à une boîte à outils de visualisation et de suivi, afin de garder heureux : développeurs, clients et utilisateurs"
Elodie Micoulet
3. 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
4. Quoi trouver dans cette présentation?
Des idées pour aider vos équipes à mettre en
valeur leur dette technique
5. Quoi trouver dans cette présentation?
Des réflexes pour identifier votre dette technique
grâce à une meilleure compréhension de cette
dernière
9. 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
10. 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
11.
12. "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
14. 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?
15. 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?
16. 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?
17. 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?
18. 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?
28. 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
29. Les pièges
Se restreindre à
Valeur = fonctionnalité
Perdre la vision
Agilité = on verra, on s'adapte
31. 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
32. 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)
33. 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
34. 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
35. Résultat?
Difficulté à découper en plus petits incréments
Difficulté à garder une équipe pluridisciplinaire
Difficulté à garder un produit évolutif
38. 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
42. 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é
51. "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
57. 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.
58. 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
63. 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
65. Exemple de catégorisation à plusieurs
niveaux
Par priorité
● Critique
● Majeur
● Mineur
Par objectifs d'amélioration
● Maintenabilité
● Productivité
● Support
● Automatisation
● Sécurité
● Intégrité
66. ■ 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?
67. Bénéfices?
❖ Avoir une idée de l'ampleur (estimation)
❖ Connaître les éléments critiques
❖ Lâcher prise
❖ Mitiger le risque
72. 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
76. 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
80. 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
82. É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