SlideShare une entreprise Scribd logo
1  sur  36
GESTION DE LA DETTE TECHNIQUE
Jean-Louis LETOUZEY
Lead de l'initiative « Technical Debt » de l'Agile Alliance
Auteur de la méthode SQALE pour manager la D.T.
Expert consultant chez Inspearit
jl.letouzey@gmail.com
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
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 en Pologne,
Agile Brésil)
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
A practical definition
• The feeling that, over time, writing or maintaining code is like running
through mud.
5Et vous, jusqu’où ? (1…. à 5)
A textbook definition
• 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
6
7
You now Future you
I’M GETTING TONS
OF CODING DONE!
WHEEEEEE!
everything
about the code
is too hard
• “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.”
8
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
9
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
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
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
12
https://www.agilealliance.org/resources/initiatives/technical-debt/
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
“Dice of Deb” : 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.
“Dice of Deb” : 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 pour créer de la valeur ajoutée et de 4 dés pour
créer 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)
“Dice of Deb” : Réduire la dette
 Réduction de la complexité (et du copier/coller)
 Bénéfice : Transforme 2 dés DT en 2 dés VA pour le reste de la partie
 Coût : 2 dés VA pendant 3 tours
 Revue de pair
 Bénéfice : Transforme 1 dé DT en 1 dé VA pour le reste de la partie
 Coût : 3 dés VA pendant 2 tours
 Intégration continue (y compris analyse statique du code)
 Bénéfice : rejouer à chaque tour 1 dé DT pour le reste de la partie
 Coût : 1 dé VA pendant 2 tours
 Amélioration des tests (de leur taux de couverture)
 Bénéfice : Soustraire 3 du TD de chaque tour pendant le reste de la partie
 Coût : 1 dé VA pendant 3 tours
“Dice of Deb” : La feuille de jeu
Remplir la feuille de jeu
X X
1 1
7 7
4 4
-3 -3 -3 -3 -3 -3 -3 -3
7 7
4 4
26
9
17
17
30
12
18
35
Remplir la feuille de jeu
X X
1 1
7 7
4 4
-3 -3 -3 -3 -3 -3 -3 -3
7 7
4 4
26
9
17
17
X X
3 3
5 5
4 4
30
12
18
35
“Dice of Deb” : La table de jeux
Dés investis (ne sont pas joués)
Dés VA
Dés TD
“Dice of Deb” : La feuille de suivi
“Dice of Deb” : Résultats
SCORE max possible : 501 SCORE moyen : 206,5
Record actuel : 258
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
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
24
Address the individual sources: the code
25
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)
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
80%
69%
20
KLOC
per
year
8
KLOC
per
year
Percent time
on features
Developer
productivity
Well written code
Code with excessive technical debt
Time wasted
debugging
20%
Percent time
on features
Developer
productivity
Time wasted
debugging
31%
Developers
understand
the code
Development team
confused and
frustrated
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
• …
28
Get advice from Project Management and Technical
Debt document from the TD AA initiative
Address the individual sources: the team
29
The conclusion should be obvious
30
Short-term
investment in
technical debt
reduction and
prevention allows
for increased
productivity in the
future
Technical debt
just keeps
accumulating.
Our productivity
plummets.
• L’Agile Alliance
• Le concept de Dette Technique
• L’initiative “Technical Debt” de l’Agile Alliance
• Le jeu “Dice of Debt”
• Les autres apports de l'initiative
• Les travaux en cours
Agenda
Les travaux en cours
• Un version en ligne du jeu « Dice of Debt »
• Un quizz pour tester ses connaissances en matière de D.T.
• Un document montrant des résultats de simulation entre des
scénarios de gestion de la D.T.
• Une version light du simulateur de scénarios de gestion de la D.T.
Modèle dynamique de la DT : hypothèses
• Plus la D.T. est élevée, plus l’équipe introduit de bugs durant un
sprint
• Plus la D.T. est élevée, plus l’équipe livre de bugs à la fin du sprint
• Plus la dette d’évolutivité est élevée, plus il faut de temps pour
implémenter une user story
• Plus la dette de maintenabilité est élevée, plus il faut de temps à
un nouveau membre de l’équipe pour devenir expérimenté
• Plus la dette de maintenabilité est élevée, plus le taux de
démission des membres expérimentés augmente
Modèle dynamique de la DT : Exemple 1
Le projet
résoud les bugs
au fur et à
mesure qu’ils
apparaissent,
mais laisse la
D.T. s’accumuler
460 Jours
Modèle dynamique de la DT : Exemple 2
Le projet
résoud les bugs
au fur et à
mesure qu’ils
apparaissent et
assigne 20% du
temps à la
réduction de la
D.T.
250 Jours
Questions ?
N'oubliez pas de donner votre
feedback !
Jean-Louis LETOUZEY
jl.letouzey@gmail.com

