Esclave de votre
dette technique ?

Agile Tour Québec

6 novembre 2013

© 2013 Elapse Technologies

Image par JefferyTurner / Flickr
Image par NASA Goddard Photo and Video / Flickr
Félix-Antoine
Bourbonnais
Ing. jr, PSM-I, M.Sc.

Formateur et Coach

Tests
Qualité

Pascal Roy

Code propre

Ing., PMP, PSM-I.

Vice-président et Coach

Agilité
Scrum et
Pratiques de développement

Architecture
Design testable

© 2013 Elapse Technologies

TDD
BDD et ATDD
Participez !

© 2013 Elapse Technologies

Posez des questions…
LA DETTE TECHNIQUE ?

© 2013 Elapse Technologies

Qu’est-ce que
Question

© 2013 Elapse Technologies

Qui pense avoir de la dette
technique ?
C’est quoi ?

Mais au moins, avec une carte de
crédit, vous pouvez connaître

exactement votre

niveau d’endettement
Image par barsen / Flickr
List designed by Nicholas Menghini from The Noun Project
La dette technique est tout ce qui
rend le code difficile à

La

Image par jsj1771 / Flickr

manipuler

viscosité du code !
Pire…

C’est de l’intérêt composé !
Imaginez un monde sans…
Ah ouin ça
fait ça ?

C’est pas ma
faute !

C’est où ça ?

Ça va faire la
job!

Hey! Touche
pas à ça !

C’tait pas réglé ce
bogue là ?!?

Comprends pas…
Donnez donc ça au
gars qui l’a fait….

© 2013 Elapse Technologies

Ça va toucher
X, Y, Z,
la BD puis la GUI

J’sais pas pourquoi
mais ça marche

Mhehhh!
Exemples: causes et symptômes
Architecture
couplée

Duplications

SQL dans
le UI

Pas d’abstraction

Petite rustine
(patch)

Plein de
méthodes
statiques

Spaghetti

Code qui ne
parle pas…

Domaine
anémique

On se dépêche à
corriger la tonne
de bogues

© 2013 Elapse Technologies

Mauvais
nommage

Code pas propre
Le quadrant de la dette technique

© 2013 Elapse Technologies
© 2013 Elapse Technologies

POURQUOI ACCUMULONS-NOUS DE LA DETTE?
connaissance
Windows Vista:
5 ans, 10 000 employés
10 Milliards $$$ en salaires

© 2013 Elapse Technologies

Le développement logiciel est
complexe et demande de la
Facteurs techniques
influençant la dette technique ?
Les outils
changent
souvent

Manque
d’expertise

Manque de
rigueur et de
discipline

Pas de tests

Réusinage
tardif ou
manquant

Oui mais ça
marche…

Cowboy
coding

© 2013 Elapse Technologies

Architecture

Stratégie de
tests
Facteurs de gestion
influençant la dette technique ?
Pression d’affaires

Estimés imposés ou
irréalistes

Manque de
collaboration

Non confiance
envers les
développeurs

Ignorer les
avertissements de
l’équipe

Considérer les
développeurs
comme des
ressources…

Peur des
développeurs
reliée à la relation
de pouvoir

Pas d’emphase sur
la qualité interne

© 2013 Elapse Technologies

Méconnaissance
de la dette
IMPACTS DE LA DETTE

© 2013 Elapse Technologies

Les
Confiance

© 2013 Elapse Technologies
Longévité et valeur produite

© 2013 Elapse Technologies
© 2013 Elapse Technologies

Votre promesse à vos clients est
basée sur quelle courbe ?
Compétitivité et prédictibilité
Vous pensez avoir…

Vous ignorez la dette…

Vous avez…

© 2013 Elapse Technologies

Agilité
Rétroaction

Vous voulez…
Image par nasmac, willg willg.photography, Jemal / Flickr

Vous payez votre dette…

Vous avez…
Développeurs:

Aimez-vous vivre cela ?

Des heures de
déverminage
sous pression

Stress des
livraisons

Impression de
tourner en rond

Ce qui devrait
prendre 5
minutes prend 3h

Confiance dans le
travail produit ?

© 2013 Elapse Technologies

