Archive

Author Archive

Exemple “Behavior Driven Developpement” (BDD) avec GreenPepper

February 2nd, 2010 emmanuel etasse posts profile No comments

En découvrant les nouvelles fonctionnalités de GreenPepper 2.6 j’ai eu envie de les partager au plus vite ! GreenPepper autorise maintenant une syntaxe très flexible pour exprimer des scénarios (ou cas d’utilisation) dans un formalisme qui peut être défini en collaboration entre les experts métiers et développeurs. Le mot–clef associé à cette syntaxe est « scenario ». Je vais vous montrer dans ce billet comment utiliser GreenPepper pour exprimer des exigences sous la forme « Given, When, Then », formalisme recommandé par le courant « Behaviour Driven Developpement ».

Un cas concret à spécifier

Prenons un cas concret d’exigences fonctionnelles. Spécifions le comportement d’un agent virtuel d’assistance, dont le rôle est  de répondre à des demandes d’aide en trouvant des interlocuteurs pouvant satisfaire les demandes d’aide.

Les principales « user stories » seraient les suivantes :

  • En tant qu’utilisateur ayant besoin d’aide, afin de trouver une personne qui pourrait m’aider, j’interpelle l’agent virtuel afin de lui décrire mon problème.
  • En tant qu’utilisateur ayant besoin d’aide, afin de trouver une personne qui pourrait m’aider, je souhaite contacter une personne disponible et disposée à m’aider.
  • En tant qu’utilisateur pouvant apporter mon aide, je souhaite être contacté par l’agent virtuel afin de proposer mon aide.

Reformulons maintenant sous la forme d’exemples certains cas d’utilisation :

Etant donné que Marc n’a jamais contacté l’agent virtuel
Quand Marc dit à l’agent virtuel « Hello »,
Alors l’agent virtuel lui répond « Que puis-je faire pour t’aider ? »
Quand Marc dit à l’agent virtuel « Je n’arrive pas à installer Credanse+ sur MacOS »
Alors l’agent virtuel lui répond « J’ai bien pris note de ta demande d’aide et te contacte dès que possible »
Etant donné que Marc a déjà formulé la demande d’aide « Je n’arrive pas à installer Credanse+ sur MacOS »
Etant donné que Steve est disponible
Etant donné que Marc n’est pas disponible
Quand l’agent virtuel contacte Steve pour lui dire « Marc a besoin d’aide, il m’a dit : Je n’arrive pas à installer Credanse+ sur MacOS . Acceptes-tu de l’aider ?»
Quand Steve dit à l’agent virtuel « Oui »
Alors l’agent virtuel lui répond « Merci, je vais en faire part à Marc et il te contactera dès que possible »

Spécifier dans GreenPepper

Voyons comment écrire le premier scenario avec GreenPepper :

Dans notre espace collaboratif d’édition de spécifications (Confluence ou XWiki), nous saisissons le tableau suivant :

Mettons un peu de couleur pour faire mettre en relief ce qui relève de la syntaxe et ce qui est en rapport avec les données du scénario.

Coder la classe de test

Maintenant, nous devons écrire la classe de test (ou fixture). Une première implémentation naïve de cette classe pour faire passer le test est :

public class AgentVirtuel

