[JUG Nantes]Retour du Jeudi 22 octobre 2009 : DOJO & TDD avec Dimitri Baeli

Une cinquantaine de personnes étaient présentes au JUG ce soir pour assister à la présentation de Dimitri Baeli, VP Qualité chez Exo Platform sur DOJO & TDD.

Dimitri est responsable du processus de développement, de l'organisation des équipes et de la livraison des logiciels.
Pour cela il s'appuie sur des méthodes comme SCRUM et XP Programming.

Dimitri Baeli

Il est venu nous présenter un DOJO :

  • Un DOJO vient du judo. L'équipe de développement vient s'entraîner à faire des Katas.
  • Il nous présente aussi comment bien configurer son poste de travail ainsi que son eclipse.

Le test driven developpement (TDD) est une façon de faire du développement en commençant par les tests.

  • Test Driven Developpement -> Junit
  • Dojo -> Entrainement (Paire Programming)
  • Kata -> Exercice
  • Randori -> Combat
  • Exemple avec un fichier excel.

Toute la salle participe à un petit exercice : Comment tester une feuille excel ?

Les participants énumèrent une liste de tests unitaires en paire programming (2 personnes à tour de rôle commencent à écrire des tests)

  • La première chose à faire est d'écrire un test qui ne passe pas.
  • Ensuite, les développeurs vont modifier le code pour que le test passe.
  • L'étape suivante est le nettoyage de code et le refactor.
  • Enfin, il faut vérifier que le test passe toujours.

Dimitri nous apprend au passage quelques raccourcis claviers, il faut dire que les développeurs ne sont pas aidés car il n'y a pas de souris 😉

Le but de cet exercice est d'écrire une série de tests qui montrent à l'utilisateur final que son programme possède de plus en plus de fonctionnalités.

Quand on fait du TDD, la session d'après le DOJO est de préparer la bonne manière de développer.

C'est ce qu'on appelle le prepared Kata :

  • Session préparée
  • Feuille Blanche
  • Utilisation de TDD
  • Expliquer chaque étape
  • Discussions autorisées.

Randori Kata :

  • Pair Programming
  • Un poste
  • Un pilote / un copilote
  • On change de rôle toutes les 7 minutes
  • Le copilote devient pilote
  • Un nouveau copilote

Initialisation :

  • Lister les principaux tests
  • Écrire un premier test.

Le cycle:

  • Faire passer le test en échec
  • Refactoring
  • Écrire le prochain test

Passer la main

Le but est d'avoir un code couvert à 100%, d'avoir un programme dédié à l'utilisation.

Le refactoring permet la non régression. Les développeurs partagent leur pratique du développement.

Le programme est opérationnel et testé dès que j'ai fini de coder.

Les méthodologies :

  • SCRUM : Parlez vous!
  • Lean : Evitez le gaspillage, terminez les tâches
  • XP : Suivez l'expérience des maîtres
  • Getting things done: Soyez mono tâche

Dimitri insiste ensuite sur la nécessité de bien configurer son espace de travail.

Voici quelques raccourcis et plugins sous eclipse:

  • F11 : execute les tests
  • Ctrl+Shift+S : sauvegarde tout
  • Ctrl+Shift+2 : accès à tous les raccourcis d'eclipse
  • Ctrl+3 : accès à tout d'eclipse.
  • Ctrl+Shift+3 : accès à tout d'eclipse.
  • Plugin EMMA ou Clover : test de couverture de code (Emma) ( Clover)
  • Plugin Mylyn : permet d'isoler les classes sur lesquelles on travaille et de se concentrer sur une tâche. (Mylyn )
  • Jira:Bug tracker (Wikipedia Jira )
  • Launchy : permet de lancer n'importe quel programme rapidement depuis Windows.(Article sur Launchy )
  • Total Commander : remplace l'explorateur de fichier sous Windows. (Total Commander)
  • Commit Monitor : permet de suivre tout les commits d'un projet.
  • Intégration continue : TeamCity, Hudson
  • GreenOper : Post-it à l'intérieur de Jira.
  • Planning : Xplanner

Usine logicielle :

  • Fabrication : Maven
  • Tests : Green pepper
  • Analyse : Sonar

Pour conclure : un JUG très intéressant où l'on a vu que la configuration du poste de travail ainsi que l'utilisation de plugins et l'apprentissage de raccourcis clavier permettaient d'améliorer la productivité du développeur.
Il est vrai que les développeurs n'ont pas forcément l'habitude de s'entraîner. Les DOJO sont une bonne manière de découvrir les bonnes pratiques, de monter en compétence et encore une fois d'améliorer la productivité.

Un commentaire

  1. Bienvenu à toi à Netapsys et merci pour ton post. C’est intéressant de lire ton retour.
    Et je vous rejoins (Denis et toi) sur le point: Comment peut-on faire un développement (sain) et faciliter la maintenance sans apprendre l’essentiel de ces design patterns?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.