Software craftsmanship par la pratique

Software craftsmanship par la pratique

Introduction à Software Craftmanship à travers quelques exercices utilisant des Lego

43022845c143b75a94c7c4b855975ee3?s=128

Cyrille DUPUYDAUBY

May 11, 2017
Tweet

Transcript

  1. 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
  2. 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
  3. 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…
  4. 4.
  5. 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
  6. 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
  7. 7.

    3 A S P E C T S • La

    simplicité • Test Driven xxx • Dette technique
  8. 9.

    E X I G E N C E S •

    Fournir • Une personne • Une maison • Budget : 3 minutes
  9. 10.

    R É S U LTAT • Une maison ET une

    personne? • Combien de briques utilisées ? toutes? peu? • Et si une brique coute 1000€ ?
  10. 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
  11. 12.

    O N R E F A I T L E

    M AT C H • Fournir • Une personne • Une maison • Budget : 1 minute
  12. 13.
  13. 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
  14. 15.

    T E S T D R I V E N

    D E V E L O P M E N T
  15. 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.
  16. 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
  17. 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
  18. 19.

    B I L A N • Observations & impressions •

    Avez-vous couverts les 5 besoins? • Est-ce que tous les tests passent? • Démo
  19. 20.
  20. 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!
  21. 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
  22. 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
  23. 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
  24. 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
  25. 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
  26. 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
  27. 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
  28. 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
  29. 31.

    F I N D U C H A N T

    I E R • prenez votre maison en photo • discussions
  30. 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)
  31. 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!
  32. 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
  33. 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
  34. 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
  35. 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
  36. 39.

    L A M A I S O N D O

    I T AVO I R U N B A L C O N
  37. 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
  38. 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
  39. 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
  40. 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)
  41. 45.

    B I L A N • Qu’avez vous ressenti durant

    le premier exercice ? le second ?
  42. 47.

    VO U S AV E Z E X P É

    R I M E N T É • Simplicité • TDD • Dette technique
  43. 49.
  44. 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/