42
Maîtrisez votre dette technique Par Nicolas Jozwiak

Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Embed Size (px)

Citation preview

Page 1: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Maîtrisez votre dette technique

Par Nicolas Jozwiak

Page 2: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

2

BiographieBiographie

Nicolas Jozwiak

8 ans d’expérience

Coach et craftsman

Page 3: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

3

Page 4: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 5: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Définitions

1

Page 6: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

6

Dette financièreDéfinitionsDéfinitions

Page 7: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

7

Dette techniqueDéfinitionsDéfinitions

• Code Smell

• Dette naturelle

• Dette intentionnelle

Ward Cunningham

Page 8: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Vocabulaire

2

Page 9: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 10: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Conséquences

3

Page 11: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

11

Les conséquencesLes conséquences

Page 12: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

12

Les conséquencesLes conséquences

Page 13: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

13

Les conséquencesLes conséquences

Page 14: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Mécanismes

4

Page 15: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

15

Les mécanismes sous jacentsLes mécanismes sous jacents

Page 16: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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é

Page 17: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 18: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 19: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

19

Tolérance aux changementsTolérance aux changements

• Conception

‣ SOLID

‣ Domain Driven Design

• Découpage cohérent et clair de l’application

Page 20: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

20

Tolérance aux changementsTolérance aux changements

• Lisibilité

‣ Interaction humain / machine

• Tests

‣ Garants de l’application

‣ Mise en place prend du temps

Page 21: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

21

Tolérance aux changementsTolérance aux changements

• Le Test Driven Development (TDD)

‣ Ecrire les tests avant les développements

Page 22: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Résorber la dette

5

Page 23: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

23

Les bonnes pratiques de développementsLes bonnes pratiques de développements

• Extreme programming (XP)

‣ Refactoring

‣ Pair Programming

‣ Revue de code

Page 24: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

24

RefactoringRefactoring

Page 25: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

25

Pair programmingPair programming

Page 26: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

26

Revue de codeRevue de code

Page 27: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

27

Page 28: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

28

Page 29: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Stratégies

6

Page 30: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

30

Les stratégiesLes stratégies

• Démarrage d’un nouveau projet

Page 31: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

31

Les stratégiesLes stratégies

• Intervention sur des projets existants

‣ À quel moment

appliquer les bonnes

pratiques ?

‣ Quelles stratégies

s’offrent à nous ?

Page 32: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 33: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 34: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

34

Les stratégiesLes stratégies

• Refactorings majeurs

‣ Impacts importants

» Ne pas mettre en péril l’application

Page 35: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

35

Les stratégiesLes stratégies

• Refactorings de longues durées

‣ Migration d’une technologie

» Outils de gestion de versions (SVN, GIT)

Page 36: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

36

Les stratégiesLes stratégies

• Recoder

Page 37: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

Conclusion

6

Page 38: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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

Page 39: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

39

ConclusionConclusion

• Restreindre les livraisons

‣ Garder un niveau de qualité

suffisant

• Craftsmanship

Page 40: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

40

ConclusionConclusion

Page 41: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

YOUFOR watching

THANK

Merci!

Page 42: Open XKE - Maîtrisez votre dette technique par Nicolas Jozwiak

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