72
Sensibilisation aux bonnes pratiques techniques du Software Craftsmanship : Lego ® à la rescousse ! Isabelle BLASQUEZ Alice BARRALON @ iblasquez @ a_barralon

Atelier Lego pratique

Embed Size (px)

Citation preview

Page 1: Atelier Lego pratique

Sensibilisation

aux bonnes pratiques techniques

du Software Craftsmanship :

Lego® à la rescousse !

Isabelle BLASQUEZ Alice BARRALON

@iblasquez @a_barralon

Page 2: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

A l’image du potier qui travaille son argile en continu, le développeur travaille son code en permanence. Benoit Gantaume

Extraits : http://manifesto.softwarecraftsmanship.orghttp://www.frenchweb.fr/craftsman-lartisan-du-code/221948

Page 3: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Il faut jouer pour devenir serieux. Aristote

Le jeu est comme un engrais pour la croissance du cerveau. Il est fou de ne pas l’utiliser. Stuart Brown

915 103 765 combinaisons possibles

La puissance des LEGO®

Page 4: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Adapte d’une idee originale de :

Version originale : About the LEGO technical practices exercises : http://www.gargoylesoftware.com/ex

Page 5: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Matière première …

Images : http://www.boost.co.nz/blog/2013/11/what-does-lego-and-building-high-quality-software-have-in-common/http://www.passetoncode.fr/cours/feux-tricolorehttp://www.bbbpress.com/2015/06/drama-game-index-card/

Page 6: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Simple, pour commencer …

3 minutes

Construire une maison et une personne

Page 7: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Admirez et partagez !

#TDDLego

Extraits de : https://twitter.com/sahithyaW/status/428217265667198976https://twitter.com/JeffHoover/status/515550469175799808https://twitter.com/iGeaux/status/515550799045607424https://twitter.com/iGeaux/status/515554621629415424

Page 8: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Debriefing

Valeurmétier

Extrait : https://twitter.com/iGeaux/status/515554621629415424https://twitter.com/sahithyaW/status/428217265667198976Pièces disponibles sur : http://shop.lego.com/

ET

Si on vous avait dit que chaque point de brique de Lego®

coutait 1000€, est-ce que cela aurait influencé votre design ?

« juste assez » (pensée Lean)

OU OU OU ?

Coût Temps ? Ressources ?

Page 9: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonnes Pratiques : deux principes indispensables

KISSKeep It Simple Stupid

Vs

YAGNIYou Ain’t Gonna It

Page 10: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Une livraison KISS pour notre problème …

Inspiré de by Kelly Johnson et http://www.slideshare.net/theojungeblut/20101010-lego-for-software-engineers

Page 11: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Une brique : le pouvoir de la métaphore au service de la simplicité

Extrait : http://piwee.net/1-affiches-minimalistes-brique-lego-030516/Extrait

Page 12: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Quid du programme informatique parfait ?

Images : http://prettypoun.centerblog.net/6587339-materiel-scolaire-rentree-des-classes-tableau-de-classehttp://www.supportduweb.com/generateur-de-post-it-web-20-sites-note-bloc-image-post-it-texte.html http://www.icone-png.com/png/54/53878.png

Qu’est ce qui selon

vous rend

ce programme parfait?

Qu’est ce qui le

caractérise?Espace vide = programme parfait pour construire quelque chose de nouveau

Espace vide = programme parfaitpour construire quelque chose de nouveau

Nettoyez votre espace de travail !

Page 13: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Quid du programme parfait ? (quelques éléments de réponse)

Il marche !!! Pas de bugs

Satisfait toutesles exigences

Implémenté en un

rien de temps

S’executeextrêmementrapidement

Ne coûte rien

Très facile à l’étendre

(de construire au-dessus)

Très facile à comprendre et à maintenir

Page 14: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Quand nous créons un nouveau projet,

nous commençons avec un

programme parfait

A chaque ajoutde code,

nous nous éloignons de cet idéal.

