Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Esclave de votre dette technique?

Esclave de votre dette technique?

Votre code est un trou noir? Chaque fonctionnalité est de plus en plus difficile à développer? Vous ne voulez plus toucher à un module sous peine de voir toute votre énergie aspirée?

Cette présentation vous permettra de prendre conscience de l’impact de la dette technique sur votre quotidien et sur votre capacité à livrer du logiciel fonctionnel et de qualité à chaque itération.

Comment soutenir le même niveau de productivité? Comment garder son code simple et facile à changer?

La présentation sera en trois volets : identifier ce qu’est la dette et ses impacts, quelles sont les techniques et pratiques pour éviter la « patrimonialite aigüe» (infection d’un système vieillissant) et finalement, comment gérer la dette déjà accumulée, y compris quelques trucs pour votre PO.

Non, la déprime n’est pas le destin de tous les projets vieillissants…

Félix-Antoine Bourbonnais

November 09, 2013
Tweet

More Decks by Félix-Antoine Bourbonnais

Other Decks in Programming

Transcript

  1. © 2013 Elapse Technologies
    © 2013 Elapse Technologies
    Esclave de votre
    dette technique ?
    Agile Tour Québec
    6 novembre 2013
    Image par JefferyTurner / Flickr

    View Slide

  2. Image par NASA Goddard Photo and Video / Flickr

    View Slide

  3. © 2013 Elapse Technologies
    Félix-Antoine
    Bourbonnais
    Ing. jr, PSM-I, M.Sc.
    Formateur et Coach
    Pascal Roy
    Ing., PMP, PSM-I.
    Vice-président et Coach
    Tests
    TDD
    BDD et ATDD
    Qualité
    Code propre
    Agilité
    Scrum et
    Pratiques de développement
    Architecture
    Design testable

    View Slide

  4. © 2013 Elapse Technologies
    Posez des questions…
    Participez !

    View Slide

  5. © 2013 Elapse Technologies
    LA DETTE TECHNIQUE ?
    Qu’est-ce que

    View Slide

  6. © 2013 Elapse Technologies
    Question
    Qui pense avoir de la dette
    technique ?

    View Slide

  7. C’est quoi ?
    Image par barsen / Flickr
    List designed by Nicholas Menghini from The Noun Project
    Mais au moins, avec une carte de
    crédit, vous pouvez connaître
    exactement votre
    niveau d’endettement

    View Slide

  8. La dette technique est tout ce qui
    rend le code difficile à manipuler
    La viscosité du code !
    Image par jsj1771 / Flickr

    View Slide

  9. Pire…
    C’est de l’intérêt composé !

    View Slide

  10. © 2013 Elapse Technologies
    Imaginez un monde sans…
    C’est où ça ?
    Ça va faire la
    job!
    C’tait pas réglé ce
    bogue là ?!?
    Ah ouin ça
    fait ça ? J’sais pas pourquoi
    mais ça marche
    Mhehhh!
    Ça va toucher
    X, Y, Z,
    la BD puis la GUI
    C’est pas ma
    faute !
    Comprends pas…
    Donnez donc ça au
    gars qui l’a fait….
    Hey! Touche
    pas à ça !

    View Slide

  11. © 2013 Elapse Technologies
    Exemples: causes et symptômes
    Code pas propre
    Mauvais
    nommage
    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

    View Slide

  12. © 2013 Elapse Technologies
    Le quadrant de la dette technique

    View Slide

  13. © 2013 Elapse Technologies
    POURQUOI ACCUMULONS-NOUS DE LA DETTE?

    View Slide

  14. © 2013 Elapse Technologies
    Le développement logiciel est
    complexe et demande de la
    connaissance
    Windows Vista:
    5 ans, 10 000 employés
    10 Milliards $$$ en salaires

    View Slide

  15. © 2013 Elapse Technologies
    Facteurs techniques
    influençant la dette technique ?
    Architecture
    Stratégie de
    tests
    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

    View Slide

  16. © 2013 Elapse Technologies
    Facteurs de gestion
    influençant la dette technique ?
    Méconnaissance
    de la dette
    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

    View Slide

  17. © 2013 Elapse Technologies
    IMPACTS DE LA DETTE
    Les

    View Slide

  18. © 2013 Elapse Technologies
    Confiance

    View Slide

  19. © 2013 Elapse Technologies
    Longévité et valeur produite

    View Slide

  20. © 2013 Elapse Technologies
    Votre promesse à vos clients est
    basée sur quelle courbe ?

    View Slide

  21. © 2013 Elapse Technologies
    Compétitivité et prédictibilité
    Image par nasmac, willg willg.photography, Jemal / Flickr
    Vous pensez avoir… Vous avez…
    Vous ignorez la dette…
    Vous payez votre dette…
    Vous voulez… Vous avez…
    Agilité
    Rétroaction

    View Slide

  22. © 2013 Elapse Technologies
    Développeurs:
    Aimez-vous vivre cela ?
    S’arracher les
    cheveux pour
    comprendre
    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 ?

    View Slide

  23. © 2013 Elapse Technologies
    En résumé…
    Image par michael pollak / Flickr
    « If you don't spend 20% of your time
    paying down technical debt, you'll spend
    100% chasing problems »
    -- Attribué à Marty Cagan @Agile2013

    View Slide

  24. © 2013 Elapse Technologies
    LIMITER LA DETTE ?
    Comment

    View Slide

  25. © 2013 Elapse Technologies
    Savoir la reconnaître
    Éduquer
    l’équipe et la gestion
    Image de Boykung / FreeDigitalPhotos.net"

    View Slide

  26. © 2013 Elapse Technologies
    La visualiser
    Mesurez-la !

    View Slide

  27. © 2013 Elapse Technologies
    Outils pour la repérer et la communiquer ?
    Outils d’analyse
    •Duplication
    •Métriques
    •Respect des normes
    Pratiques
    •TDD
    •Revues
    •Binômes
    Intégration continue

    View Slide

  28. © 2013 Elapse Technologies
    Un défi
    Demain, prenez 30 minutes
    pour rouler un
    outil d’analyse sur votre
    code…

    View Slide

  29. © 2013 Elapse Technologies
    Maintenant que vous l’avez repérée
    Comment la limiter ?

    View Slide

  30. © 2013 Elapse Technologies
    Pas de panique!
    Il y en aura toujours…

    View Slide

  31. © 2013 Elapse Technologies
    Écrire vite ou lire vite ?
    Un développeur passe plus de
    temps à lire du code
    qu’à en écrire…

    View Slide

  32. Codez proprement et
    chérissez votre code !
    Image par Randi Deuro / Flickr

    View Slide

  33. © 2013 Elapse Technologies
    Pour être prêt,
    Il faut
    s’entraîner
    Image par will ockenden / Flickr

    View Slide

  34. © 2013 Elapse Technologies
    Pour être prêt à y faire face
    Collaborer Partager la
    propriété du code
    Maîtriser les
    principes
    architecturaux
    • SOLID
    • MVC/MVP/MVVM
    • Abstraction-Instabilité
    • Tell Don’t Ask
    • …
    Se vacciner contre la peur
    avoir des
    tests
    YAGNI et
    DRY

    View Slide

  35. © 2013 Elapse Technologies
    Évaluez les développeurs en
    fonction de la qualité du code
    (valorisation de la qualité interne)
    Image par Alan Cleaver / Flickr

    View Slide

  36. © 2013 Elapse Technologies
    Le développement logiciel…
    Ne créez pas un contexte
    propice à la dette…
    C’est un marathon
    pas un sprint courte piste !
    Image par Peter Mooney / Flickr

    View Slide

  37. © 2013 Elapse Technologies
    Ne pas négocier la dette
    On pourrait sauver du
    temps en sautant cette
    étape…
    Aimeriez-vous cela?

    View Slide

  38. © 2013 Elapse Technologies
    De bonnes raisons d’en créer?
    Cela reposerait sur le principe qu’il
    serait plus long de bien faire…

    View Slide

  39. © 2013 Elapse Technologies
    COMMUNIQUER et la REMBOURSER
    Comment la

    View Slide

  40. © 2013 Elapse Technologies
    Communiquez et écoutez !
    Image de stockimages / FreeDigitalPhotos.net
    List designed by Nicholas Menghini from The Noun Project
    Regarder le produit
    final n’est pas
    suffisant
    Relevé de
    dette

    View Slide

  41. © 2013 Elapse Technologies
    Maintenant vous devez vous
    entendre avec votre créancier…
    Comment ??

    View Slide

  42. © 2013 Elapse Technologies
    Arrêter de vous endetter !!

    View Slide

  43. © 2013 Elapse Technologies
    Comment payer une dette technique
    Réusiner
    (refactor)

    View Slide

  44. © 2013 Elapse Technologies
    Comment planifier votre
    réusinage?

    View Slide

  45. © 2013 Elapse Technologies
    Question
    Avez-vous de la difficulté à passer
    un User Story technique
    à votre PO ?

    View Slide

  46. © 2013 Elapse Technologies
    Ce n’est pas un User Story
    Ne devrait pas être traité comme
    un User Story
    1

    View Slide

  47. © 2013 Elapse Technologies
    En pratique…
    C’est une tâche dans
    un User Story
    Ce qui n’est pas au niveau du PO

    View Slide

  48. © 2013 Elapse Technologies
    Ça ne sera pas fini demain!
    Petit à petit et en continu
    2

    View Slide

  49. © 2013 Elapse Technologies
    Constat
    Le coût de la dette sera plus élevé
    sur ce que vous touchez souvent

    View Slide

  50. © 2013 Elapse Technologies
    Suivre le principe…
    Laisser le terrain plus propre
    que quand vous y êtes arrivé
    (pour chaque Story)
    Tout le monde…
    Continuellement…

    View Slide

  51. © 2013 Elapse Technologies
    Pas de Big Bang !
    Image de imagerymajestic / FreeDigitalPhotos.net
    Image par Shalf / Flickr

    View Slide

  52. © 2013 Elapse Technologies

    View Slide

  53. © 2013 Elapse Technologies
    CONCLUSION

    View Slide

  54. © 2013 Elapse Technologies
    Mythe
    Faire moins bien
    ne prend pas moins de temps
    Ça dépend de l’entraînement

    View Slide

  55. © 2013 Elapse Technologies
    Vous avez deux choix…
    Image de wwarby et Arlington County / Flickr

    View Slide

  56. © 2013 Elapse Technologies
    Si vous préférez faire l’autruche…
    Trouvez-vous que c’est
    une bonne idée ?
    Image de Paragon Inspections

    View Slide

  57. Image de Paul Bica / Flickr
    « La seule façon d’aller vite
    est de bien faire »
    -- Robert C. Martin

    View Slide

  58. © 2013 Elapse Technologies
    C’est votre responsabilité de
    limiter la dette pour aller
    rapidement
    Ne demandez pas la permission…
    prenez-la !

    View Slide

  59. © 2013 Elapse Technologies
    « Patrimonialite aiguë »
    Vous ne voulez pas l’attraper!
    Lavez-vous les mains
    Patrimonialite n.f.
    Infection du système vieillissant
    Image de Y / Flickr

    View Slide

  60. © 2013 Elapse Technologies
    Nous rejoindre
    www.elapsetech.com
    [email protected]
    elapsetech.com/fab
    @fbourbonnais
    linkedin.com/in/fbourbonnais
    Félix-Antoine Bourbonnais
    [email protected]
    elapsetech.com/pascal
    @pascalroy1967
    ca.linkedin.com/in/roypa
    Pascal Roy

    View Slide

  61. © 2013 Elapse Technologies
    ELAPSE TECHNOLOGIES
    Présenté par

    View Slide

  62. © 2013 Elapse Technologies
    Elapse Technologies
    Formation
    Accompagnement (coaching)
    Conseils et diagnostics
    Votre allié en développement logiciel Agile
    Agilité (Scrum, Lean, XP)
    Qualité et tests automatisés
    Architecture Agile
    Pratiques de développement

    View Slide

  63. © 2013 Elapse Technologies
    Blogue
    Image: renjith krishnan / FreeDigitalPhotos.net
    Suivez nos professionnels sur
    developpementagile.com

    View Slide