{

private string lastwords = “”;

private string lastuser = “”;

public AgentVirtuel()

{

}

[Given("Quand (\\w+) dit à l'agent virtuel ([\\w|\\s|\\'|\\-|\\?]*)”)]

public void WhenUserTellsTheAgent(string userName, string words)

{

lastwords = words;

lastuser = userName;

}

[Then("Alors l'agent virtuel répond ([\\w|\\s|\\'|\\-|\\?]*)”)]

public void ThenTheAgentAnswers(Expectation answer)

{

if (lastwords==“Hello”)

{

answer.Actual = “Que puis-je faire pour t’aider?”;

}

else

{

answer.Actual = “J’ai bien pris note de ta demande d’aide et te contacte dès que possible”;

}

}

}

Dans cet exemple C# (il est possible d’écrire la même fixture en Java avec GreenPepper), nous voyons des attributs en charge de gérer la correspondance entre chaque « phrase » du scénario et une méthode de la classe de test.

Le mot-clef « Given » permet de définir ou d’initialiser un comportement qui ne sera pas testé. Par contre, le mot-clef « Then » permet de déclarer des attentes et de les tester. Dans cet exemple, nous testons la réponse de l’agent virtuel.

Exécuter la spécification

Exécutons notre spécification avec GreenPepper et observons le résultat :

Après exécution, une confirmation visuelle affiche automatiquement en vert les parties de texte qui ont été vérifiées positivement par GreenPepper. En cas de confirmation négative, la couleur rouge sera utilisée.

En conclusion…

Nous voyons à travers cet exemple, que l’utilisation d’expressions régulières associées à des méthodes de la classe de test, permet une grande souplesse ! Aux équipes de jouer et de trouver une syntaxe qui facilitera une compréhension partagée entre toutes les parties prenantes du projet ! Cette compréhension partagée sera de plus testable en continue!

Agile Tour Toulouse – Le TDD avec un ballon?

November 3rd, 2009 emmanuel etasse posts profile No comments

Après une nuit difficile (fièvre), je me dope au paracétamol au petit-déjeuner, et me voici sur place à Blagnac pour l’Agile Tour Toulouse seconde édition. 200 personnes présentes, un timing parfaitement respecté, des sessions de qualité, et de très bons petits fours ;-)

En première session, je suis allé écouter Jean-marie Damas au sujet « des promesses de l’agilité » : exposé très général sur les enjeux et les opportunité à « être agile ». Ensuite, ce fut l’occasion pour moi de parler des « core protocols » devant une salle de classe plutôt bondée. Difficile de savoir comment un tel sujet est perçu par un public aussi varié ;-) Quelques personnes enthousiastes sont venus à ma rencontre après la session, et ça m’a donné la pêche.

1 gramme de paracétamol plus tard, je vais assister au retour d’expérience « Scrum sur un projet critique » présenté par Julien Patou. Le projet concerne le milieu des assurances dans le bancaire. J’en ai retenu que le projet fut un succès.

Après la pause déjeuner, c’est l’heure du XP-Game animé par Thierry Cros, David Brocard et votre dévoué. Mais la concurrence est telle durant ce créneau horaire (Session de Claude Aubry, atelier TDD…) que bien peu de personnes viennent à notre atelier. Tant pis, l’atelier démarre avec 1 table bien motivée et encadrée par 2 coachs, quel luxe ;-)

Après une introduction de Thierry pour expliquer quelques fondamentaux d’eXtreme Programming, l’atelier démarre avec son lot de timeboxing, de stress, de rires et de gonflage de ballons. C’est dans la bonne humeur que l’on fait un débriefing de la session. A ce moment là, Thierry nous explique le TDD (développement dirigé par les test) grâce à un ballon, édifiant !!!! Mais comment ?

Imaginez que le ballon corresponde à du code : disons que la fonctionnalité à implémenter requiert un ballon de 40 cm de circonférence. Si vous gonglez un ballon directement, il est probable que vous ne résussirez pas à produire un ballon d’exactement 40 cm :
- Soit il sera trop petit : du coup, la fonctionnalité ne sera pas « terminée »
- Soit il sera trop grand : le volume supplémentaire correspond alors à du code mort : vous avez dépensez trop de souffle ! (trop d’argent dans vrai un projet)

Alors, avant de gonfler le ballon, fabriquez un garabit : un anneau en papier de 40 cm de long : placez le ballon au milieu du gabarit et soufflez : dès que le ballon sera en contact, arrêtez ! Voilà, grâce à votre gabarit (= le test) vous produisez le « juste » ballon (le « bon » code dans un vrai projet).

La dernière session fut une présentation de GreenHopper, l’outil qui permet de rendre JIRA plus agile, assurée par Eudes Nouvellon. L’outil très puissant, flexible et facilement configurable selon les besoins des projets, a visiblement intéressé les participants.

Je tiens à remercier chaleureusement Thierry, Jean-Marie et David pour leur invitation à cette conférence. La qualité de leur accueil m’a réellement touché. L’Agile Tour Toulouse fut pour moi une belle occasion de faire plus ample connaissance avec des personnes de la communauté agile de Toulouse. J’ai pu aussi revoir des amis de très longues dates qui m’ont gentillement accueilli durant mon séjour. Et surtout, j’ai découvert comment faire du TDD avec des ballons ;-)

  • Share/Bookmark
Categories: Agile Tour 2009, Uncategorized Tags:

Agile Tour Genève 2009 – Partie 2

October 21st, 2009 emmanuel etasse posts profile No comments

Ma troisième session de l’Agile Tour Genève était « Pour passer la crise, remboursez votre dette technique ! » animée par Rémy Sanlaville et Freddy Mallet. J’ai adoré le sens de la mise en scène : de vrais acteurs. Au programme la crise, la grippe A et la dette technique : tout y était pour qu’on s’y sente bien ;-)