S’arracher les
cheveux pour
comprendre
En résumé…

-- Attribué à Marty Cagan @Agile2013

Image par michael pollak / Flickr

© 2013 Elapse Technologies

« If you don't spend 20% of your time
paying down technical debt, you'll spend
100% chasing problems »
LIMITER LA DETTE ?

© 2013 Elapse Technologies

Comment
Savoir la reconnaître

l’équipe et la gestion

Image de Boykung / FreeDigitalPhotos.net"

© 2013 Elapse Technologies

Éduquer
La visualiser

© 2013 Elapse Technologies

Mesurez-la !
Outils pour la repérer et la communiquer ?
Outils d’analyse
• Duplication
• Métriques
• Respect des normes
© 2013 Elapse Technologies

Pratiques
• TDD
• Revues
• Binômes

Intégration continue
Un défi

© 2013 Elapse Technologies

Demain, prenez 30 minutes
pour rouler un
outil d’analyse sur votre
code…
Comment la limiter ?

© 2013 Elapse Technologies

Maintenant que vous l’avez repérée
Pas de panique!
Il y en aura toujours…

© 2013 Elapse Technologies
Écrire vite ou lire vite ?

temps à lire du code
qu’à en écrire…

© 2013 Elapse Technologies

Un développeur passe plus de
Codez proprement et

chérissez votre code !
Image par Randi Deuro / Flickr
Pour être prêt,

s’entraîner

Image par will ockenden / Flickr

© 2013 Elapse Technologies

Il faut
Pour être prêt à y faire face

Collaborer

avoir des

tests

propriété du code

YAGNI et
DRY

architecturaux
• SOLID
• MVC/MVP/MVVM
• Abstraction-Instabilité
• Tell Don’t Ask
•…

© 2013 Elapse Technologies

Se vacciner contre la peur

Partager la

Maîtriser les
principes
(valorisation de la qualité interne)

Image par Alan Cleaver / Flickr

© 2013 Elapse Technologies

Évaluez les développeurs en
fonction de la qualité du code
Le développement logiciel…

C’est un marathon
pas un sprint courte piste !

Image par Peter Mooney / Flickr

© 2013 Elapse Technologies

Ne créez pas un contexte
propice à la dette…
Ne pas négocier la dette

Aimeriez-vous cela?

© 2013 Elapse Technologies

On pourrait sauver du
temps en sautant cette
étape…
De bonnes raisons d’en créer?

© 2013 Elapse Technologies

Cela reposerait sur le principe qu’il
serait plus long de bien faire…
COMMUNIQUER et la REMBOURSER

© 2013 Elapse Technologies

Comment la
Communiquez et écoutez !
Relevé de
dette

© 2013 Elapse Technologies

Regarder le produit
final n’est pas
suffisant
Image de stockimages / FreeDigitalPhotos.net
List designed by Nicholas Menghini from The Noun Project
Comment ??

© 2013 Elapse Technologies

Maintenant vous devez vous
entendre avec votre créancier…
© 2013 Elapse Technologies

Arrêter de vous endetter !!
Comment payer une dette technique

© 2013 Elapse Technologies

Réusiner
(refactor)
© 2013 Elapse Technologies

Comment planifier votre
réusinage?
Question

© 2013 Elapse Technologies

Avez-vous de la difficulté à passer
un User Story technique
à votre PO ?
Ce n’est pas un User Story
1

© 2013 Elapse Technologies

Ne devrait pas être traité comme
un User Story
En pratique…

Ce qui n’est pas au niveau du PO

© 2013 Elapse Technologies

C’est une tâche dans
un User Story
Ça ne sera pas fini demain!
2

© 2013 Elapse Technologies

Petit à petit et en continu
Constat

© 2013 Elapse Technologies

Le coût de la dette sera plus élevé
sur ce que vous touchez souvent
Suivre le principe…

(pour chaque Story)
Tout le monde…
Continuellement…

© 2013 Elapse Technologies

Laisser le terrain plus propre
que quand vous y êtes arrivé
Pas de Big Bang !

© 2013 Elapse Technologies

Image de imagerymajestic / FreeDigitalPhotos.net
Image par Shalf / Flickr
© 2013 Elapse Technologies
© 2013 Elapse Technologies