Nous devrions nous efforcer de tout mettre en œuvre

pour disposerà tout moment d’un

logiciel aussi simpleet petit que possible qui tend vers l’ideal.

Source post-it : http://www.supportduweb.com/generateur-de-post-it-web-20-sites-note-bloc-image-post-it-texte.html

Page 15: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Extrait du site : http://www.topito.com/top-constructions-legoEn savoir plus sur les oeuvres de Nathan Sawaya : http://www.brickartist.com/ et http://www.nathansawaya.com/

Vous avez dit : Simplicité ?

Page 16: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonne Pratique : Les règles de simplicité (eXtreme Programming)

Extrait : http://c2.com/cgi/wiki?XpSimplicityRulesA lire également : http://martinfowler.com/bliki/BeckDesignRules.htmlet https://leanpub.com/4rulesofsimpledesign

1. Tous les tests passent

4. Le plus petit nombre d’elements

(complexité)

2. Exprimer l’intention du code

(lisibilité)

3. DRY : pas de duplication

(Don’t RepeatYourself)

Page 17: Atelier Lego pratique

Test Driven Development (TDD) :

à la Rescousse !

Descriptif original de l’atelier disponible sur : http://www.gargoylesoftware.com/ex/lego_tdd

Page 18: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Image : http://blog.octo.com/coder-a-pas-de-chaton-

a-lecole-du-tech-lead/

Red

GreenRefactor

Test Driven Developpement

Itérations « baby-step » rapides (de quelques secondes à quelques minutes)

But du TDD : « Clean code that works » Ron Jeffries

Page 19: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Refactoring : Définition

Un refactoring (remaniement) consiste à changer la structure interne d’un logiciel

sans en changer son comportement observable(M. Fowler)

Pas de refactoring sans test !!!

Page 20: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

TDD en pratique

Pas de code de production sans test !

Un nouveau test = un nouveau comportement

Ecrire au plus vite un code qui fait passer les tests

Page 21: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Let’s go ! Itération 1

Refactor

Besoin de simplifier la conception ?

Y-a-t-il de la duplication ?

… enfin, « refactorer » si nécessaire

Toujours un petit test en échec pour commencer …

Existe-t-il une personne dans le programme ?

avec le minimum d’effort pour que

le test passe au VERT…

… puis construire rapidement quelque chose

1 seule brique suffit

Page 22: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Let’s go ! Itération 2

Lever votre carton vert lorsque l’itération est finie !

Refactor

Besoin de simplifier la conception ?

Y-a-t-il de la duplication ?

TOUS les tests doivent passés

(succès = VERT) pour garantir

le comportement du programme

Existe-t-il une maison dans le programme ?

Page 23: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Choix du prochain test …

(Est-il vrai que)la maison est

plus haute que la personne ?

ou ?

assertTrue(maison.taille > personne.taille)

D’un point de vue purement informatique, pas encore de taille pour Maison et Personne

Nouveau test - nouveau comportement : La maison doit être plus haute que la personneOn apprend un petit quelque chose de nouveau …

Page 24: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Un echec est une reelle opportunite d’apprendre

If you’re not failing, you’re not learning. Bryan Beecham

Image extraite de : https://www.linkedin.com/pulse/how-optimise-your-return-failure-rof-steve-glaveski

If you’re not failing, you’re not innovating. Elon Musk (Tesla Motors)

Page 25: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Let’s go ! Itération 3

Lever votre carton vert lorsque l’itération est finie !

Refactor

Besoin de simplifier la conception ?

Y-a-t-il de la duplication ?

Effort minimum pour que

tous les tests passent au VERT

Green

La maison est plus haute que la personne ?

Page 26: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Let’s go ! Itération 4

Lever votre carton vert lorsque l’itération est finie !

La maison est plus large que la personne ?

A chaque nouveau test, nous apprenons

de plus en plus sur les besoins de l’utilisateur …

Refactor

Besoin de simplifier la conception ?

Y-a-t-il de la duplication ?

Green

Effort minimum pour que

