Ward Cunningham, un des auteurs du manifeste agile, a comparé l’ensemble des problèmes dans le code à une dette financière, et l’a appelé dette technique.
Qu’est que la dette technique ? Comment l’évaluer ? Comment prendre des décisions rationnelles et comment gérer la dette technique ? Il y a-t-il d’autres types de dette à prendre en compte ?
L’initiative “Technical Debt” de l’Agile Alliance a été lancée pour répondre à ces questions. La présence à Montréal des membres de ce programme est l’occasion de présenter des bonnes pratiques, le modèle A2DAM et d’organiser une session du jeu “Dice of Debt”.
Note : Cet évènement se déroulera en grande partie en anglais.
Pour cette session, seront présents :
Declan Whelan, un des membres à l’origine de cette initiative. Il est coach agile et membre du board de l’Agile Alliance.
Jean-Louis Letouzey, leader de l’initiative, il est l’auteur de la méthode SQALE pour manager la dette technique.
Tom Grant, auteur du jeu “Dice of Debt game” a été le directeur de la pratique agile du Cutter Consortium. Il a participé à l’Analyst Panel d’Agile 2015 – En plus de son expertise agile, il est expert en serious games.
Jean-Pierre Fayolle est consultant en qualité des logiciels. Il est l’animateur du blog “Qualilogy”
Dan Sturtevant, chercheur étudiant la qualité des logiciels et son impact financier à la Harvard University, et CEO de Silverthread, Inc.
Thierry Coq, consultant principal et directeur de projet pour les systèmes industriels, pétrole et gaz et maritimes chez DNVGL
ATMTL23 - « A community of Scientists » Saisir le pouvoir du Toyota Kata pour...
Comment gérer la dette technique les bonnes pratiques de l’agile alliance - jean-pierre fayolle, jean-louis letouzey
1. • L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Exemples de livrables de l'initiative
Agenda
2. L’Agile Alliance
• L’Agile Alliance
• Créée par les signataires du manifeste agile
• Plus de 23.000 membres
• Un nouveau site qui attire plus de 50.000
utilisateurs par mois
• LA conférence Agile : 2.500 participants
• Devient de plus en plus globale (Agile Europe,
Agile Brésil)
3. • L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Exemples de livrables de l'initiative
Agenda
4. Une définition pratique
• « The feeling that, over time, writing or maintaining code is like
running through mud. »
4Et vous, jusqu’où ? (1…. à 5)
5. Des définition plus sérieuses….
• What is technical debt?
• The increased difficulty in writing new code, or maintaining code,
that is the natural result of…
• Shortcuts
• Bad coding practices
• Hacks
• Other times when you wish, in hindsight, you had coded more carefully
5
6. • “With borrowed money you can do something sooner than you might
otherwise, but until you pay back that money you will pay interest.
• “I thought borrowing money was a good idea. I thought that rushing
software out the door to get some experience with it was a good
idea. But that of course you would eventually go back and as you
learned things about that software you would repay that loan by
refactoring the program to reflect your experience as you acquired
it.”
6
7. How do you create it?
• Very easily, and here are a few common
examples
• “I didn’t have the time to write a simpler
class…”
• “No time to re-think the design of the class,
• just keep adding new stuff to it!”
• No time to think about how
• someone else will fix or extend the code
• No code review leads to culture of sloppiness
• Didn’t think of the impact of generic error
handling
• Many other sources
7
8. • L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Exemples de livrables de l'initiative
Agenda
9. L’initiative T.D. de l’Agile Alliance
• Un projet de volontariat supporté par l’Agile Alliance
• Démarré en Juillet 2015
• Une équipe de six membres : Declan Whelan, Jean-Pierre
Fayolle, Tom Grant, Dan Sturtevant, Thierry Coq,
Jean-Louis Letouzey
10. L’initiative T.D. de l’Agile Alliance : les produits
• Livre blanc et video
• Introduction to the technical debt concept
• A2DAM (Agile Alliance Debt Analysis Model)
• Un référentiel pour évaluer et analyser la dette technique du code
• Project Management Guide
• Des pratiques qui ont fait leur preuve
• Dice Of Debt game
• Eduquer et sensibiliser sur l’importance de gérer la dette technique
10
https://www.agilealliance.org/resources/initiatives/technical-debt/
11. • L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Exemples de livrables de l'initiative
Agenda
12. “Dice of Debt” : Introduction
Principes du jeu
Vous appartenez à une équipe de développement travaillant sur un
projet de 10 sprints. Votre objectif est de créer le plus possible de
valeur.
La dette technique (D.T.) peut réduire considérablement cette valeur.
Heureusement vous pouvez prendre des mesures pour la réduire. Ces
mesures qui permettent de réduire votre dette ne sont pas gratuites.
C'est à vous de décider laquelle sera la plus rentable.
13. “Dice of Debt” : Les règles
• A chaque tour (qui représente un sprint), votre équipe dispose d'une capacité limitée de
création. Cette capacité est représentée par 12 dés.
• Au 1° tour, votre capacité est de 8 dés qui créent de la valeur ajoutée et de 4 dés qui
génèrent de la dette technique.
• A chaque tour, vous jetez les dés “Valeur Ajoutée” et retenez le total obtenu : VA. Ensuite
vous jouez les dés “Dette Technique” et vous totalisez le résultat DT. La valeur ajoutée
nette (VAN) est égale à VA – DT.
• Vous pouvez réduire votre D.T. et son impact, c'est un investissement qui réduit votre
capacité à court terme de produire de la VA. Vous avez le choix entre 4 mesures possibles.
• Vous ne pouvez investir qu'en une seule mesure à la fois. Ce n'est qu'à la fin de la période
d'investissement relative à une mesure que vous en tirerez les bénéfices. A ce moment là
vous pouvez investir dans une autre mesure (si vous le souhaitez).
14. “Dice of Debt” : Réduire la dette
Réduction de la complexité (et du copier/coller)
Coût : 2 dés VA pendant 3 tours
Bénéfice : Transforme 2 dés DT en 2 dés VA pour le reste de la partie
Revue de pair
Coût : 3 dés VA pendant 2 tours
Bénéfice : Transforme 1 dé DT en 1 dé VA pour le reste de la partie
Intégration continue (y compris analyse statique du code)
Coût : 1 dé VA pendant 2 tours
Bénéfice : Rejouer à chaque tour 1 dé DT (que vous choisissez) pour le reste
de la partie
Amélioration des tests (de leur taux de couverture)
Coût : 1 dé VA pendant 3 tours
Bénéfice : Soustraire 3 du TD de chaque tour pendant le reste de la partie
22. • L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Exemples de livrables de l'initiative
Agenda
23. You will always face some Technical Debt
• Some amount is to be expected
• EX: Unintentional TD
• The amount of TD will never be zero
• But it has to be manageable
• There can be situations in which you want to
take on TD
• EX: Architectural experiment, don’t want to take
the time to “do it right” if it doesn’t work out
• …As long as you clean it up
• Of course, the problem is, people usually don’t
23
24. Address the individual sources: the code
24
Name Good practice Affects Rationale Remediation
Tested-CCOV A file has an acceptable
level of code coverage.
Reliability Unit tests verify that the code
performs as expected without
errors.
Write tests in order to cover
uncovered lines.
Test variable values.
Clear-INVL
A "for" loop iterator is
not modified in the
body of the loop.
Reliability Modifying the loop iterator inside
the loop may lead to unreliable
behavior. Code is also more
difficult to understand.
Restructure the code.
Clear-DEST
All "if"/"for"/"while"
structures are delimited
by curly braces.
Changeability Using curly braces for control
structures helps to better
understand the code.
Enclose the core of the structure
with curly braces.
Clear-CLDO Public classes and
public methods are
documented.
Maintainability
Code is easier to understand
Identify public classes and public
methods without
documentation.
Write additional meaningful
comments.
Assess your TD with the Agile Alliance Debt
Analysis Model (A2DAM)
25. A2DAM
• Une liste de base de bonnes pratiques relatives au code
• Toutes les pratiques
• Sont vérifiables par des analyseurs de code
• Ont été revues par des experts provenant de 10 sociétés éditeurs d’outils
d’ analyse de code
• Sont caractérisées avec leur impact, leur coût de remédiation….
A2DAM
• Faites le test en ligne
26. Address the individual sources: the team
• Many project management-level measures, such as…
• Follow the Boy Scout Rule
• Make code review part of the done criteria
• Dedicate some percentage of each sprint to TD reduction and prevention
• Do static code analysis at some interval
• …
26
Get advice from Project Management and Technical
Debt document from the TD AA initiative
28. The conclusion should be obvious
28
Short-term
investment in
technical debt
reduction and
prevention allows
for increased
productivity in the
future
Technical debt
just keeps
accumulating.
Our productivity
plummets.