CONCLUSION
Mythe

Faire moins bien

Ça dépend de l’entraînement

© 2013 Elapse Technologies

ne prend pas moins de temps
Vous avez deux choix…

© 2013 Elapse Technologies

Image de wwarby et Arlington County / Flickr
Si vous préférez faire l’autruche…

Image de Paragon Inspections

© 2013 Elapse Technologies

Trouvez-vous que c’est
une bonne idée ?
« La seule façon d’aller vite
est de bien faire »
-- Robert C. Martin

Image de Paul Bica / Flickr
Ne demandez pas la permission…
prenez-la !

© 2013 Elapse Technologies

C’est votre responsabilité de
limiter la dette pour aller
rapidement
« Patrimonialite aiguë »

Vous ne voulez pas l’attraper!

Patrimonialite n.f.
Infection du système vieillissant

Image de Y / Flickr

© 2013 Elapse Technologies

Lavez-vous les mains
Nous rejoindre
www.elapsetech.com

Félix-Antoine Bourbonnais

Pascal Roy
pascal.roy@elapsetech.com

elapsetech.com/fab

elapsetech.com/pascal

@fbourbonnais

@pascalroy1967

linkedin.com/in/fbourbonnais

ca.linkedin.com/in/roypa

© 2013 Elapse Technologies

fbourbonnais@elapsetech.com
© 2013 Elapse Technologies

Présenté par

ELAPSE TECHNOLOGIES
Elapse Technologies
Votre allié en développement logiciel Agile

Formation
Accompagnement (coaching)

Agilité (Scrum, Lean, XP)
Qualité et tests automatisés
Architecture Agile
Pratiques de développement

© 2013 Elapse Technologies

Conseils et diagnostics
Blogue

Suivez nos professionnels sur
developpementagile.com
© 2013 Elapse Technologies

Image: renjith krishnan / FreeDigitalPhotos.net