tous les tests passent au VERT

Page 27: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Quel intérêt de créer une maison et une personne,

s’il n’y a pas d’interactions entre ces deux objets ?

La personne peut entrer dans

la maison ?

Nouveau test doit être ajouté si et seulement si

il apporte de la valeur à l’utilisateur

Page 28: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Let’s go ! Itération 5

Lever votre carton vert lorsque l’itération est finie !

Refactor

Besoin de simplifier la conception ?

Y-a-t-il de la duplication ?

Green

Effort minimum pour que

tous les tests passent au VERT

La personne peut entrer dans

la maison ?

Page 29: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Nettoyer votre espace de travail

Prêt pour une nouvelle mission?

Détruire vos constructions

Page 30: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Descriptif original de l’atelier disponible sur : http://www.gargoylesoftware.com/ex/technical_debtImage : https://twitter.com/LEGO_Group/status/710496008795336704

Indispensable REFACTORING

pour minimiser la dette technique !

Page 31: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Instructions

Contrainte :REFACTORING INTERDIT !!!

Deux briques assembléesne pourront en aucun cas être séparées

c-à-daucune des briques utilisées

ne pourra être enlevées

Exigences données pas à pas(sous forme de condition de tests)

Une nouvelle exigence toutes les 30 secondes

Page 32: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°1

30 secondes

La maisondoit avoirdeux mursconnectés

Images extraites : http://www.supportduweb.com/generateur-de-post-it-web-20-sites-note-bloc-image-post-it-texte.html

Page 33: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°2

30 secondes

La maisondoit avoir

Une fenêtresur un mur

Page 34: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°3

30 secondes

La maison doit êtreentièrement fermée.

Ajouter égalementdes murs intérieurs

Page 35: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°4

30 secondes

La maisondoit avoir

Un toit en pente

Page 36: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°5

30 secondes

La maisondoit avoir

Une cheminée

Page 37: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°6

30 secondes

La maisondoit avoir

Une porte au rez-de-chaussée

Page 38: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°7

30 secondes

La maisondoit avoir

Une fenêtre sur un second mur

Page 39: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Exigence n°8

60 secondes

La maisondoit avoir

maintenantUn toit plat

Les toits en pente ne se vendent plus !

Page 40: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Admirer votre œuvre

La mettre de coté(et ne pas la détruire !)

Page 41: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Contrainte levée : REFACTORING AUTORISE !

c-a-dPossibilité de séparer de

séparer des briques déjà assemblées entre elles

Red

GreenRefactor

Exigence pas à pas toutes les 30 secondes

Page 42: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

La maison de mes rêves (refactoring autorisé)

La maisondoit avoir

deux mursconnectés

La maison doit êtreentièrement fermée.

Ajouter égalementdes murs intérieurs

Page 43: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

La maison de mes rêves (refactoring autorisé)

La maisondoit avoir

Un toit en pente

La maisondoit avoir

Une fenêtresur un mur

La maisondoit avoir

Une fenêtre sur un second mur

Page 44: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

La maison de mes rêves (refactoring autorisé)

La maisondoit avoir

Une cheminée

La maisondoit avoir

Une porte au rez-de-chaussée

La maisondoit avoir

maintenantUn toit plat

Page 45: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Débriefing:.

Qu’avez-vous ressenti lors de la 1ère itération ? Et lors de la 2nd itération?

Comparez vos constructions de la 1ère itérationet de la 2nd itération.

Laquelle était la plus facile à construire ?… Est-ce que refactorer vous a ralenti ?

Si vous deviez continuer à construire sur une de ces deux constructions, laquelle choisiriez-vous ?

#TDDLego

Page 46: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonne Pratique : Refactoring& Dette technique

La dette technique est une métaphore du développement logiciel inventée par

Ward Cunningham.

Images : techtrends.xebia.fr https://twitter.com/khellang/status/626716128379830273

http://www.frenchweb.fr/craftsman-lartisan-du-code/221948

