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

Arrêtons de parler de code de qualité, ce qu'il faut c'est du code agile !

Arrêtons de parler de code de qualité, ce qu'il faut c'est du code agile !

Marek Kalnik

June 24, 2014
Tweet

More Decks by Marek Kalnik

Other Decks in Programming

Transcript

  1. Arrêtons de parler
    de code de qualité,
    ce qu'il faut c'est du
    code agile !
    Marek Kalnik
    PHPTour Lyon 2014

    View Slide

  2. Je m'appelle Marek
    Architecte
    et Team Manager
    chez Theodo
    TDD et Good Code
    addict
    @marekkalnik

    View Slide

  3. comment
    l'écrire ?
    code de qualité

    View Slide

  4. code de qualité,
    c'est ça :
    Hodor. Hodor? Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor! Hodor? Hodor? Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor? Hodor! Hodor! Hodor? Hodor! Hodor? Hodor. Hodor! Hodor. Hodor. Hodor?
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor! Hodor? Hodor? Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor? Hodor! Hodor! Hodor? Hodor! Hodor? Hodor. Hodor. Hodor. Hodor! Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor! Hodor. Hodor! Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor! Hodor. Hodor.
    Hodor? Hodor. Hodor? Hodor. Hodor? Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor! Hodor? Hodor? Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor? Hodor! Hodor! Hodor? Hodor!
    Hodor? Hodor. Hodor! Hodor. Hodor. Hodor? Hodor. Hodor? Hodor. Hodor? Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor! Hodor? Hodor? Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor.
    Hodor. Hodor? Hodor! Hodor! Hodor? Hodor! Hodor? Hodor. Hodor! Hodor! Hodor! Hodor! Hodor!
    Hodor! Hodor! Hodor. Hodor? Hodor. Hodor? Hodor. Hodor? Hodor. Hodor? Hodor. Hodor! Hodor.
    Hodor. Hodor. Hodor. Hodor. Hodor. Hodor. Hodor! Hodor. Hodor! Hodor! Hodor! Hodor! Hodor!
    Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor. Hodor! Hodor! Hodor! Hodor!
    Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor! Hodor!
    Hodor. Hodor. Hodor? Hodor. Hodor? Hodor. Hodor. Hodor! Hodor.

    View Slide

  5. on sait comment l'écrire
    This is extremely dirty code. Sorry for the inconvenience
    but the client don't want us to make it clean.
    This is my worst commit ever, I do not endorse this but
    I'm forced.

    View Slide

  6. comment
    le vendre ?
    code de qualité

    View Slide

  7. comment nous nous voyons

    View Slide

  8. comment nous voient nos clients

    View Slide

  9. la réalité

    View Slide

  10. les clients achètent du...

    View Slide

  11. Prestashop ?
    les clients achètent du...
    phpmd : The method indexProductPrices() has an NPath
    complexity of 2 117 035 203.

    View Slide

  12. Wordpress ?
    les clients achètent du...
    phpmd : wordpress/wp-includes/query.php:2149 The
    method get_posts() has an NPath complexity of
    107 489 719 299 364 984 418 938 035
    070 419 110 614 196 551 680 000

    View Slide

  13. Baremetrics.io
    2 months after start –
    rebuild from scratch
    Result : doubled MRR

    View Slide

  14. des très beaux
    projets !

    View Slide

  15. est-elle
    inutile ?
    la qualité

    View Slide

  16. est-elle bien
    définie ?
    la qualité

    View Slide

  17. View Slide

  18. Qu'est-ce qui
    est vraiment
    important ?

    View Slide

  19. The fast eat
    the slow

    View Slide

  20. Agile

    View Slide

  21. Notre plus haute priorité est de satisfaire
    le client en livrant rapidement et
    régulièrement des fonctionnalités à
    grande valeur ajoutée.

    View Slide

  22. Un logiciel opérationnel est la principale
    mesure d’avancement.

    View Slide

  23. Accueillez positivement les changements
    de besoins, même tard dans le projet.

    View Slide

  24. La simplicité – c’est-à-dire l’art de
    minimiser la quantité de travail inutile
    – est essentielle.

    View Slide

  25. La charte du
    Code Agile
    a une grande valeur ajouté
    est livré rapidement et régulièrement
    est opérationnel
    s'adapte aux changements de besoins
    minimise la quantité de travail inutile

    View Slide

  26. La charte du
    Code Agile
    a une grande valeur ajouté
    est livré rapidement et régulièrement
    est opérationnel
    s'adapte aux changements de besoins
    minimise la quantité de travail inutile

    View Slide

  27. valeur
    Clean Code Dirty Code
    Good Business
    Value
    Excellent Code Good Code
    Poor Business
    Value
    Bad Code Garbage Code
    Anthony Ferrara : Beyond Clean Code

    View Slide

  28. succès
    orienté
    utilisateur
    analytics !
    valeur

    View Slide

  29. définir le succès au début du projet
    valeur

    View Slide

  30. faire des ateliers utilisateur
    réguliers
    UserVoice sur chaque site
    valeur

    View Slide

  31. toujours avoir des analytics
    le CA est aussi un indicateur
    valeur

    View Slide

  32. déploiement
    des tests qui permettent de
    limiter les risques

    View Slide

  33. déploiement
    définir le DONE en prod

    View Slide

  34. ops
    monitoring
    devops
    philosophy

    View Slide

  35. ops
    You built it, you run it

    View Slide

  36. C'est en modifiant son code qu'on
    apprend si notre design est bon.
    Martin Fowler
    #isTDDDead
    évolution

    View Slide

  37. Refactor early,
    refactor often.
    évolution

    View Slide

  38. évolution
    Agile Data
    DDD
    Code review

    View Slide

  39. coder vite
    KISS – n'adressez pas des besoins
    qui n'existent pas !

    View Slide

  40. coder vite
    Tuez rapidement
    les fonctionnalités
    qui ne servent plus

    View Slide

  41. coder vite
    DRY – mais pas trop DRY

    View Slide

  42. Ça fait
    beaucoup !

    View Slide

  43. View Slide

  44. http://goo.gl/Bhs6RM

    View Slide

  45. Et après ?

    View Slide

  46. Créez la
    confiance

    View Slide

  47. Orientez la
    qualité vers
    vos objectifs

    View Slide

  48. Merci !
    Questions ?
    @marekkalnik

    View Slide