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

Software craftsmanship par la pratique

Software craftsmanship par la pratique

Introduction à Software Craftmanship à travers quelques exercices utilisant des Lego

Cyrille DUPUYDAUBY

May 11, 2017
Tweet

More Decks by Cyrille DUPUYDAUBY

Other Decks in Programming

Transcript

  1. B I E N V E N U E , Q U E L Q U E S
    M E S S A G E S
    • Organisez-vous par groupes de 2
    personnes, éventuellement 3
    • Chaque groupe prend un lot de
    Lego, il y assez pour 9 groupes
    • Les lots sont équivalents, mais
    pas identiques
    • Merci de penser à les ranger
    en fin de session
    • Et surtout, amusez-vous
    • Pour me suivre: @cyrdup sur
    Twitter, many-cores.com pour le
    blog

    View Slide

  2. S O F T WA R E C R A F T S M A N S H I P
    PA R L A P R AT I Q U E
    V1.4

    View Slide

  3. A N I M AT E U R
    C Y R I L L E D U P U Y D A U B Y ( @ C Y R D U P )
    • Animateurs de BBL
    • Contributeur à NFluent (http://n-
    fluent.net/)
    • Créateur de Michonne et Rafting
    • Speaker à Devoxx
    • Blog: many-cores.com
    • Responsable architecture technique
    chez GBIS (SG)
    • Codeur depuis plus de 30 ans
    • Et signataire du manifeste…

    View Slide

  4. View Slide

  5. S O F T WA R E C R A F T S M A N S H I P
    • Objectif: professionnalisation de la
    carrière du développeur
    • Mise en avant de
    • La qualité du logiciel produit
    • La création de valeur
    systématique
    • L’animation d’une communauté
    de professionnels
    • Un partenariat avec le client

    View Slide

  6. S O U R C E S
    • Les exercices ont été conçus par
    Mike Bowler (@mike_bowler) et
    Bryan Beecham (@BillyGarnet)
    • http://www.gargoylesoftware.com

    View Slide

  7. 3 A S P E C T S
    • La simplicité
    • Test Driven xxx
    • Dette technique

    View Slide

  8. S I M P L I C I T É

    View Slide

  9. E X I G E N C E S
    • Fournir
    • Une personne
    • Une maison
    • Budget : 3 minutes

    View Slide

  10. R É S U LTAT
    • Une maison ET une personne?
    • Combien de briques utilisées ? toutes? peu?
    • Et si une brique coute 1000€ ?

    View Slide

  11. S I M P L I C I T É
    A L L E R À L’ E S S E N T I E L

    View Slide

  12. O N R E F A I T L E M AT C H
    • Fournir
    • Une personne
    • Une maison
    • Budget : 1 minute

    View Slide

  13. B I L A N

    View Slide

  14. PA I R L E G O
    • Approche Ping Pong
    • A tour de rôle
    • L'autre jouera le rôle du client
    • Un membre du groupe joue le rôle
    du constructeur
    • Le dernier jouera le rôle de QA (si
    3 membres)
    • Ensuite permutez les rôles
    • Soit client<->constructeur
    • soit client->constructeur->QA-
    >client

    View Slide

  15. T E S T D R I V E N D E V E L O P M E N T

    View Slide

  16. T E S T D R I V E N D E V E L O P M E N T
    • Un membre du binôme écrit un TEST. Le test doit échouer au départ.
    Exemples:
    • L’animal a-t-il 4 pattes?
    • Le bâtiment a-t-il une porte?
    • La personne est elle plus grande que l’animal?
    • L'autre construit
    • La QA confirme la conformité aux tests.

    View Slide

  17. E X I G E N C E S D U M É T I E R S
    • Fournir
    • Une personne
    • Un animal
    • Une plante
    • Un véhicule
    • Un bâtiment

    View Slide

  18. E X I G E N C E S
    • Fournir une personne, un animal,
    une plante, un véhicule, un bâtiment
    • Pour ajouter des legos, il faut un
    test qui rate
    • A chaque test passé, on inverse les
    rôles
    • Budget : 7 minutes

    View Slide

  19. B I L A N
    • Observations & impressions
    • Avez-vous couverts les 5 besoins?
    • Est-ce que tous les tests passent?
    • Démo

    View Slide

  20. D E T T E T E C H N I Q U E

    View Slide

  21. M É T H O D E
    • Le besoin métier est d’avoir une
    maison avec certaines
    caractéristiques
    • A chaque itération, 1 nouvelle
    exigence
    • Une fois assemblées, les
    briques ne peuvent pas être
    séparées
    • Les itérations font 30 secondes!

    View Slide

  22. P R Ê T S ?

    View Slide

  23. L A M A I S O N
    D O I T AVO I R
    2 M U R S
    R E L I É S

    View Slide

  24. L A M A I S O N
    D O I T AVO I R
    U N E F E N Ê T R E
    D A N S U N M U R

    View Slide

  25. L A M A I S O N
    D O I T Ê T R E
    E N T O U R É E
    D E M U R S

    View Slide

  26. L A M A I S O N
    D O I T AVO I R
    U N T O I T E N
    P E N T E

    View Slide

  27. L A M A I S O N
    D O I T AVO I R
    U N E
    C H E M I N É E

    View Slide

  28. L A M A I S O N
    D O I T AVO I R
    U N E P O RT E A U
    R E Z D E
    C H A U S S É E

    View Slide

  29. L A M A I S O N D O I T
    AVO I R
    U N E A U T R E
    F E N Ê T R E
    S U R U N S E C O N D
    M U R

    View Slide

  30. L A M A I S O N
    D O I T AVO I R
    U N T O I T
    P L AT

    View Slide

  31. F I N D U C H A N T I E R
    • prenez votre maison en photo
    • discussions

    View Slide

  32. R A P P E L S D E S E X I G E N C E S
    A. Deux murs reliés
    B. Une fenêtre dans un des murs
    C. Entourée de murs
    D. Toit en pente
    E. Une cheminée
    F. Une entrée au rez-de-chaussée
    G. Une autre fenêtre sur un deuxième
    mur
    H. Avoir un toit plat (changement
    d’avis)

    View Slide

  33. M É T H O D E
    • Le besoin métier est d’avoir une
    maison avec certaines
    caractéristiques
    • A chaque itération, 1 nouvelle
    exigence
    • Les briques peuvent être
    librement réassemblées
    • Les itérations font 30 secondes!

    View Slide

  34. P R Ê T S ?

    View Slide

  35. L A M A I S O N
    D O I T AVO I R
    2 M U R S
    R E L I É S

    View Slide

  36. L A M A I S O N
    D O I T AVO I R
    U N E F E N Ê T R E
    D A N S U N M U R

    View Slide

  37. L A M A I S O N
    D O I T Ê T R E
    E N T O U R É E
    D E M U R S

    View Slide

  38. L A M A I S O N
    D O I T AVO I R
    U N T O I T
    P L AT

    View Slide

  39. L A M A I S O N
    D O I T AVO I R
    U N B A L C O N

    View Slide

  40. L A M A I S O N
    D O I T AVO I R
    U N E E N T R É E A U
    R E Z D E
    C H A U S S É E

    View Slide

  41. L A M A I S O N D O I T
    AVO I R
    U N E B A I E V I T R É E /
    G R A N D E F E N Ê T R E
    S U R U N S E C O N D
    M U R

    View Slide

  42. L A M A I S O N
    D O I T AVO I R
    U N T O I T E N
    P E N T E

    View Slide

  43. F I N D U
    C H A N T I E R

    View Slide

  44. R A P P E L S D E S E X I G E N C E S
    A. Deux murs reliés
    B. Une fenêtre dans un des murs
    C. Entourée de murs
    D. Toit plat
    E. Un balcon
    F. Une entrée au rez-de-chaussée
    G. Une baie vitrée/grande fenêtre
    H. Avoir un toit en pente (changement
    d’avis)

    View Slide

  45. B I L A N
    • Qu’avez vous ressenti durant le premier exercice ? le second ?

    View Slide

  46. C O N C L U S I O N S

    View Slide

  47. VO U S AV E Z E X P É R I M E N T É
    • Simplicité
    • TDD
    • Dette technique

    View Slide

  48. D E S L I V R E S

    View Slide

  49. R O T I

    View Slide

  50. R É F É R E N C E S
    • Clean Coder (Rober C.Martin)
    • The Software Craftsman:
    Professionalism, Pragmatism,
    Pride (Sandro Mancuso)
    • Cyrille Dupuydauby: @Cyrdup,
    http://many-cores.com, http://
    www.n-fluent.net/

    View Slide