Les étapes de refactoring permettent au développeur de travailler sur un code propre (clean code) et de minimiser ainsi la dette technique

Page 47: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonne Pratique : Refactoring& Code Legacy

Images : techtrends.xebia.fr https://twitter.com/khellang/status/626716128379830273

http://www.frenchweb.fr/craftsman-lartisan-du-code/221948

Always code as if the guy who ends up maintenaing your code will be a violent psychopath who knows where you live. Martin Golding

Always leave the campground cleaner than you found it. Boy scout theory

Page 48: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Images : http://www.drims-academy.fr/author/athiefaine/

La propreté du code, une responsabilité collective

Page 49: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonne Pratique : Refactoring & TDD

Le refactoring contribue à travers tous les cycles du TDDà l’obtention d’une conception simple et évolutive

appelée conception émergente

TDD : une méthode dirigée par les testspour bien concevoir un produit (product right)

Page 50: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Source : https://github.com/neomatrix369/refactoring-developer-habits/blob/master/02-outcome-of-collation/tdd-manifesto/tdd-good-habits-manifesto.md

Voir aussi : http://fr.slideshare.net/neomatrix369/refactoring-developer-habits-62785350https://github.com/neomatrix369/refactoring-developer-habits

Good Habits Manifesto :Les bonnes pratiques du TDDsous forme de Mindmap

Page 51: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

TDD : Les références

ET Confiance

Page 52: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

TDD : une discipline de programmation …

Page 53: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Alors #TDDLego :

Entraînement ! Let’s Go !

Descriptif original de l’atelier disponible sur : http://www.gargoylesoftware.com/ex/lego_tdd (paired builds)Image : http://jaysbrickblog.com/2012/07/27/lego-olympics-team-gb-minifigures-review/

Page 54: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Bonne Pratique : Pair Programming

A partir de maintenant,

vous travaillerez en binôme

Extrait :https://twitter.com/LEGOIdeas/status/760814604003999744

Page 55: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Itérations « baby-step » rapides (de quelques secondes à quelques minutes)

Le copilote écrit un nouveau test, sous forme de question sur un post-it et la place sur la table.

Le pilote construit le minimum en LEGO® pour faire passer les tests.

Refactor jusqu’à ce que la personne qui a écrit le test (copilote) soit satisfaite de

l’implémentation

Rôle pilote-copilote

échangé à chaque itération

Pair-building pour cet exercice …

Image : https://twitter.com/LEGO_Group/status/756126659057561600

Page 56: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Rappel de quelques tests dejà ecrits …

Existe-t-il une personne dans le programme ?

La maison est plus haute que la personne ?

Existe-t-il une maison dans

le programme ?

La maison est plus large que la personne ?

La personne peut entrer dans

la maison ?

La maison a au moins 4

briques de haut ?

…La maison a une cheminée ?

… 1 seul test à la fois & « baby step »…

Page 57: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALONImages : http://prettypoun.centerblog.net/6587339-materiel-scolaire-rentree-des-classes-tableau-de-classe

Kata du jour :

1 personne1 animal1 plante

1 véhicule1 bâtiment

TDD et Pair-programming

Page 58: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Débriefing:.

Qui a rempli les cinq exigences de base ?

Qu’avez-vous observé ? Qu’avez-vous ressenti ?

Revue : Un petit coup d’œil sur les autres œuvres …

Est-ce que tous vos tests passent ?

#TDDLego

Page 59: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Nettoyer votre espace de travail

Prêt pour une nouvelle mission?

Détruire vos constructions

Page 60: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Prêt pour le grand plongeon

en équipe ?Descriptif original de l’atelier disponible sur : http://www.gargoylesoftware.com/ex/lego_tdd (integrated builds) Image https://twitter.com/LEGO_Group/status/767013378371952640

Page 61: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALONExtraits de : https://twitter.com/LEGOIdeas/status/767662715162730496

Une équipe de 6 personnes en pair-building

sur une même table

Une équipe =

une entreprise avec une super idée !

