Upload
xebia-france
View
467
Download
2
Embed Size (px)
Maîtrisez votre dette technique
Par Nicolas Jozwiak
2
BiographieBiographie
Nicolas Jozwiak
8 ans d’expérience
Coach et craftsman
3
4
AgendaAgenda
Définition dette financière / dette
technique
A
F Stratégies
B Vocabulaire agile
C Conséquences sur les projets
D Mécanismes sous jacents
E Résorber la dette
Définitions
1
6
Dette financièreDéfinitionsDéfinitions
7
Dette techniqueDéfinitionsDéfinitions
• Code Smell
• Dette naturelle
• Dette intentionnelle
Ward Cunningham
Vocabulaire
2
9
Un peu de vocabulaireUn peu de vocabulaire
• Vélocité
‣ Représente la capacité d’une équipe à délivrer un certain nombre de fonctionnalités, exprimée en Story Point pour une période définie
• Story Point
‣ Unité de mesure relative pour connaître la difficulté des fonctionnalités
• Itération / Sprint
‣ Période de travail
Conséquences
3
11
Les conséquencesLes conséquences
12
Les conséquencesLes conséquences
13
Les conséquencesLes conséquences
Mécanismes
4
15
Les mécanismes sous jacentsLes mécanismes sous jacents
16
Les mécanismes sous jacentsLes mécanismes sous jacents
• Prise de conscience en catastrophe
‣ Maintenances longues
‣ Evolutions difficiles à mettre en place
‣ Manque de fiabilité
17
Les mécanismes sous jacentsLes mécanismes sous jacents
• Pourquoi une maintenance ou évolution peut prendre beaucoup de temps à développer ?
‣ La tolérance aux changements
18
Tolérance aux changementsTolérance aux changements
• Comment juger de la tolérance aux changement d’un code ?
‣ La conception
‣ La lisibilité du code
‣ Les tests
19
Tolérance aux changementsTolérance aux changements
• Conception
‣ SOLID
‣ Domain Driven Design
• Découpage cohérent et clair de l’application
20
Tolérance aux changementsTolérance aux changements
• Lisibilité
‣ Interaction humain / machine
• Tests
‣ Garants de l’application
‣ Mise en place prend du temps
21
Tolérance aux changementsTolérance aux changements
• Le Test Driven Development (TDD)
‣ Ecrire les tests avant les développements
Résorber la dette
5
23
Les bonnes pratiques de développementsLes bonnes pratiques de développements
• Extreme programming (XP)
‣ Refactoring
‣ Pair Programming
‣ Revue de code
24
RefactoringRefactoring
25
Pair programmingPair programming
26
Revue de codeRevue de code
27
28
Stratégies
6
30
Les stratégiesLes stratégies
• Démarrage d’un nouveau projet
31
Les stratégiesLes stratégies
• Intervention sur des projets existants
‣ À quel moment
appliquer les bonnes
pratiques ?
‣ Quelles stratégies
s’offrent à nous ?
32
Les stratégiesLes stratégies
• Gérer la dette au quotidien
‣ Appliquer les bonnes pratiques dans les cycles
de
développements‣ Stratégie à long terme
33
Les stratégiesLes stratégies
• Refactorings mineurs
‣ Intégration au fil de l’eau
» Peu de conséquences sur le comportement de l’application
» Renommages, factorisations, etc
34
Les stratégiesLes stratégies
• Refactorings majeurs
‣ Impacts importants
» Ne pas mettre en péril l’application
35
Les stratégiesLes stratégies
• Refactorings de longues durées
‣ Migration d’une technologie
» Outils de gestion de versions (SVN, GIT)
36
Les stratégiesLes stratégies
• Recoder
Conclusion
6
38
ConclusionConclusion
• Réduire la dette au quotidien
• Dette introduite au quotidien
‣ Dette toxique
• Impossible à supprimer totalement
‣ Bonnes pratiques, outils et stratégies nous
permettent
de grandement l’atténuer
39
ConclusionConclusion
• Restreindre les livraisons
‣ Garder un niveau de qualité
suffisant
• Craftsmanship
40
ConclusionConclusion
YOUFOR watching
THANK
Merci!
42
BibliographieBibliographie• Kyle Brown - Paying back technical debt, 2010
http://www.ibm.com/developerworks/websphere/techjournal/1001_col_brown/ 1001_col_brown.html
• Martin Fowler – Technical Debt, 2009 - http://martinfowler.com/bliki/TechnicalDebt.html
• Steve McConnell – Technical Debt, 2007 -
http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx
• Tom Brazier - Managing Technical Debt, 2007 - http://accu.org/index.php/journals/1301
• Kane Mar – Technical Debt and Design Death, 2006 -
http://www.scrumalliance.org/articles/14-technical-debt-and-design-death
• Principle of OOD - http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod
• Working Effectively with Legacy Code, Michael Feathers, 2004