XP Day France 09 : compte rendu de sessions suivies

Cette année encore, j’ai encore eu la chance de me rendre à XPDay France (merci Valtech Technology, mon employeur !), LA réunion agile française, qui se déroule sur 2 jours (je ne suis que le Lundi)
Cette année, je présente avec 2 collègues, Yannick Ameur et Stpéhane Malbéqui la session « TDD avec ou sans mocks » à 15:00 , mais en attendant, j’ai pu assister aux sessions suivantes :

Modelisation agile

par Pascal Roques ancien consultant Valtech/ Valtech Training, aujourd’hui chez A2 consultants, expert en UML, présente comment modéliser en mode Agile, 45 min de présentation, 45 minutes de Travaux pratiques
En introduction, Pascal nous rappelle que les spécifications nes ont pas désuètes, même à l’heure de l’agilité : c’est pas forcément lourd, cher, et encore moins inutiles, il s’appuie d’ailleurs sur les dires de « gurus » agiles comme A. Cokburn, M. Fowler et C. Larman, auteurs qui pronent la modélisation agile, la référence étant http://www.agilemodeling.com par Scott Ambler.
Il faut trouver le juste milieu entre pas de modélisation, et trop de modélisation (génération de tout le code, etc..)
Pascal nous a ensuite présenté les valeurs de la modélisation agile : communication, simplicité, feedback, courage humilité !

Pratiques de la modélisation agile :

  • au fur et à mesure, au moment où en a besoin, pas tout d’un coup !
  • modéliser ensemble : sur un grand tableau blanc par exemple
  • simplicité : il n’est pas nécessaire d’avoir des énormes outils, des outils simples suffisent, voire meme juste 1 paperboard qu’on prend en photo !
  • validation : ne pas oublier de valider le modèle ne le codant !

Quand doit on modéliser ? plutot en début d’itération, ou au sprint 0 en Scrum, la première itération de cadrage
Pascal nous présente ensuite un exemple : librairie en ligne

  • 1er diagramme : use cases (consultation, achat d’ouvrages, etc…
  • 2eme diagramme : diagramme de séquances : représentation des intéractions dynamiques entre acteurs (internaute et librairie en ligne)
  • Diagramme de classes : juste ce dont on besoin : le livre et l’auteur dans un premier temps, le panier et les lignes panier dans un second temps

Travaux pratiques :

Jeu du démineurs : écrire de diagramme de cas et de séquence et de classe faits par groupe de 8 sur le paper board.
En conclusion, l’important n’est pas le modèle obtenu, mais le fait d’avoir réfléchi ensemble !
Pascal a terminé sa conclusion en présentant des outils de modélisation agile :
, entre autres http://www.yuml.me (creation de diagrammes UML en ligne, publication sur wiki ou blog), http://www.websequencediagrams.com

Ceintures et bretelles : Test d’applications Web par Arnaud Bailly

Beaucoup de bugs dans les applis web, interfaces graphiques de plus en plus riches, on veut enregistrer et rejouer des scénarios de manière automatisée.
On s’intéresse uniquement du côté client.
Exemple en Java / Scala :utilisation de maven 2, selenium, web driver, JqUnit (tests unitaires JQuery) pour l’exécution des tests en « mvn clean install »
2eme démo : avec le framework Spec, cas de test écrit en BDD (Behaviour Driven Development)
C’est bien, mais un peu long (27 sec. pour 3 tests) !
Intégration des tests dans un serveur d’intégration continue, et utilisation de Virtual FrameBuffer pour que les tests puissent lancer le navigateur sans serveur X.
Mais çà devient de plus en plus complexe ! On peut penser à utiliser HTMLUnit pour remplacer le navigateur, mais çà restera long…
Puisque le code JavaScript est de qualité, testé, avec domaine métier, pourquoi utiliser un navigateur finalement ?
En exécutant les tests sans passer par un navigateur, on gagne du temps (on en est au 18 sec.)
En conclusion, Arnaud se pose la question si les tests d’IHM apportent vraiment de la valeur, car après tout, les tests sont trop long à exécuter (un projet avec 50 tests peut mettre 1 nuit à passer); même s’il est important de tester le côté fonctionnel, mais question ergonomi, placement des zones les testeurs humains ont toujours leur plus value !

XP 2.0 : améliorer l’amélioration continue avec Lean, par Régis Medina et Antoine Contal

Après XP, découverte de Lean
A travers du vécu lors de la mise en place de Orange Web TV, Antoine explique sa démarche Scrum dans son équipe et Régis y confronte Lean.
Régis essaie de cibler la volonté du client, la performance obtenue : mais en observant les indicateurs, on observe un décalage entre la performance attendue et la performance atteinte : un problème apparaît.
Des concepts Lean comme le QRQC (Quick Response Quality Control), les checklists ont été évoqués et mis en oeuvre sur le projet d’Antoine.
Antoine a apprécié lors de sa mise en oeuvre Lean :

  • Les indicateurs de performance
  • Les standard de travail
  • l’amélioration continue (tous les jours du just do it)

Il a aussi trouvé dur à appliquer ces règles : par exemple : le processus est sans fin
Après la pause déjeuner, passée avec d’anciens et d’actuels Valtech (!) nous avons répété la session

TDD avec ou sans Mock

session donnée à 15h15 (un peu de retard, sur le planning) par moi même, Stéphane Malbéqui et Yannick Ameur d’ailleurs si vous avez aimé la présentation, et bien déjà n’hésitez pas à poster un commentaire, et ensuite rendez vous sur l’hébergement de la présentation:
http://code.google.com/p/tddavecousansmock/
La session a un peu dérapé (mais pas trop) l’affichage des slides sur le video projecteur était pas super, mais en tout cas je pense que le sujet a éveillé les consciences : mocker n’est pas automatique et d’un autre côté les tests unitaires ne suffisent pas !
Ensuite, direction

Mon JavaScript est agile

Toujours donnée par Arnaud Bailly, très intéressante (et très technique aussi), prouvait qu’il est possible de faire du TDD avec des DSL en JavaScript !

Ensuite le mot des sponsors, au nombre de 5 je crois, l’apéro Agile et le repas Agile, d’excellente qualité, des bons moments pour échanger avec les agilistes francophones (on a beaucoup parlé de la comparaison iPhone/Android quand même ;-) vivent les système ouverts!)
Dommage, je n’y reviendrai pas demain, bonne journée pour ceux qui auront la chance d’y être !