Freddy et Rémy nous expliquent le concept de « dette technique » et nous montre qu’il existe des moyens pour la mesurer (l’outil Sonar). Ce concept souvent mal connu, explique à lui tout seul bien des déboires que rencontre une équipe qui veut produire du logiciel à des fréquences de livraisons soutenues. Bien que la majeure partie de la session fût dédiée à l’ingénierie logicielle et les outils, Rémy et Freddy relèvent en conclusion le plus important : les individus et les interactions.

Ma quatrième session de l’Agile Tour Genève était « Introduction du Lean dans le développement de la webTV d’Orange » animée par Antoine Contal et Régis Medina. J’avoue avoir captivé par ce retour d’expérience, vrai, sans fioritures, en toute humilité. Les idées fortes que je retiens du témoignage d’Antoine et de Régis :
- pour s’améliorer, une équipe a besoin de définir des standards et des règles, sinon il n’y a pas de capitalisation des savoirs et des apprentissages : on réinvente en permanence et on repart de zéro à chaque fois. Un exemple d’amélioration de processus d’une équipe donnée durant la session : si on a du mal à trouver une classe ou un test dans une jungle de fichiers, c’est qu’il existe l’opportunité à l’équipe de définir un standard d’organisation du code source.
- pour accompagner des personnes et les aider à s’améliorer, il ne suffit pas de mettre les problèmes sur les post-its et de jouer avec ; il faut s’asseoir avec les personnes, passer du temps avec eux, pour comprendre leur quotidien, leurs difficultés et surtout, coder avec eux ;-) Antoine avoue que c’est un exercice difficile et fatiguant mais le jeu en vaut la chandelle. Merci Régis d’avoir montrer du code !
- Quand on rencontre une situation frustrante, il est bon de se poser et de s’accorder 10 minutes pour simplement réfléchir à la situation. L’identification des causes profondes d’un problème ne se fait pas toujours naturellement. Il existe pourtant des outils simples qui permettent d’identifier les causes et un plan d’action, comme le QRCQ (Quick Quality Response Check).

En conclusion, Antoine et Régis nous disent que développer une culture de l’amélioration continue (appeler ça kaisen, lean, PDCA, agile…) c’est LONG : ça se compte en nombre d’années.



Ma dernière session de l’Agile Tour Genève était « Alchimiste-Agile.com : l’Art de la Rétrospective » animée par Jacques Couvreur et François Bachmann.

On attache sa ceinture ! C’est parti pour faire la rétrospective de la dernière livraison de cadeaux du Père Noël : lettres au Père Noël non traduites, grève surprise des elfes, nouvelle législation concernant la circulation des Rennes, bref tout ne s’est pas déroulé à la perfection et tout le monde est nerveux ou fatigués. La rétrospective est le lieu de prédilection pour tirer partie de l’expérience afin de s’améliorer la prochaine fois.
François et Jacques propose une façon très ludique d’appréhender ce concept clef dans les approches agiles : un jeu de rôle. Par la suite, il est possible d’utiliser ce jeu pour animer de « vraies » équipes. Mais pourquoi avoir appelé ce jeu « L’Alchimiste » ? Eh bien c’est que la rétrospective permet de transformer le « plomb » de nos expériences en véritables richesses – « or » – pour notre futur.

Ayant accepté d’animer une des rétrospective durant le jeu, j’ai eu la chance de repartir avec le jeu de l’Alchimiste Agile! Je suis très impatient de le mettre en pratique : pour moi, c’est un excellent outil pour enseigner les différentes techniques d’animation de rétrospective ! Merci à leurs inventeurs !

Ainsi s’achève la journée à l’Agile Tour Genève. Vivement l’année prochaine !

  • Share/Bookmark
Categories: Agile Tour 2009 Tags:

Agile Tour Genève 2009 – Partie 1

October 16th, 2009 emmanuel etasse posts profile 1 comment

En route vers la Suisse. Après 1h30 de bouchons pour faire 12 km, j’arrive enfin au centre d’affaire où se déroule Agile Tour Genève pour la seconde année consécutive. Ouf, je ne suis pas en retard pour les premières sessions. L’évènement est orchestré de main de maître par les organisateurs Jacques Couvreur, Maxime Nowak et David Gimelle. Un vrai succès avec une audience de 100 personnes, le maximum attendu pour cette conférence.