Construire en Equipe …

Chaque table devra procéder à une grande construction un peu complexe

composée de petites constructions indépendantes et différentespouvant se connecter entre elles

(à l’image d’un zoo, un aéroport, un parc d’attraction, un vaisseau spatial … mais pas d’un immeuble traditionnel !)

Page 62: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Choisir votre idée (originale ?)

Page 63: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

TO DO …

Backlog Produit (liste des choses à faire)Prenez quelques minutes pour identifier quelques composants à construire

Implémentation

Chaque paire construit un composant en TDD …

… Puis intègre sa construction au sein du grand projet (centre de la table) et dépose le test sur la table …

… en vérifiant bien que tous les tests de l’Equipe continuent à passer !

Page 64: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

… et des tests qui ont permis d’arriver à ces

magnifiques créations !

Présentation des constructions …

#TDDLego

Démonstration

Page 65: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Combien d’iterations pour arriver ces œuvres d’art ?

En savoir plus sur l’exposition Art of the Brick :http://www.parentsatoutprix.fr/the-art-of-the-brick-avis/

Photo prise à

Page 66: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALONImage : https://www.instagram.com/p/BJGD4bijJJ-/ Exposition #ArtOfTheBrick

Que vous ayez ou pas …

Qu’avez-vous ressenti ?

Bilan & Rétrospective

Qu’avez-vous appris ?

Que mettrez-vous en application dès lundi ?

N’oubliez pas de remplir le sondage. Merci !

TDD

Refactoring

Pair-Programming

Simplicité

Clean Code

Expérience de travail dansune équipe de développement jargon

Autre …

Page 67: Atelier Lego pratique

Références

Page 68: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

WebOGraphie (1/2)

Descriptif original des ateliers “About the LEGO® technical practices exercises” : http://www.gargoylesoftware.com/ex

Vidéo : Enregistrement d’un atelier : TDD and Refactoring with LEGO by Bryan Beecham (2014) https://www.infoq.com/presentations/tdd-lego

Transparents : TDD and Refactoring with LEGO at Agile2013 : http://fr.slideshare.net/BillyGarnet/td-dand-refactoringwithlegoagile2013-25143447http://fr.slideshare.net/BillyGarnet/tdd-and-refactoring-with-lego

Video teasing Lego TDD & Refactoring ATT :https://www.youtube.com/watch?v=w7oupm_2KH0

Photos: https://flic.kr/s/aHsjPgKJAksur le compte de https://www.flickr.com/photos/livingjuicy (album NYC Scrum Users Group Dec. 2013)

Page 69: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

WebOGraphie (2/2)

Articles :Using Lego to Teach Technical Practices (Article original) : https://www.infoq.com/news/2016/05/lego-teach-technical

Des Lego pour Apprendre les Pratiques Techniques (version française) : https://www.infoq.com/fr/news/2016/06/lego-teach-technical

A lire également :

Intro to Refactoring with LEGOs : http://agilecomplexificationinverter.blogspot.fr/2013/12/intro-to-refactoring-with-legos.html

http://www.boost.co.nz/blog/2013/11/what-does-lego-and-building-high-quality-software-have-in-common/

The ROI of Refactoring: Lego vs. Play-Doh : http://fr.slideshare.net/NeilGreen1/the-roi-of-refactoring-lego-vs-playdoh

Page 70: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

En savoir plus sur le Software Craftsmanship

techtrends.xebia.fr

https://leanpub.com/socra

https://pragprog.com/book/tpp/the-pragmatic-programmer

http://www.octo.com/fr/livres-blancs

Page 71: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

A mediter …

Article complet disponible sur : http://gb-prod.fr/2016/06/12/artisan-developpeur.html

Page 72: Atelier Lego pratique

Isabelle BLASQUEZ – Alice BARRALON

Article complet disponible sur : https://medium.com/alebaffa-blog/how-can-you-say-youre-a-software-crafts-wo-man-48ebc055ba9d#.byqyxzdjx

Et aussi …