Download - Session mons 22 mars
![Page 1: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/1.jpg)
AgileCampusTour
![Page 2: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/2.jpg)
@mlainez
@mlainez
@cimm
@jbpros
Julien Biezemans
Simon Schoeters
Marc Lainez
La fine équipe
Si vous voulez tweeter utilisez le hashtag #actbe
![Page 3: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/3.jpg)
Souvenez-vous de Bob
![Page 4: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/4.jpg)
Le projet sur lequel il travaille
![Page 5: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/5.jpg)
Week DayStories
TODO
WIP
(4)
DONE
~~~~~
Na
Mi
Blu
Et sa vision du déroulement d’un tel projet
![Page 6: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/6.jpg)
Week DayStories
TODO
WIP
(4)
DONE
~~~~~
Na
Mi
Blu
Et sa vision du déroulement d’un tel projet
![Page 7: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/7.jpg)
Comment se passe le développement au jour le jour ?
![Page 8: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/8.jpg)
Chaque matin, Bob et son équipe se réunissent en daily standup
Stories TODO WIP(4) DONE
~~~~~3
~~~~~5
~~~~~ 2
~~~~~3
~~~~~5
Name tags
Misc.
Blue Team
![Page 9: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/9.jpg)
“Non, on ne s’assied pas durant un standup”
![Page 10: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/10.jpg)
Bob insiste sur la qualité du code produit
![Page 11: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/11.jpg)
Pourquoi ?
New Guy
![Page 12: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/12.jpg)
Bob veut simplement éviter d’accumuler de la ‘dette technique’
![Page 13: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/13.jpg)
Quand on code au plus vite et de manière non optimale, on contracte une dette technique que l'on rembourse tout au long de la vie du projet sous forme de temps de développement de plus en plus long et de bugs de plus en plus réguliers
Wikipedia
![Page 14: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/14.jpg)
C’est un peu comme un prêt pour une maison...
![Page 15: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/15.jpg)
Comment apparaît-elle ?
![Page 16: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/16.jpg)
Comment la rembourser ?
![Page 17: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/17.jpg)
Comment la rembourser ?En “refactorant” le code !
![Page 18: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/18.jpg)
Mais pas n’importe comment !
![Page 19: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/19.jpg)
Bob insiste aussi sur la pratique du pair programming
![Page 20: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/20.jpg)
Quelle que soit la formule
![Page 21: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/21.jpg)
1 clavier 1 souris
![Page 22: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/22.jpg)
2 claviers 2 souris
![Page 23: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/23.jpg)
![Page 24: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/24.jpg)
2 claviers 2 souris 2 écrans (mirroring)
![Page 25: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/25.jpg)
Bob insiste également sur l’importance des tests
![Page 26: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/26.jpg)
A différents niveaux de l’application
![Page 27: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/27.jpg)
Le test unitaire est un procédé permettant de s'assurer du fonctionnement correct d'une partie déterminée d'un logiciel ou d'une portion d'un programme.
Wikipedia
![Page 28: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/28.jpg)
Les tests d'intégration ont pour but de valider le fait que toutes les parties développées indépendamment fonctionnent bien ensemble de façon cohérente.
Wikipedia
![Page 29: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/29.jpg)
Mais au fond, à quoi ca peut bien servir, ces tests...
![Page 30: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/30.jpg)
Identifier une régression
![Page 31: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/31.jpg)
Vérifier des critères d’acceptance
![Page 32: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/32.jpg)
Protéger une application existante
![Page 33: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/33.jpg)
“Oui mais les tests ça prend du temps...”
![Page 34: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/34.jpg)
C’est un investissement
![Page 35: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/35.jpg)
Et une source de documentation
![Page 36: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/36.jpg)
Et si on écrit ces tests avant le code, on développe différement, c’est du TDD
![Page 37: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/37.jpg)
Après avoir écrit un test, on l’exécute...
![Page 38: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/38.jpg)
On écrit le code minimal pour qu’il passe
![Page 39: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/39.jpg)
On “refactore” le code
![Page 40: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/40.jpg)
Si une régression apparaît on le voit tout de suite !
![Page 41: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/41.jpg)
Exemple : les “specs” de Carcassonne
![Page 42: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/42.jpg)
On peut aussi aller plus loin et faire intervenir la valeur métier du client
![Page 43: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/43.jpg)
“Lorsque je suis sur le menu principal, je dois voir l’image du jeu”
“Lorsque je remplis le champ et que j’appuie sur le boutton, alors le nom doit apparaître dans la liste”
Les paires recoivent les sénarios
![Page 44: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/44.jpg)
Et écrivent leurs tests dans un langage lisible par leur client
![Page 45: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/45.jpg)
Ils font du BDD
![Page 46: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/46.jpg)
Avec Cucumber ou JBehave
![Page 47: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/47.jpg)
Exemple : un “feature” de carcassonne
![Page 48: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/48.jpg)
Dès que la fonctionnalité répond à la notion de “terminé”
![Page 49: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/49.jpg)
Elle est envoyée au “système de versioning”
![Page 50: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/50.jpg)
Pourquoi ?
Conflicts
Conflicts
Back to last commit please !
I did
this
![Page 51: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/51.jpg)
![Page 52: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/52.jpg)
La fonctionnalité envoyée, le serveur d’intégration continue prend le relais
![Page 53: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/53.jpg)
Il va exécuter la suite de tests
![Page 54: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/54.jpg)
Vérifier qu’on a pas de régression
![Page 55: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/55.jpg)
Si tout passe, on déploie en “staging”
![Page 56: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/56.jpg)
Afin que le client puisse tester
![Page 57: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/57.jpg)
Si c’est accepté, on peut déployer en production
![Page 58: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/58.jpg)
Week DayStories
TODO
WIP
(4)
DONE
~~~~~
Na
Mi
Blu
![Page 59: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/59.jpg)
Ce n’est pas une recette miracle, et ça ne convient pas à tout le monde...
![Page 60: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/60.jpg)
Et comment on fait sur un projet existant ?
![Page 61: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/61.jpg)
Adapter le processus progressivement
![Page 62: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/62.jpg)
En organisant des rétrospectives
![Page 63: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/63.jpg)
![Page 64: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/64.jpg)
S’attaquer à la dette technique progressivement
![Page 65: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/65.jpg)
Grâce à des “smoke tests”
![Page 66: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/66.jpg)
Et la méthode mikado
![Page 67: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/67.jpg)
Un peu de lecture ?
![Page 68: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/68.jpg)
Encore une petite rétrospective ?
![Page 69: Session mons 22 mars](https://reader031.vdocuments.mx/reader031/viewer/2022020101/55b85db4bb61eb74378b4799/html5/thumbnails/69.jpg)
http://agilecampustour.org@agilecampustour
Questions?