Première session, je choisis « La parabole du trafic urbain (ou “Comment expliquer l’Agilité à grand-maman?”) » de François Bachmann. J’ai beaucoup aimé le fond et la forme : les propos de François invitent les participants à comparer ce qu’il se passe dans leurs projets de développement logiciel avec des situations du trafic urbain. Nous pouvons comparer le temps pour réaliser un produit (ou un service) à un flux de trafic urbain. Il existe plusieurs critères directeurs concernant le trafic : confort, temps de parcours ou sécurité, selon les modes d’utilisation. On retrouve des notions similaires dans nos métiers.

Dans nos projets, sommes-nous sur des autoroutes à régime de croisière ? Somme-nous dans des ambulances, enfreignant les règles en vigueur au regard des circonstances ? Somme-nous tous arrêtés en plain milieu des bouchons ? Il est troublant de constater que pour gérer la complexité du trafic urbain, la solution mise en place repose sur la discipline et le respect des règles de chacun : il n’existe pas d’organe central responsable de coordonner ou de synchroniser les déplacements de chacun.
Une étude aux USA montre les impacts du remplacement des carrefours à feux tricolores par des ronds-points giratoire :

  • une augmentation du flux (+50%) ;
  • une baisse des accidents graves (-90%).

Dans cet exemple, le feu tricolore illustre un outil de synchronisation directif ; les conducteurs n’ont pas à décider, ils doivent se conformer à la règle (qui est très simple toutefois). Le rond-point giratoire quand à lui donne de l’autonomie au conducteur : c’est à lui d’apprécier les risques et de ralentir si nécessaire. Dans ce cas, les règles sont différentes et il est nécessaire d’anticiper ce changement de comportement souhaité (information et formation).

Ensuite, ce fut ma session « Introduction aux Core Protocols » que j’ai animé avec un peu de trac au début, mais beaucoup de plaisir. Au programme d’abord une présentation rapide des Core Protocols. Ensuite un exercice durant lequel je demande aux participants de me donner du feedback sur une prestation (ici un morceau de musique à 2 guitares enregistré avec Bernard Notarianni). Ensuite, après une explication du protocole « Perfection Game », les participants expérimentent ce dernier. A l’issue de la session, j’ai pu recueillir de bonnes remarques pour améliorer le déroulement de session ;-) Rendez-vous donc à Agile Tour
Paris et Toulouse pour une nouvelle version de cette session. Retrouvez les slides de cette présentation sur www.sedevelopperagilement.com

La suite de ma journée à Genève dans un prochain billet ;-)

  • Share/Bookmark

Des collaborateurs impliqués dans la communauté agile ?

September 2nd, 2009 emmanuel etasse posts profile No comments

Dans Pyxis Technologies, nous accordons beaucoup d’espace et d’importance aux communautés agiles de praticiens. Je suis fier de l’engagement de mon entreprise dans les communautés car ces dernières mènent une croisade souvent difficile et elles ont besoin d’aide. J’utilise le terme croisade car c’est souvent au niveau des croyances et de la culture que les résistances sont les plus fortes. L’agile n’est pas une recette tout faite à adopter, mais plutôt une posture qu’il convient de comprendre.

En mai dernier, Pyxis Technologies a soutenu la conférence XP-Days de bien des façons. J’ai été frappé par l’investissement de mes collaborateurs et de ma société en cette occasion. A l’heure où Agile 2009 Chicago s’achève, je pourrais tenir le même discours, mais personnellement j’étais présent à Paris et pas à Chicago. Ces espaces de liberté accordés aux collaborateurs permettent à ces derniers de confronter leurs idées, leurs expériences, bref de s’améliorer eux-mêmes et aussi les autres. N’est-ce pas là un but louable?

Un soutien financier
Pyxis Technologies a été sponsor de l’évènement XP-Days. Pyxis Technologies apporte régulièrement son soutien aux évènements qui promeuvent l’agilité. Pyxis Technologies soutient aussi l’évènement en octobre prochain Agile Tour (J’y reviendrai dans un prochain billet). Elle soutient aussi le CITCON qui se déroule les 18 et 19 septembre à Paris. Pyxis Technologies soutient l’association Club Agile Rhône Alpes. Les sommes investies sont à la mesure de notre volonté d’aider nos communautés de praticiens.