Esclave de votre dette technique?

  • 1.
    Esclave de votre dettetechnique ? Agile Tour Québec 6 novembre 2013 © 2013 Elapse Technologies Image par JefferyTurner / Flickr
  • 2.
    Image par NASAGoddard Photo and Video / Flickr
  • 3.
    Félix-Antoine Bourbonnais Ing. jr, PSM-I,M.Sc. Formateur et Coach Tests Qualité Pascal Roy Code propre Ing., PMP, PSM-I. Vice-président et Coach Agilité Scrum et Pratiques de développement Architecture Design testable © 2013 Elapse Technologies TDD BDD et ATDD
  • 4.
    Participez ! © 2013Elapse Technologies Posez des questions…
  • 5.
    LA DETTE TECHNIQUE? © 2013 Elapse Technologies Qu’est-ce que
  • 6.
    Question © 2013 ElapseTechnologies Qui pense avoir de la dette technique ?
  • 7.
    C’est quoi ? Maisau moins, avec une carte de crédit, vous pouvez connaître exactement votre niveau d’endettement Image par barsen / Flickr List designed by Nicholas Menghini from The Noun Project
  • 8.
    La dette techniqueest tout ce qui rend le code difficile à La Image par jsj1771 / Flickr manipuler viscosité du code !
  • 9.
  • 10.
    Imaginez un mondesans… Ah ouin ça fait ça ? C’est pas ma faute ! C’est où ça ? Ça va faire la job! Hey! Touche pas à ça ! C’tait pas réglé ce bogue là ?!? Comprends pas… Donnez donc ça au gars qui l’a fait…. © 2013 Elapse Technologies Ça va toucher X, Y, Z, la BD puis la GUI J’sais pas pourquoi mais ça marche Mhehhh!
  • 11.
    Exemples: causes etsymptômes Architecture couplée Duplications SQL dans le UI Pas d’abstraction Petite rustine (patch) Plein de méthodes statiques Spaghetti Code qui ne parle pas… Domaine anémique On se dépêche à corriger la tonne de bogues © 2013 Elapse Technologies Mauvais nommage Code pas propre
  • 12.
    Le quadrant dela dette technique © 2013 Elapse Technologies
  • 13.
    © 2013 ElapseTechnologies POURQUOI ACCUMULONS-NOUS DE LA DETTE?
  • 14.
    connaissance Windows Vista: 5 ans,10 000 employés 10 Milliards $$$ en salaires © 2013 Elapse Technologies Le développement logiciel est complexe et demande de la
  • 15.
    Facteurs techniques influençant ladette technique ? Les outils changent souvent Manque d’expertise Manque de rigueur et de discipline Pas de tests Réusinage tardif ou manquant Oui mais ça marche… Cowboy coding © 2013 Elapse Technologies Architecture Stratégie de tests
  • 16.
    Facteurs de gestion influençantla dette technique ? Pression d’affaires Estimés imposés ou irréalistes Manque de collaboration Non confiance envers les développeurs Ignorer les avertissements de l’équipe Considérer les développeurs comme des ressources… Peur des développeurs reliée à la relation de pouvoir Pas d’emphase sur la qualité interne © 2013 Elapse Technologies Méconnaissance de la dette
  • 17.
    IMPACTS DE LADETTE © 2013 Elapse Technologies Les
  • 18.
  • 19.
    Longévité et valeurproduite © 2013 Elapse Technologies
  • 20.
    © 2013 ElapseTechnologies Votre promesse à vos clients est basée sur quelle courbe ?
  • 21.
    Compétitivité et prédictibilité Vouspensez avoir… Vous ignorez la dette… Vous avez… © 2013 Elapse Technologies Agilité Rétroaction Vous voulez… Image par nasmac, willg willg.photography, Jemal / Flickr Vous payez votre dette… Vous avez…
  • 22.
    Développeurs: Aimez-vous vivre cela? Des heures de déverminage sous pression Stress des livraisons Impression de tourner en rond Ce qui devrait prendre 5 minutes prend 3h Confiance dans le travail produit ? © 2013 Elapse Technologies S’arracher les cheveux pour comprendre
  • 23.
    En résumé… -- Attribuéà Marty Cagan @Agile2013 Image par michael pollak / Flickr © 2013 Elapse Technologies « If you don't spend 20% of your time paying down technical debt, you'll spend 100% chasing problems »
  • 24.
    LIMITER LA DETTE? © 2013 Elapse Technologies Comment
  • 25.
    Savoir la reconnaître l’équipeet la gestion Image de Boykung / FreeDigitalPhotos.net" © 2013 Elapse Technologies Éduquer
  • 26.
    La visualiser © 2013Elapse Technologies Mesurez-la !
  • 27.
    Outils pour larepérer et la communiquer ? Outils d’analyse • Duplication • Métriques • Respect des normes © 2013 Elapse Technologies Pratiques • TDD • Revues • Binômes Intégration continue
  • 28.
    Un défi © 2013Elapse Technologies Demain, prenez 30 minutes pour rouler un outil d’analyse sur votre code…
  • 29.
    Comment la limiter? © 2013 Elapse Technologies Maintenant que vous l’avez repérée
  • 30.
    Pas de panique! Ily en aura toujours… © 2013 Elapse Technologies
  • 31.
    Écrire vite oulire vite ? temps à lire du code qu’à en écrire… © 2013 Elapse Technologies Un développeur passe plus de
  • 32.
    Codez proprement et chérissezvotre code ! Image par Randi Deuro / Flickr
  • 33.
    Pour être prêt, s’entraîner Imagepar will ockenden / Flickr © 2013 Elapse Technologies Il faut
  • 34.
    Pour être prêtà y faire face Collaborer avoir des tests propriété du code YAGNI et DRY architecturaux • SOLID • MVC/MVP/MVVM • Abstraction-Instabilité • Tell Don’t Ask •… © 2013 Elapse Technologies Se vacciner contre la peur Partager la Maîtriser les principes
  • 35.
    (valorisation de laqualité interne) Image par Alan Cleaver / Flickr © 2013 Elapse Technologies Évaluez les développeurs en fonction de la qualité du code
  • 36.
    Le développement logiciel… C’estun marathon pas un sprint courte piste ! Image par Peter Mooney / Flickr © 2013 Elapse Technologies Ne créez pas un contexte propice à la dette…
  • 37.
    Ne pas négocierla dette Aimeriez-vous cela? © 2013 Elapse Technologies On pourrait sauver du temps en sautant cette étape…
  • 38.
    De bonnes raisonsd’en créer? © 2013 Elapse Technologies Cela reposerait sur le principe qu’il serait plus long de bien faire…
  • 39.
    COMMUNIQUER et laREMBOURSER © 2013 Elapse Technologies Comment la
  • 40.
    Communiquez et écoutez! Relevé de dette © 2013 Elapse Technologies Regarder le produit final n’est pas suffisant Image de stockimages / FreeDigitalPhotos.net List designed by Nicholas Menghini from The Noun Project
  • 41.
    Comment ?? © 2013Elapse Technologies Maintenant vous devez vous entendre avec votre créancier…
  • 42.
    © 2013 ElapseTechnologies Arrêter de vous endetter !!
  • 43.
    Comment payer unedette technique © 2013 Elapse Technologies Réusiner (refactor)
  • 44.
    © 2013 ElapseTechnologies Comment planifier votre réusinage?
  • 45.
    Question © 2013 ElapseTechnologies Avez-vous de la difficulté à passer un User Story technique à votre PO ?
  • 46.
    Ce n’est pasun User Story 1 © 2013 Elapse Technologies Ne devrait pas être traité comme un User Story
  • 47.
    En pratique… Ce quin’est pas au niveau du PO © 2013 Elapse Technologies C’est une tâche dans un User Story
  • 48.
    Ça ne serapas fini demain! 2 © 2013 Elapse Technologies Petit à petit et en continu
  • 49.
    Constat © 2013 ElapseTechnologies Le coût de la dette sera plus élevé sur ce que vous touchez souvent
  • 50.
    Suivre le principe… (pourchaque Story) Tout le monde… Continuellement… © 2013 Elapse Technologies Laisser le terrain plus propre que quand vous y êtes arrivé
  • 51.
    Pas de BigBang ! © 2013 Elapse Technologies Image de imagerymajestic / FreeDigitalPhotos.net Image par Shalf / Flickr
  • 52.
    © 2013 ElapseTechnologies
  • 53.
    © 2013 ElapseTechnologies CONCLUSION
  • 54.
    Mythe Faire moins bien Çadépend de l’entraînement © 2013 Elapse Technologies ne prend pas moins de temps
  • 55.
    Vous avez deuxchoix… © 2013 Elapse Technologies Image de wwarby et Arlington County / Flickr
  • 56.
    Si vous préférezfaire l’autruche… Image de Paragon Inspections © 2013 Elapse Technologies Trouvez-vous que c’est une bonne idée ?
  • 57.
    « La seulefaçon d’aller vite est de bien faire » -- Robert C. Martin Image de Paul Bica / Flickr
  • 58.
    Ne demandez pasla permission… prenez-la ! © 2013 Elapse Technologies C’est votre responsabilité de limiter la dette pour aller rapidement
  • 59.
    « Patrimonialite aiguë» Vous ne voulez pas l’attraper! Patrimonialite n.f. Infection du système vieillissant Image de Y / Flickr © 2013 Elapse Technologies Lavez-vous les mains
  • 60.
    Nous rejoindre www.elapsetech.com Félix-Antoine Bourbonnais PascalRoy pascal.roy@elapsetech.com elapsetech.com/fab elapsetech.com/pascal @fbourbonnais @pascalroy1967 linkedin.com/in/fbourbonnais ca.linkedin.com/in/roypa © 2013 Elapse Technologies fbourbonnais@elapsetech.com
  • 61.
    © 2013 ElapseTechnologies Présenté par ELAPSE TECHNOLOGIES
  • 62.
    Elapse Technologies Votre alliéen développement logiciel Agile Formation Accompagnement (coaching) Agilité (Scrum, Lean, XP) Qualité et tests automatisés Architecture Agile Pratiques de développement © 2013 Elapse Technologies Conseils et diagnostics
  • 63.
    Blogue Suivez nos professionnelssur developpementagile.com © 2013 Elapse Technologies Image: renjith krishnan / FreeDigitalPhotos.net