Contenu connexe

En vedette

Prezentare S.C. Evropro S.R.L.
Prezentare S.C. Evropro S.R.L.Prezentare S.C. Evropro S.R.L.
Prezentare S.C. Evropro S.R.L.Evropro Srl
 
Todos Somos Ayotzinapa- 3 mesi da una strage
Todos Somos  Ayotzinapa- 3 mesi da una strage Todos Somos  Ayotzinapa- 3 mesi da una strage
Todos Somos Ayotzinapa- 3 mesi da una strage Michele Alberto
 
план недели
план неделиплан недели
план неделиDemanessa
 
αγιος πετρος
αγιος πετροςαγιος πετρος
αγιος πετροςparaskevit
 
Medicinal plants - the future in cataract therapy
Medicinal plants - the future in cataract therapyMedicinal plants - the future in cataract therapy
Medicinal plants - the future in cataract therapyJerzy_BN
 
бланк тэ рп уд од
бланк тэ рп уд одбланк тэ рп уд од
бланк тэ рп уд одDemanessa
 
PuppetConf 2015 - Testing - Richard Pijnenburg
PuppetConf 2015 - Testing - Richard PijnenburgPuppetConf 2015 - Testing - Richard Pijnenburg
PuppetConf 2015 - Testing - Richard PijnenburgRichard Pijnenburg
 
Magic Art of China
Magic Art of ChinaMagic Art of China
Magic Art of Chinanissimamon
 
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...Olena Ursu
 
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...Greg Pierce
 
Презентація щодо реформування системи надання адміністративних послуг
Презентація щодо реформування системи надання адміністративних послугПрезентація щодо реформування системи надання адміністративних послуг
Презентація щодо реформування системи надання адміністративних послугOlena Ursu
 
Матвійчук P
Матвійчук PМатвійчук P
Матвійчук POlena Ursu
 
Психологические проблемы, кризисы жизненного пути и возможности их преодоления
Психологические проблемы, кризисы жизненного пути и возможности их преодоленияПсихологические проблемы, кризисы жизненного пути и возможности их преодоления
Психологические проблемы, кризисы жизненного пути и возможности их преодоленияAlexey Vidanov
 

En vedette (20)

Prezentare S.C. Evropro S.R.L.
Prezentare S.C. Evropro S.R.L.Prezentare S.C. Evropro S.R.L.
Prezentare S.C. Evropro S.R.L.
 
Todos Somos Ayotzinapa- 3 mesi da una strage
Todos Somos  Ayotzinapa- 3 mesi da una strage Todos Somos  Ayotzinapa- 3 mesi da una strage
Todos Somos Ayotzinapa- 3 mesi da una strage
 
รายงาน
รายงานรายงาน
รายงาน
 
план недели
план неделиплан недели
план недели
 
αγιος πετρος
αγιος πετροςαγιος πετρος
αγιος πετρος
 
Xenof.p18
Xenof.p18Xenof.p18
Xenof.p18
 
Otchet
Otchet Otchet
Otchet
 
Medicinal plants - the future in cataract therapy
Medicinal plants - the future in cataract therapyMedicinal plants - the future in cataract therapy
Medicinal plants - the future in cataract therapy
 
Tahlequah DesignWorks Preliminary Presentation
Tahlequah DesignWorks Preliminary PresentationTahlequah DesignWorks Preliminary Presentation
Tahlequah DesignWorks Preliminary Presentation
 
бланк тэ рп уд од
бланк тэ рп уд одбланк тэ рп уд од
бланк тэ рп уд од
 
PuppetConf 2015 - Testing - Richard Pijnenburg
PuppetConf 2015 - Testing - Richard PijnenburgPuppetConf 2015 - Testing - Richard Pijnenburg
PuppetConf 2015 - Testing - Richard Pijnenburg
 
Magic Art of China
Magic Art of ChinaMagic Art of China
Magic Art of China
 
Дневник Коменски
Дневник КоменскиДневник Коменски
Дневник Коменски
 
Dc seo fin
Dc seo finDc seo fin
Dc seo fin
 
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
О Погорєлов "Ефективні комунікації під час громадського моніторингу публічних...
 
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...
Small Loans For Bad Credit- Small Financial Help To Remove Your Financial Dis...
 
Презентація щодо реформування системи надання адміністративних послуг
Презентація щодо реформування системи надання адміністративних послугПрезентація щодо реформування системи надання адміністративних послуг
Презентація щодо реформування системи надання адміністративних послуг
 
Ankle joint
Ankle jointAnkle joint
Ankle joint
 
Матвійчук P
Матвійчук PМатвійчук P
Матвійчук P
 
Психологические проблемы, кризисы жизненного пути и возможности их преодоления
Психологические проблемы, кризисы жизненного пути и возможности их преодоленияПсихологические проблемы, кризисы жизненного пути и возможности их преодоления
Психологические проблемы, кризисы жизненного пути и возможности их преодоления
 