Des collaborateurs engagés
Raphaël Pierquin, collaborateur Pyxis, était membre du comité d’organisation des XP-Days 2009. Il est aussi membre du bureau de l’association Agile France, plus connue sous son ancien nom de « eXtreme Programming France », plus vieille association de praticiens en France, crée en 2000. Raphaël est aussi le cofondateur de l’association Agile Open France. Savez-vous que le Club Agile Rhône Alpes comporte 3 collaborateurs Pyxis en son bureau? Savez-vous aussi que Agile Nantes est un groupe crée sur l’initiative de Tremeur Balbous, un collaborateur Pyxis? Notons que ce sont des pyxissiens qui ont créé l’association Agile Montréal. Mon but n’est pas de faire de la propagande, je saisi la plume pour rendre hommage à l’ensemble des personnes (pyxissiennes ou non) qui ont choisit de s’investir pour servir leur passion et leur générosité pour la communauté.

Des collaborateurs orateurs
Durant les XP-Days, au total, 7 collaborateurs Pyxis (dont deux venus exclusivement du Québec) ont animé ou co-animé 7 sessions suivantes sur les 57 sessions sur programme de l’évènement :

  • Introduction à Scrum
  • Xtrem Miles
  • Just Perfect-It
  • A quand la première mise en production?
  • Pratiques d’ingénierie incrémentale
  • Dans la peau du challenger : remettre en question l’ordre établi
  • Démonstration de l’outil de spécifications exécutables GreenPepper

La plupart de ses sessions ont été co-animées soit avec un client, un ami ou un pote de la communauté. Nous croyons beaucoup à l’échange entre les personnes et nous essayons toujours d’appliquer les valeurs que nous défendons, comme le travail en duo. L’exemplarité est une valeur chère à mes yeux : peut-on accorder du crédit à une personne qui vous propose une recette, mais qui se réserve le droit de ne pas l’appliquer à lui-même ? Au sein de Pyxis, j’entends souvent parler de l’expression « Eat you own dog food » : j’y vois que notre volonté est de montrer nos propres expériences, de faire nos preuves avant d’aller les proposer à nos collaborateurs externes à Pyxis Technologies.

Alors si vous rechercher un binôme pour animer une conférence prochaine, un atelier, appelez-nous!!!
Il y aura toujours un pyxissien partant ;-)

Pour en savoir plus sur XP-Days 2009, une petite sélection non-exhaustive de billets :

  • Share/Bookmark
Categories: Agile Tags:

Témoignage d’un élève à la formation Certification ScrumMaster, Grenoble.

July 3rd, 2009 emmanuel etasse posts profile No comments

Laurence Hanot, ScrumMaster chez Thalès SI à Grenoble, a suivi la dernière formation Scrum Master à Grenoble. Voici son témoignage:

Read more…

  • Share/Bookmark
Categories: Témoignages Tags:

Connaissez-vous le langage Ada?

June 27th, 2009 emmanuel etasse posts profile No comments

L’Ada n’est pas un “vieux langage” ou un langage qu’on apprend qu’à l’école : il s’agit bel et bien d’un langage utilisé dans différentes industries dans des environnements critiques (avionique, ferroviaire…). Dans ces environnements, la défaillances d’un logiciel peut entraîner des dommages matériels, voire des pertes humaines. Je me propose de vous faire un petit retour d’impressions après 4 jours de formation pratique.

Read more…

  • Share/Bookmark
Categories: Agile Tags:

L’antenne Pyxis de Grenoble se renforce

June 11th, 2009 emmanuel etasse posts profile 2 comments

La presse locale informe que l’antenne Pyxis de Grenoble se renforce. La lettre de l’Agence d’Etudes et de Promotion de l’Isère (AEPI) relaie cette information dans son édition de juin.

Read more…

  • Share/Bookmark
Categories: Nouvelles et Événements Tags:

Venez découvrir les méthodes de gestion de projet agiles à Grenoble!

May 15th, 2009 emmanuel etasse posts profile No comments

Pyxis et AgileToYou présentent les méthodes de gestion de projet agiles le mardi 16 juin de 17h00 à 19h30 dans le cadre de la communauté Ecobiz – Performance Industrielle à la Chambre de Commerce et de l’Industrie de Grenoble. RDV à la CCI de Grenoble, 1, place Andre Malraux, 38000 Grenoble.

Read more…

  • Share/Bookmark
Categories: Nouvelles et Événements Tags:

OpenDO : quand le logiciel critique rencontre Agilité et OpenSource

April 27th, 2009 emmanuel etasse posts profile No comments

OpenDo est une initiative récente pour constituer un framework collaboratif et OpenSource dans le but de développer du logiciel critique certifié. L’initiative OpenDo bouleverse les approches traditionnelles en place.

Read more…

  • Share/Bookmark
Categories: Nouvelles et Événements Tags: