Archive

Articles taggués ‘coding dojo’

BDD – Spécifications éxécutables à Grenoble

Le premier atelier autour de l’approche BDD (Behavior Driven Development) organisé par le CARA (Club Agile Rhône Alpes) s’est déroulé Jeudi 9 février dernier à Grenoble dans les locaux d’Orange Labs.

Une bonne vingtaine de participants ont eu la chance de pouvoir profiter d’un tel événement dont l’organisation était parfaitement maîtrisée. L’assemblée se composait essentiellement de personnes familières des méthodes agiles et à peu près équitablement réparties entre product owners et développeurs.

Tout d’abord quelques mots sur le concept…
Dans la droite ligne du « manifeste agile« , BDD est une méthode de développement par les tests qui privilégie la collaboration active entre tous les acteurs d’un projet et la recherche de feedback rapide.
Cette approche est à la frontière entre le TDD ( unit Tests Driven Development) et l’ATDD (Acceptance Test Driven Development) centré sur les « user stories » basées le modèle :

En tant que [rôle] je veux [fonctionnalité] dans le but de [bénéfice]
As a … I want … so that …

Les tests BDD sont quant à eux, formulés en tant que scénario (exemple concret) selon le modèle suivant :

Etant donné [un contexte], quand [un événement se produit], alors [vérification du résultat attendu].
Given … when … then …

Les tests BDD peuvent être, en quelque sorte, comparés à des tests unitaires formulés dans un langage (associé à du code exécutable) compréhensible par tout membre du projet non technique.
Un vocabulaire commun et métier se profile alors entre MOA et MOE dénommé « langage omniprésent » que cherche également à mettre en valeur l’approche DDD (Domain Driven Design). Ces tests sont bien évidement inclus dans la chaîne d’exécution de la plate-forme d’intégration continue.

Concernant le déroulement de la journée, la matinée a donné l’occasion de faire naître un échange fourni et plutôt positif sur la base de retour d’expérience dans la mise en œuvre de BDD au sein des différentes entreprises présentes.
Divers workshops ont pris le relais l’après midi autour des propositions de sujet apportées par les participants. Chacun à pu avoir l’occasion de réfléchir sur des questions telles que : Un product owner doit il être technique ? Quels sont les tests dont la nature est plutôt proche de BDD ou de TDD ? mais également de participer à des présentations de framework comme Cucumber, RobotFramework et SpecFlow ou encore à des jeux de mise en situation de rédaction de tests.
La gestion (indexation, recherche, génération de document) de l’ensemble des tests constituant ainsi les spécifications fonctionnelles du produit semble souffrir pour le moment du manque d’outils adaptés.

A noter également la présence de Laurent Bossavit venu prendre part aux débats et nous informer de l’éventuelle mise en place de master classes BDD au travers de l’institut agile.

Le BDD semble pour le moment cantonné à un groupe d’early adopters et les organisateurs de cette journée se sont pris à rêver de la naissance d’une communauté BDD suite à cette événement. Maintenant que la dynamique est lancée, d’autres sessions devraient venir confirmer cet engouement dans les prochains mois, avec qui sait, peut être un prochain coding dojo BDD attirant non seulement des développeurs mais autant de product owners ?

Affaire à suivre…

Coding dojo Flex Mobile : Presentation Model

Le deuxième coding dojo sur Flex Mobile a eu lieu hier soir dans les locaux d’Objet Direct Grenoble.

Contexte fonctionnel :

  • Flickr via son API avec des scénarios utilisateurs de recherche par mots clés et d’affichage de résultats.

Objectifs :

  • Utiliser le SDK Flex 4.6 sorti récemment en release candidate
  • Définir une architecture logicielle telle qu’on pourrait en avoir besoin sur des applications plus conséquentes. En l’occurrence, nous sommes partis sur une architecture reposant sur le presentation model, de l’injection de dépendances avec le framework Swiz
  • Refactorer le code du dojo précédent en suivant l’architecture précédemment définie (nous nous étions arrêter à la green phase)
  • Profiler l’application dans cette architecture

Les conditions du dojo :

  • 4 développeurs
  • un écrivain qui tourne toutes les 10 minutes
  • durée : 4 heures, incluant une pause repas

Rétrospective :

  • Les plus de la soirée :
    • Des objectifs remplis 🙂
    • Découverte de nouveau framework pour certain
    • Partage sur les bonnes pratiques (injection de dépendances vs évènement)
    • Plus efficace qu’au premier dojo : objectifs clairement établis avant la soirée, rythme imposé par le roulement de l’écrivain
    • Une bonne machine de développement (merci la DSI)
  • Les points à améliorer :
    • Une rotation de 10 minutes c’est un peu court pour l’écrivain, particulièrement quand il y a des échanges / débats
    • Pour l’instant, l’application tourne seulement sur un émulateur.

Les prochains évènements :

  • un prochain dojo dans 3 semaines
  • une présentation technique de ce qui a été réalisé lors de ces dojos
  • la mise à disposition des sources dans Codendi

Coding Dojo sur Entity Framework

Voici un rapide retour sur le coding dojo organisé le 16 juin 2011 à Objet Direct sur le thème « Entity framework code first ».

L’approche code first présentée ici a bien évolué avec la version 4.1, et notamment la partie convention over configuration qui permet de gagner en productivité et en clarté.

Pour changer du format classique des formations en soirée, nous sommes partis d’une base de coding dojo randori kata. Le programme était le suivant :

  • présentation générale d’entity framework
  • présentation du mode code first
  • mise en œuvre du coding dojo avec les règles suivantes
    • 1 machine, 1 projecteur
    • un nombre de participants inférieur à 7 personnes
    • un challenge
    • des périodes de 5 minutes, dans lesquelles un pilote et un copilote avancent sur le challenge
    • à la fin de la période, le copilote devient pilote et un autre participant devient le copilote
  • TDD

Difficultés rencontrées et constat :

  • 4, 5 personnes c’est vraiment bien
  • la période de 5 minutes n’est pas suffisante. 7 minutes c’est mieux

Les plus par rapport à un format plus classique :

  • dynamique et vivant
  • hétérogénéité des participants plus facile à gérer
  • moins de préparation
  • plus ouvert, très enrichissant : les participants peuvent introduire de nouvelles notions
  • dense, informations très condensées, rythme soutenu
  • favorise les échanges
  • objectifs plus facilement atteignables