Similaire à Agile Tour Toulouse jl-letouzey

Comment gérer la dette technique les bonnes pratiques de l’agile alliance -...
Comment gérer la dette technique   les bonnes pratiques de l’agile alliance -...Comment gérer la dette technique   les bonnes pratiques de l’agile alliance -...
Comment gérer la dette technique les bonnes pratiques de l’agile alliance -...Agile Montréal
 
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDDWebinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDDDC CONSULTANTS
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...DC CONSULTANTS
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Amico Fabien
 
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?DC CONSULTANTS
 
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?DC CONSULTANTS
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentationBruno MOREL
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un siMarc Bojoly
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?CGI Québec Formation
 
Agile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileAgile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileLaurent Deséchalliers
 
AT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileAT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileNormandy JUG
 
Real Options Lean Kanban France 2013
Real Options Lean Kanban France 2013Real Options Lean Kanban France 2013
Real Options Lean Kanban France 2013AgileCoach.net
 
Scikit Learn: Développement communautaire
Scikit Learn: Développement communautaireScikit Learn: Développement communautaire
Scikit Learn: Développement communautaireGael Varoquaux
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérémentAgile Montréal
 
Real Options - Agile France 2013
Real Options - Agile France 2013Real Options - Agile France 2013
Real Options - Agile France 2013AgileCoach.net
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Xavier NOPRE
 
Améliorer les compétences et intrastructures avec les katas d'architecture
Améliorer les compétences et intrastructures avec les katas d'architectureAméliorer les compétences et intrastructures avec les katas d'architecture
Améliorer les compétences et intrastructures avec les katas d'architectureAlexandre Touret
 

Similaire à Agile Tour Toulouse jl-letouzey (20)

Comment gérer la dette technique les bonnes pratiques de l’agile alliance -...
Comment gérer la dette technique   les bonnes pratiques de l’agile alliance -...Comment gérer la dette technique   les bonnes pratiques de l’agile alliance -...
Comment gérer la dette technique les bonnes pratiques de l’agile alliance -...
 
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDDWebinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
Webinar - Mieux s'entendre entre Dev / PO / Testeur avec TDD et BDD
 
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
Webinar TDD / BDD : Comment mieux délivrer et s'entendre pour le Product Owne...
 
Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?Le DevOps : La clé de la transformation digitale ?
Le DevOps : La clé de la transformation digitale ?
 
DDD FOR POs.pdf
DDD FOR POs.pdfDDD FOR POs.pdf
DDD FOR POs.pdf
 
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
 
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
Devops : Culture ou Outil ? Pourquoi le mettre en place dans mon Entreprise ?
 
Trois petites histoires de dette avec notes de la présentation
Trois petites histoires de dette   avec notes de la présentationTrois petites histoires de dette   avec notes de la présentation
Trois petites histoires de dette avec notes de la présentation
 
Softshake 2015 comment tester et optimiser la performance d'un si
Softshake 2015   comment tester et optimiser la performance d'un siSoftshake 2015   comment tester et optimiser la performance d'un si
Softshake 2015 comment tester et optimiser la performance d'un si
 
Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?Tester du legacy code, mission impossible ?
Tester du legacy code, mission impossible ?
 
Agile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agileAgile Tour 2010 - Mise en place d'un projet agile
Agile Tour 2010 - Mise en place d'un projet agile
 
AT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet AgileAT2010 Mise place d'un projet Agile
AT2010 Mise place d'un projet Agile
 
Real Options Lean Kanban France 2013
Real Options Lean Kanban France 2013Real Options Lean Kanban France 2013
Real Options Lean Kanban France 2013
 
Scikit Learn: Développement communautaire
Scikit Learn: Développement communautaireScikit Learn: Développement communautaire
Scikit Learn: Développement communautaire
 
Recherche lead technique désespérément
Recherche lead technique désespérémentRecherche lead technique désespérément
Recherche lead technique désespérément
 
Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017Et si on jouait au tdd 20131017
Et si on jouait au tdd 20131017
 
Real Options - Agile France 2013
Real Options - Agile France 2013Real Options - Agile France 2013
Real Options - Agile France 2013
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
Mix-IT 2013 - Agilistes : n'oubliez pas la technique - mix-it 2013
 
Améliorer les compétences et intrastructures avec les katas d'architecture
Améliorer les compétences et intrastructures avec les katas d'architectureAméliorer les compétences et intrastructures avec les katas d'architecture
Améliorer les compétences et intrastructures avec les katas d'architecture
 

Agile Tour Toulouse jl-letouzey

  • 1. GESTION DE LA DETTE TECHNIQUE Jean-Louis LETOUZEY Lead de l'initiative « Technical Debt » de l'Agile Alliance Auteur de la méthode SQALE pour manager la D.T. Expert consultant chez Inspearit jl.letouzey@gmail.com
  • 2. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 3. 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 en Pologne, Agile Brésil)
  • 4. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 5. A practical definition • The feeling that, over time, writing or maintaining code is like running through mud. 5Et vous, jusqu’où ? (1…. à 5)
  • 6. A textbook definition • 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 6
  • 7. 7 You now Future you I’M GETTING TONS OF CODING DONE! WHEEEEEE! everything about the code is too hard
  • 8. • “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.” 8
  • 9. 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 9
  • 10. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 11. 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
  • 12. 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 12 https://www.agilealliance.org/resources/initiatives/technical-debt/
  • 13. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 14. “Dice of Deb” : 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.
  • 15. “Dice of Deb” : 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 pour créer de la valeur ajoutée et de 4 dés pour créer 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)
  • 16. “Dice of Deb” : Réduire la dette  Réduction de la complexité (et du copier/coller)  Bénéfice : Transforme 2 dés DT en 2 dés VA pour le reste de la partie  Coût : 2 dés VA pendant 3 tours  Revue de pair  Bénéfice : Transforme 1 dé DT en 1 dé VA pour le reste de la partie  Coût : 3 dés VA pendant 2 tours  Intégration continue (y compris analyse statique du code)  Bénéfice : rejouer à chaque tour 1 dé DT pour le reste de la partie  Coût : 1 dé VA pendant 2 tours  Amélioration des tests (de leur taux de couverture)  Bénéfice : Soustraire 3 du TD de chaque tour pendant le reste de la partie  Coût : 1 dé VA pendant 3 tours
  • 17. “Dice of Deb” : La feuille de jeu
  • 18. Remplir la feuille de jeu X X 1 1 7 7 4 4 -3 -3 -3 -3 -3 -3 -3 -3 7 7 4 4 26 9 17 17 30 12 18 35
  • 19. Remplir la feuille de jeu X X 1 1 7 7 4 4 -3 -3 -3 -3 -3 -3 -3 -3 7 7 4 4 26 9 17 17 X X 3 3 5 5 4 4 30 12 18 35
  • 20. “Dice of Deb” : La table de jeux Dés investis (ne sont pas joués) Dés VA Dés TD
  • 21. “Dice of Deb” : La feuille de suivi
  • 22. “Dice of Deb” : Résultats SCORE max possible : 501 SCORE moyen : 206,5 Record actuel : 258
  • 23. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 24. 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 24
  • 25. Address the individual sources: the code 25 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)
  • 26. 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
  • 27. 80% 69% 20 KLOC per year 8 KLOC per year Percent time on features Developer productivity Well written code Code with excessive technical debt Time wasted debugging 20% Percent time on features Developer productivity Time wasted debugging 31% Developers understand the code Development team confused and frustrated
  • 28. 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 • … 28 Get advice from Project Management and Technical Debt document from the TD AA initiative
  • 29. Address the individual sources: the team 29
  • 30. The conclusion should be obvious 30 Short-term investment in technical debt reduction and prevention allows for increased productivity in the future Technical debt just keeps accumulating. Our productivity plummets.
  • 31. • L’Agile Alliance • Le concept de Dette Technique • L’initiative “Technical Debt” de l’Agile Alliance • Le jeu “Dice of Debt” • Les autres apports de l'initiative • Les travaux en cours Agenda
  • 32. Les travaux en cours • Un version en ligne du jeu « Dice of Debt » • Un quizz pour tester ses connaissances en matière de D.T. • Un document montrant des résultats de simulation entre des scénarios de gestion de la D.T. • Une version light du simulateur de scénarios de gestion de la D.T.
  • 33. Modèle dynamique de la DT : hypothèses • Plus la D.T. est élevée, plus l’équipe introduit de bugs durant un sprint • Plus la D.T. est élevée, plus l’équipe livre de bugs à la fin du sprint • Plus la dette d’évolutivité est élevée, plus il faut de temps pour implémenter une user story • Plus la dette de maintenabilité est élevée, plus il faut de temps à un nouveau membre de l’équipe pour devenir expérimenté • Plus la dette de maintenabilité est élevée, plus le taux de démission des membres expérimentés augmente
  • 34. Modèle dynamique de la DT : Exemple 1 Le projet résoud les bugs au fur et à mesure qu’ils apparaissent, mais laisse la D.T. s’accumuler 460 Jours
  • 35. Modèle dynamique de la DT : Exemple 2 Le projet résoud les bugs au fur et à mesure qu’ils apparaissent et assigne 20% du temps à la réduction de la D.T. 250 Jours
  • 36. Questions ? N'oubliez pas de donner votre feedback ! Jean-Louis LETOUZEY jl.letouzey@gmail.com

Notes de l'éditeur

  1. 27