<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7457429695909077433</id><updated>2012-01-21T01:08:01.997+01:00</updated><category term='FR'/><category term='Lean'/><category term='TDR'/><category term='Tests'/><category term='coaching'/><category term='XP'/><category term='FitNesse'/><category term='software craftsmanship'/><category term='agilité'/><category term='Conference'/><category term='Selenium'/><category term='Tools'/><category term='Continuous integration'/><category term='EN'/><category term='Open-Source'/><title type='text'>Test-driven information</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://testdriveninformation.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-3937905865805709182</id><published>2011-03-23T14:50:00.001+01:00</published><updated>2011-03-23T14:52:29.887+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agilité'/><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Lean software: ne vous trompez pas de cible</title><content type='html'>&lt;div style="text-align: justify;"&gt;Au détour de mes lectures sur divers blogs et des échanges avec mes pairs au sujet du &lt;a href="http://fr.wikipedia.org/wiki/Lean_software_development"&gt;Lean Software Development&lt;/a&gt;, je trouve qu'il se&amp;nbsp;répand&amp;nbsp;une idée reçue assez dangereuse: faire du Lean signifie éliminer les gaspillages. Dans les faits cela se traduit souvent par une chasse aveugle et impitoyable au moindre gaspillage. Les résultats vont parfois du désastre à souvent une amélioration molle et peu durable. Pourquoi ?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A tous ceux qui pensent que Lean signifie supprimer les gaspillages, je souhaite suggérer un retour aux&amp;nbsp;fondamentaux, c'est à dire au monde de l'automobile d'où nous vient le Lean. Certes, dans un&lt;a href="http://testdriveninformation.blogspot.com/2011/02/le-gout-des-autres-domaines-dingenierie.html"&gt; précédent post&lt;/a&gt; je me gaussais des parallèles périlleux entre domaines d'ingénierie, mais je ne suis plus à une contradiction près. Et puis comme le souligne le commentaire de PIF, il faut savoir cross-fertiliser, si je peux me permettre le néologisme.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mura, muri, muda&lt;/b&gt;&lt;br /&gt;Fondamentalement donc, la "pensée lean" consiste à éliminer 3 facteurs d'inéficience: le mura (surcharge),&amp;nbsp;le muri (variabilité),&amp;nbsp;le muda (gaspillage volontaire).&amp;nbsp;Dans une &lt;a href="http://www.lean.org/common/display/?JimsEmailId=63"&gt;lettre datée du 6 Juillet 2006&lt;/a&gt;&amp;nbsp;(&lt;a href="http://lean.enst.fr/wiki/bin/view/Lean/Lettre6Juillet2006"&gt;traduite en français&lt;/a&gt;), Jim Womack&amp;nbsp;nous éclaire sur la façon d'aborder ces facteurs. NB: Jim Womack fait partie&amp;nbsp;des 3 rédacteurs du livre fondateur du Lean&amp;nbsp;&lt;a href="http://www.amazon.com/Machine-That-Changed-World-5-Million-Dollar/dp/0892563508/ref=sr_1_2?ie=UTF8&amp;amp;qid=1300795642&amp;amp;sr=8-2"&gt;The Machine That Changed the World&lt;/a&gt;. Jim nous suggère d'adresser&amp;nbsp;d'abord la variabilité et la surcharge, et ensuite le gaspillage volontaire.&amp;nbsp;Il&amp;nbsp;confesse lui-même avoir initialement abordé ces facteurs à l'envers. Son constat est sans appel, si vous commencez par supprimer les gaspillages, vous allez générer de la variabilité et de la surcharge de manière incontrôlée et par conséquent ré-introduire d'autres gaspillages ailleurs dans votre système par effet de compensation. C'est un cercle vicieux.&amp;nbsp;Le message est donc clair: maîtrisez la variabilité et la surcharge dans votre processus, ensuite diminuez ces facteurs à mesure que vous éliminez les gaspillage. C'est la meilleure façon d'implémenter des améliorations durables.&lt;br /&gt;&lt;br /&gt;Qu'est-ce que la variabilité dans l'ingénierie logiciel ? Les livraisons sans cesse décalées, des petites livraisons suivies de très grosses releases suivies de petits patchs, etc.&lt;br /&gt;&lt;br /&gt;Qu'est-ce que la surcharge ? Des équipes qui travaillent 12h par jour, les week-end d'astreintes, des serveurs de dev en permanence au taquet, etc.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;b&gt;Agilité, agilité, agilité&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Je ne vois qu'un moyen simple d'éliminer ces 2 facteurs variabilité et surcharge: passer à l'agilité. Que vous soyez Scrum, XP, Kanban, ou autre, vous livrerez des petits lots de tailles similaires avec des échéances fixes, cela adresse pour partie le problème de variabilité. La surcharge est adressée par les valeurs de ces différentes méthodes, il faut évidemment une certaine discipline pour éviter le surengagement, mais la diminution de la variabilité permettra de réduire l'effet de "bourre" avant des grosses livraisons.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Un conseil en forme de conclusion: ne faites pas de Lean Software Development sans passer par l'agilité, les résultats risquent d'aller à l'encontre de vos objectifs. Et vous, quel est votre expérience du Lean Software ?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-3937905865805709182?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=3937905865805709182&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/3937905865805709182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/3937905865805709182'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2011/03/lean-software-ne-vous-trompez-pas-de.html' title='Lean software: ne vous trompez pas de cible'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-5467152073776422029</id><published>2011-02-15T09:13:00.000+01:00</published><updated>2011-02-15T09:13:00.156+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software craftsmanship'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Le goût des autres ... domaines d'ingénierie !</title><content type='html'>&lt;div style="text-align: justify;"&gt;C'est le buzz du moment: le software craftsmanship est sous toutes les plumes des bloggers agiles qui se respectent, notamment &lt;a href="http://www.touilleur-express.fr/2011/01/20/craftsmanship/"&gt;là&lt;/a&gt;&amp;nbsp;ou &lt;a href="http://blog.xebia.fr/2011/01/31/software-craftsmanship-en-pratique/"&gt;là&lt;/a&gt;. Et je ne vais pas me priver de relayer le buzz car d'une part je me respecte (ouf), et d'autre part le sujet semble être hautement polémique et donc j'aime ça. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Il est toujours amusant de voir les réactions vives et parfois étayées de semi-insultes que provoquent ces discussions. L'arrivée de l'agilité avait donné lieu à des diatribes enflammées dans la blogosphère. Je trouvais à l'époque qu'un profil particulier se mettait régulièrement en lumière dans ces échanges: l'ingénieur en bâtiment refoulé. Celui qui voulait utiliser la même méthode pour construire un immeuble que pour construire un logiciel. Je n'ai pas encore compris pourquoi.&amp;nbsp;Un exemple&amp;nbsp;&lt;a href="http://www.qualitystreet.fr/2007/11/20/methodes-agiles-un-belle-definition/comment-page-1/#comment-280"&gt;ici dans le commentaire n°9&lt;/a&gt;.&amp;nbsp;NB: il y avait aussi la catégorie ingénieur civil refoulé qui voulait construire des ponts comme des logiciels.&amp;nbsp;Les plus audacieux d'entre eux n'hésitaient pas à clamer vouloir construire une centrale atomique de la même manière qu'un logiciel ! Si si, je vous jure, c'était dans un commentaire sur le numéro 1 (le seul numéro d'ailleurs) du Valtech Mag en Décembre 2006, dommage qu'il ne soit plus en ligne, ça devrait passer à la postérité ! Bref, l'ingénieur en bâtiment refoulé avait raté sa vocation et était arrivé dans l'ingénierie logiciel avec l'ambition ferme d'y mettre un peu d'ordre et de relayer ses développeurs au rang d'ouvrier, ses concepteurs au rang d'architectes, et ses leaders techniques au rang de chefs de chantier. Malheureusement l'agilité compromet ses plans et on ne l'entend plus tellement de nos jours. NB: évidemment il va être le premier à me laisser un commentaire.&lt;br /&gt;&lt;br /&gt;Mais voilà, le software craftsmanship a réveillé une autre catégorie d'ingénieur : les industriels malheureux. Un exemple &lt;a href="http://mdblog.fr/blog/2011/02/10/software-craftsmanship-ou-le-marketing-de-l-echec/"&gt;ici&lt;/a&gt;&amp;nbsp;(Gregory, sans rancune). Porté par la vulgarisation des termes "industrialisation", "usine logiciel", et "lean software development" qu'on utilise à tours de bras de nos jours dans l'informatique, l'industriel veut croire qu'un logiciel est fabricable en grande partie mécaniquement, depuis les plans de son concepteur ou selon un processus immuable, et avec une intervention réduite à la portion congrue "d'opérateurs" (autrement dit peu qualifiés). Il semble oublier que le développement informatique n'a pour but que de produire une pièce unique qu'on fait évoluer au cours du temps, et pas des milliers, voire des millions de pièces identiques, et que donc les procédés, méthodes, outils, ou pratiques utilisés pour produire la pièce N, ne sont plus tout à fait applicables pour produire la pièce suivante. Le modèle de l'industriel est la fabrication d'automobiles, un monde idéal qui doit nous montrer l'exemple. On y trouve pourtant des &lt;a href="http://tempsreel.nouvelobs.com/actualite/economie/20090601.OBS8739/general-motors-depose-le-bilan.html"&gt;faillites vertigineuses&lt;/a&gt;,&amp;nbsp;des &lt;a href="http://fr.wikipedia.org/wiki/Renault_Avantime"&gt;ratages monumentaux&lt;/a&gt;, et des loupés en tout genre (&lt;a href="http://www.radiobfm.com/edito/home/64504/nouveau-rate-pour-toyota/"&gt;même pour les meilleurs&lt;/a&gt;), dont fait rarement état l'industriel malheureux lorsqu'on en vient à comparer l'automobile et le logiciel.&lt;br /&gt;&lt;br /&gt;Personnellement j'ai hâte de voir arriver les prochaines vagues d'ingénieurs malheureux qui vont nous expliquer comment développer du logiciel en se calquant sur les autres domaines d'ingénierie. Ainsi on pourra peut-être entendre:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;l'ingénieur agricole&lt;/b&gt; qui va nous expliquer comment labourer et fertiliser des systèmes d'exploitation avant d'y planter des graines de code qui vont pousser lentement chez les hébergeurs pendant l'hiver et donner leurs fruits d'expérience utilisateur au printemps. L'amélioration d'un SI passera par des boutures systématiques des vieux systèmes pour donner naissance à de jeunes applications que l'on pourra éventuellement greffer entre elles afin d'obtenir des systèmes plus productifs et de meilleure qualité, le tout&amp;nbsp;abondamment&amp;nbsp;arrosé d'engrais générateur de code,&lt;/li&gt;&lt;li&gt;&lt;b&gt;l'ingénieur en biologie &lt;/b&gt;qui va nous expliquer comment procéder à des tests cliniques sur des bouts de code souche pour évaluer les effets d'une crème de refactoring avant de l'appliquer sur des&amp;nbsp;applications vivantes en production,&lt;/li&gt;&lt;li&gt;&lt;b&gt;l'ingénieur chimiste&lt;/b&gt; qui va nous expliquer que comme rien ne se perd et tout se transforme, si vous voulez dissoudre votre ancien SI dans une solution acide de nouvelles technologies, les émanations de gaz de changement vont fortement incommoder vos utilisateurs. Attention, si ce gars là devient copain avec l'ingénieur agricole, les effets risquent d'être désastreux sur votre SI et contaminer progressivement votre infrastructure avec du code "générétiquement" modifié,&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Bref, sortons-nous de ces comparaisons&amp;nbsp;fatigantes&amp;nbsp;avec les autres domaines d'ingénierie et continuons de réfléchir à comment faire les choses dans notre propre domaine. Les sources d'inspiration sont certes bonnes à prendre mais ont leurs limites qu'il faut savoir accepter. Le mouvement du Software Craftsmanship est une étape importante dans notre réflexion qui a le mérite de replacer les connaissances techniques au coeur du processus de création d'un logiciel. Elément qu'on a tendance à oublier avec la généralisation des méthodes agiles.&lt;br /&gt;&lt;br /&gt;Un dernier point qui me&amp;nbsp;chiffonne&amp;nbsp;dans ces discussions autour de notre profession: pourquoi nous généralisons &amp;nbsp; souvent à partir de l'observation de notre propre nombril ? J'avais traduit il y a bientôt 9 ans un article très intéressant de JoelOnSoftware qui distinguait &lt;a href="http://french.joelonsoftware.com/Articles/FiveWorlds.html"&gt;les différents mondes du développement logiciel&lt;/a&gt;. Il est toujours tellement d'actualité ! Dans toutes nos discussions sur le software craftsmanship nous réduisons systématiquement nos constats à notre propre monde. C'est un peu comme comparer le job du plombier et du menuisier. Ils ont bien sûr des points communs, de là à appliquer les mêmes règles à l'un et à l'autre, le raccourci est hasardeux...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-5467152073776422029?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=5467152073776422029&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/5467152073776422029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/5467152073776422029'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2011/02/le-gout-des-autres-domaines-dingenierie.html' title='Le goût des autres ... domaines d&apos;ingénierie !'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-98051632816639599</id><published>2010-09-08T23:31:00.019+02:00</published><updated>2010-09-10T23:34:12.456+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Stratégie d'automatisation des tests: un filet de pêche ou une fusée ?</title><content type='html'>&lt;div style="text-align: justify;"&gt;Jusqu'à récemment j'avais l'habitude d'utiliser la métaphore du filet de pêche pour illustrer la stratégie d'automatisation de tests que l'on applique le plus couramment sur les projets agiles. Cette stratégie est illustrée par la pyramide de Mike Cohn: une forte base de tests unitaires, un étage plus restreint de "spécifications exécutables", et un petit chapeau de tests "bout-en-bout". La métaphore du filet me vient d'un article que j'ai lu il y a quelques années *, qui parlait plutôt d'un filet de sécurité, et que j'ai tenté de m'approprier et remettre à la sauce pêcheur. Ça donne quelque chose comme ça:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;"Une stratégie d'automatisation de tests est comme un filet de pêche, plus le filet est grand et ses mailles petites, plus la capacité à attraper des poissons est forte. NB: pour les esprits les moins vifs, les poissons représentent les anomalies. Le filet se doit d'être suffisamment solide pour permettre une utilisation pérenne, et suffisamment bien attaché au bateau pour ne pas perdre sa récolte.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;Les tests unitaires représentent les petites mailles de votre filet à attraper des anomalies. Il en faut beaucoup pour couvrir une surface suffisante, et il faut qu'il soit bien unitaire pour que la maille de base soit suffisamment fine, sinon on laisse passer les petits poissons. Ce petit maillage est fait d'un matériel souple qui s'adapte à son environnement: les courants, les bancs de poissons, la résistance de l'eau. Le test unitaire l'est également: les outils et les pratiques (TDD) doivent permettre de le faire évoluer facilement dans son environnement (le code) . Tout comme les petites mailles d'un filet de pêche, un test unitaire peut "casser" sans remettre significativement en question votre capacité à attraper les poissons, il y a beaucoup d'autres mailles dans votre filet. De plus il est facile à réparer pour peu que le pêcheur consciencieux le fasse rapidement.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;Ce filet de petites mailles nous paraîtrait presque suffisant. Mais voilà, va-t-il résister aux gros poissons ? Que se passe-t-il si un thon ou un requin blanc se pointe ? Et si l'on accroche le fond ? On risque de perdre tout simplement un gros morceau de son filet, ou d'en jeter une partie parce que "ça ne sert plus à rien". Il faut donc renforcer ce filet avec une structure plus rigide, fait d'un maillage plus large mais dans un matériel plus solide. Cette structure représente les spécifications exécutables. Les tests y sont d'ordre fonctionnel ou métier, ils sont moins fins au regard du code, mais plus solides car ils portent sur des vérifications plus stables dans le temps (le métier). Le code est lui soumis à un remaniement incessant et les vérifications des tests unitaires sont donc moins stables. Le métier, lui, ne change pas tous les jours, le cycle d'évolution est plus long. Néanmoins, le matériel utilisé reste souple pour ne pas subir négativement les contraintes de son environnement. Il faut également trouver le bon dosage  de ce maillage afin de ne pas alourdir inutilement notre filet mais de le rendre suffisamment solide. De la même façon les tests des spécifications exécutables doivent représenter les exemples clés, qui facilitent la compréhension des exigences.&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;i&gt;&lt;/i&gt;&lt;i&gt;Alors, a-t-on maintenant un filet de pêche suffisant ? Non bien sûr. Mais que lui manque-t-il pour être utilisé ? Des fixations pardi! Des câbles, des cordes, des poulies, bref des attaches qui lui permette d'être relié au bateau et d'être manipulé dans son environnement cible, la mer! Ces attaches sont faites d'un matériel lourd et rigide et paraissent solides à première vue, mais elles sont aussi fragiles que les petites mailles car elles centralisent l'ensemble des contraintes de l'environnement. Ces attaches sont les tests de bout-en-bout automatisés. On teste ici l'application déployée dans son environnement (presque) réel. Ces tests ne sont pas nombreux mais indispensables.  On teste ici ce qui ne peut pas l'être dans les 2 maillages précédents, comme l'interface graphique ou la performance par exemple."&lt;/i&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Finalement je suis revenu à quelque chose de plus simple il y a quelques jours lors d'une soutenance: une métaphore basée sur le principe de la fusée à étage. C'est plus proche de la pyramide et cela s'explique plus rapidement que le filet de pêche. Chaque étage contribue à la mise en orbite du satellite, mais chacun a un rôle bien précis que les autres ne sauraient endosser. Plus on monte dans les étages, plus sa fonction se sophistique et se rapproche de l'objectif final. J'aime également le fait que les étages de la fusée servent directement un objectif métier, la mise en orbite du satellite, alors que le filet de pêche sert plutôt un objectif compensatoire à un système défaillant, la pêche aux anomalies. C'est plus proche de la vision moderne des tests que j'essaye de transmettre.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Et pour vous, l'automatisation des tests est-elle un filet de pêche ou une fusée à étage ?&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;*&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;Brushing Up On Functional Test Effectiveness, Jennitta Andrea, Better Software Magazine Nov/Dec 2005&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-98051632816639599?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=98051632816639599&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/98051632816639599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/98051632816639599'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2010/09/strategie-dautomatisation-des-tests-un.html' title='Stratégie d&apos;automatisation des tests: un filet de pêche ou une fusée ?'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-6268703536375756919</id><published>2010-05-23T10:57:00.013+02:00</published><updated>2010-05-23T11:52:33.151+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='agilité'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Webcast des MS Techdays 2010</title><content type='html'>&lt;div&gt;Les webcast des derniers MS techdays &lt;a href="http://www.microsoft.com/france/vision/mstechdays10/"&gt;sont disponibles&lt;/a&gt; depuis quelques semaines. On y retrouve notamment la table ronde à laquelle j'ai participé. Il y avait du beau linge autour de cette table, qui ressemblait d'ailleurs plus à une brochette d'experts étant donnée la configuration des tables :&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt; Laurent Bossavit, membre du bureau de l'&lt;a href="http://www.agilealliance.org/"&gt;Agile Alliance&lt;/a&gt; et &lt;a href="http://conf.agile-france.org/"&gt;Agile France&lt;/a&gt;, &lt;/li&gt;&lt;li&gt;Véronique Rota, ex-Valtech et auteur d'un &lt;a href="http://www.editions-eyrolles.com/Livre/9782212121650/gestion-de-projet"&gt;livre référence&lt;/a&gt; sur le management agile,&lt;/li&gt;&lt;li&gt;d'autres anciens Valtech comme Xavier Warzee, l'animateur Microsoft de cette session, et Jean-Laurent Fabre de Morhlon, team leader chez Vidal,&lt;/li&gt;&lt;li&gt;des experts de sociétés de conseil, comme Eric Mignot, coach agile chez Pyxis, et Luc Legardeur, fondateur du &lt;a href="http://www.frenchsug.org/display/FRSUG/French+Scrum+User+Group"&gt;French Scrum User Group&lt;/a&gt; et de Xebia,&lt;/li&gt;&lt;li&gt;et donc moi, en tant que coach en transformation agile chez Valtech.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Le webcast de la session s'apparente plus à un podcast car seuls les slides de la session sont visibles, slides qui n'étaient là que pour appuyer les changements de sujets. Il faut donc reconnaître les voix des uns et des autres. Cette session fût enrichissante au niveau des sujets abordés et des questions posées. L'agilité reste un paradigme qui soulève encore beaucoup de scepticisme et de blocages. Malgré tout, on sent bien que la révolution est en marche et que la plupart des organisations participantes se demandaient "comment y aller" et non plus "est-ce qu'il faut y aller".&lt;/div&gt;&lt;br /&gt;=&gt; &lt;a href="http://www.microsoft.com/france/vision/mstechdays10/Webcast.aspx?EID=fb2b03b2-f113-4e3f-aac0-b15e78f6698d"&gt;Voir le webcast&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-6268703536375756919?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=6268703536375756919&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6268703536375756919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6268703536375756919'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2010/05/webcast-des-ms-techdays-2010.html' title='Webcast des MS Techdays 2010'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-4882464154644648443</id><published>2010-02-10T23:31:00.019+01:00</published><updated>2010-05-14T10:08:45.039+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='agilité'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Suis-je un mauvais coach agile ?</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;C'est la question que je me suis posé en lisant un n-ième article de blog américain sur le coaching agile avec, en vrac, 4 citations de bouquins faisant "autorité", 3 références à des modèles comportementaux, 9 utilisations de termes japonais, 2 métaphores sur les arts martiaux, et 1 signature prétentieuse. Je me suis senti quelque peu "nanifié" de ne pas connaître la moitié des références exposées.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Car oui, je clame haut et fort mon ignorance:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;je ne connais pas le modèle de Tuckman&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;j'ai fait du judo quand j'étais jeune et je ne vois aucune similitude avec le développement informatique&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;shu ha ri est un concept vague dont j'essaye de percer le sens lorsque je propose des sujets à des conférences agiles&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Kano est le nom du restaurant en bas de chez moi&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;je n'ai jamais réussi à lire un livre sur l'agilité jusqu'au bout; le seul que j'ai terminé concerne le Lean (The Machine That Changed theWorld) et ne parle pas du tout d'informatique&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Une telle étendue d'ignorance et de mauvaise volonté devrait me conduire droit à l'échec sur mes missions de coaching agile&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Et pourtant ...&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;... mes différentes missions de coaching agiles se passent bien et atteignent leur objectif (jusqu'à preuve du contraire). Je vous propose donc mon top 5 de ce que je mets en oeuvre dans mon coaching d'équipe agile (garantie sans termes japonais):&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;pas trop de changement d'un seul coup&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: ce qui compte c'est l'application des 4 principes agiles, le reste c'est de l'enrobage à distiller au compte-goutte et dont une grande partie relève de l'initiative de l'équipe. Si certaines techniques ne sont pas bien appliquées dès le départ ce n'est pas grave, il faut se concentrer sur les quelques éléments clés qui caractérise une équipe agile. A mon sens ce sont les itérations en time box, les démos avec du logiciel qui fonctionne pour de vrai, et la communication directe. Il y en a bien sûr beaucoup d'autres, mais cela vient progressivement,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;du pilotage opérationnel&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: il faut que l'équipe, et plus largement mon client sache où il va et quels sont les mécanismes de gestion d'un projet agile. La période de coaching ne doit pas générer d'effet tunnel. Par exemple, quitte à me brouiller avec des agilistes chevronnés, je fais en sorte que les itérations atteignent leurs objectifs, et surtout la première itération. L'échec est un luxe que se permettront les équipes rompues à l'agilité. Egalement, il est utile d'organiser des comités de pilotage du projet, celui sur lequel intervient l'équipe coachée, à chaque fin d'itération et avec des participants qui vont au delà du PO (typiquement la hierarchie). C'est là qu'on présentera les indicateurs, les projections de budget à terminaison, la variation du périmètre, bref les mécanismes de pilotage. C'est en quelque sorte la démo de la mission de coaching agile.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;de l'écoute, de l'écoute, de l'écoute, et encore de l'écoute&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: il me semble très important de prêter une oreille attentive à &lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;tout le monde&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; c'est-à-dire bien sûr l'équipe, le Scrum Master, et le Product Owner, mais aussi son chef, les collègues, les utilisateurs, le commanditaire de la mission de coaching, son chef, les instances transverses, bref tous! Je ne jette aucune information ni n'écarte d'un revers de la main les réactions inappropriées. Tout commentaire est bon à prendre, toute réaction a son fondement et cache parfois des informations capitales pour la réussite de la transition vers l'agilité&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;de la communication&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: expliquer en permanence les principes de l'agilité à toutes les parties prenantes (direction, organisations transverses, équipes métier, contributeurs, prestataires, etc). On s'aperçoit vite que l'équipe coachée est entourée d'un nombre insoupçonné de personnes qui ont un rôle à jouer ou qui influencent d'une façon ou d'une autre le travail de l'équipe &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;de l'empathie&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;: les membres de l'équipe coachée vont traverser un changement parfois très profond de leurs habitudes de travail. Cela apporte son lot d'incertitude, d'angoisse, voire de souffrance dans certains cas. Je ne suis pas là pour torturer mes clients mais pour leur faciliter la tâche, j'essaye de ne jamais l'oublier.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bon, tout ça pour dire quoi ?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Pour dire que je suis prêt à entendre qu'il faut sans cesse se cultiver pour améliorer ses pratiques, mais il faut pouvoir ... mettre sa culture en pratique!! Je trouve qu'il y a quand même un bonne partie de toute l'agitation autour du coaching agile qui tient de la démonstration mathématique voire parfois de la masturbation intellectuelle, et qui ne sert pas à grand chose concrètement. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Sayonara !&lt;br /&gt;NB: ce message ne s'adresse pas aux bloggeurs pragmatiques qui adressent également tous ces concepts dans leur messages. D'ailleurs, j'envoie mes remerciements à &lt;a href="http://www.qualitystreet.fr/"&gt;JC&lt;/a&gt; qui reste ma première source d'information pour comprendre le baragouinage de certains :)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-4882464154644648443?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=4882464154644648443&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/4882464154644648443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/4882464154644648443'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2010/02/suis-je-un-mauvais-coach-agile.html' title='Suis-je un mauvais coach agile ?'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-1628528922185729827</id><published>2009-06-10T14:17:00.015+02:00</published><updated>2010-05-14T10:09:59.148+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDR'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Dojo TDR @ XP Day France 2009</title><content type='html'>This is a late feedback on &lt;a href="http://xpday.fr/programme#DojoTDR"&gt;my session&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;+ good attendance, room was full but not overcrowded, great :)&lt;br /&gt;&lt;br /&gt;? this was my fifth experiment of this type of dojo, we started the &lt;a href="http://xp-france.net/cgi-bin/wiki.pl?PraticiensDeParis/Mercredi19Novembre2008"&gt;first experiment&lt;/a&gt; with a colleague last November; I still had high expectations on the output&lt;br /&gt;&lt;br /&gt;+ the subject (Blackjack) was an excellent base to work on, thanks to &lt;a href="http://gojko.net/"&gt;Gojko&lt;/a&gt; whom I stole &lt;a href="http://gojko.net/2009/05/12/examples-make-it-easy-to-spot-inconsistencies/"&gt;the idea&lt;/a&gt; from&lt;br /&gt;&lt;br /&gt;+ thanks to the XP Day goodies, I got a much better timer than I used to have for timekeeping&lt;br /&gt;&lt;br /&gt;- I proposed the fitnesse wiki to record the tests, not a very efficient tool for authoring, but that's all I had on my laptop&lt;br /&gt;&lt;br /&gt;+ the audience was very dynamic trying to help the keyboard holder&lt;br /&gt;&lt;br /&gt;? I started the 5mn turns, intentionally choosing a test that was not at the heart of the problem, just to check whether the participants come back to the core topic, they did not, so I'm not sure that was a good idea&lt;br /&gt;&lt;br /&gt;- the participants started quite late to identify interesting tests, actually that was half-through the session when I asked them whether the tests roughly illustrated the Blackjack rules&lt;br /&gt;&lt;br /&gt;+ towards the end, one participant got rid of FitNesse and grabbed a pencil to draw some tests on the paperboard, that helped a lot to share an understanding on blackjack rules&lt;br /&gt;&lt;br /&gt;+ the conclusion that I made to the audience was something like: "if you want to learn about the domain and the requirements, don't pay too much attention to the rules, they're distracting you from the objective"&lt;br /&gt;&lt;br /&gt;+ finally, I received very good feedback about the session from the participants, if you attended the workshop and have some more feedback, please let me know&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-1628528922185729827?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=1628528922185729827&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1628528922185729827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1628528922185729827'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2009/06/dojo-tdr-xp-day-paris-2009.html' title='Dojo TDR @ XP Day France 2009'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-3084021625158900391</id><published>2009-05-14T22:50:00.004+02:00</published><updated>2010-05-14T10:10:19.515+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Open-Source'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Outils de tests open-source</title><content type='html'>Les slides de ma présentation au dernier afterwork Valetch sont sur slideshare: &lt;div style="width:425px;text-align:left" id="__ss_1436772"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/guest200a29d/outils-de-tests-opensource?type=presentation" title="Outils de tests open-source"&gt;Outils de tests open-source&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=valtechafterwork20090428-090514154439-phpapp02&amp;amp;stripped_title=outils-de-tests-opensource"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=valtechafterwork20090428-090514154439-phpapp02&amp;amp;stripped_title=outils-de-tests-opensource" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-3084021625158900391?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=3084021625158900391&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/3084021625158900391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/3084021625158900391'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2009/05/outils-de-tests-open-source.html' title='Outils de tests open-source'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-7727192820192316564</id><published>2008-12-08T23:04:00.005+01:00</published><updated>2010-05-14T10:10:45.426+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Qu'avez vous testé aujourdhui ?</title><content type='html'>C'était aux Valtech Days en Novembre dernier, vous pouvez retrouver la présentation en français et &lt;a href="http://www.valtech-tv.com/permalink/7527/quavezvous-teste-aujourdhui-.aspx"&gt;en vidéo sur Valtech TV&lt;/a&gt;. J'ai mis la présentation sur slideshare:&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1436826"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/gmantel/quavez-vous-test-aujourdhui?type=powerpoint" title="Qu'avez vous testé aujourdhui ?"&gt;Qu'avez vous testé aujourdhui ?&lt;/a&gt;&lt;object style="margin: 0px;" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vd2008-quavezvoustestaujourdhui-090514160048-phpapp01&amp;amp;stripped_title=quavez-vous-test-aujourdhui"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=vd2008-quavezvoustestaujourdhui-090514160048-phpapp01&amp;amp;stripped_title=quavez-vous-test-aujourdhui" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-7727192820192316564?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=7727192820192316564&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7727192820192316564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7727192820192316564'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2009/05/qu-vous-teste-aujourdhui.html' title='Qu&amp;#39;avez vous testé aujourdhui ?'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-8417709552877431036</id><published>2008-10-04T13:51:00.012+02:00</published><updated>2010-05-14T10:10:58.766+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>What have you tested today ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://valtechdays.fr/"&gt;&lt;img src="http://2.bp.blogspot.com/_3DjWUjD6myk/SOdasqi-pBI/AAAAAAAAAGs/6qxsxygi8GY/s400/VADYAS2007-Main.jpg" alt="" id="BLOGGER_PHOTO_ID_5253267213732717586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;I will be presenting a lightning talk at the Valtech Days 2008 in Paris, the 21st of October.&lt;br /&gt;It will be a "refactored" version of the lightning talk I made at the &lt;a href="http://tech.groups.yahoo.com/group/aa-ftt/"&gt;aa-ftt&lt;/a&gt; workshop the 4th of August just before the Agile 2008 conference. There is a &lt;a href="http://video.google.com/videoplay?docid=8239696827735810032&amp;amp;ei=CZuwSJ3rCqLCqALZmLjkDA&amp;amp;q=aa-ftt"&gt;low-fi shooting&lt;/a&gt; of this talk on google video, thanks to Elisabeth Hendrickson:&lt;br /&gt;&lt;br /&gt;&lt;embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=8239696827735810032&amp;amp;hl=fr&amp;amp;fs=true" style="width: 400px; height: 326px;" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;br /&gt;One of the attendees also wrote a &lt;a href="http://mikedebo.ca/2008/08/04/aa-ftt-2008-workshop-redux-part-1/"&gt;blog post&lt;/a&gt; referring to the talk.&lt;br /&gt;&lt;br /&gt;Since then, I went on thinking more and more on how to present these values and the rationale behind them. One of the consultant in Valtech also found a pretty good name for this talk: "What have you tested today ?". I think this question nicely wraps up the 3 values that I emphasize. There is the name of my lightning talk! Come the 21st of October to know more.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-8417709552877431036?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=8417709552877431036&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/8417709552877431036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/8417709552877431036'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/10/what-have-you-tested-today.html' title='What have you tested today ?'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_3DjWUjD6myk/SOdasqi-pBI/AAAAAAAAAGs/6qxsxygi8GY/s72-c/VADYAS2007-Main.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-7506819638909302665</id><published>2008-08-09T14:53:00.016+02:00</published><updated>2010-05-14T10:11:11.102+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDR'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>The material of the TDR workshop at Agile 2008</title><content type='html'>I'm posting here the (electronic) material that I created for my workshop at Agile 2008, Test-Driven Requirements: Beyond Tools. Feel free to reuse it to play the game yourself, I just want you to keep me informed of the output.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Game 1&lt;/u&gt;:&lt;br /&gt;I created this game after an experiment in which I participated at the University of Linköping (Sweden) back in 1999. I found the concept interesting enough to make a parallel with software engineering. I named the 2 main players "Product Owner" and "Developer" and I added a couple of roles, the User and the Tester, to add a bit more spice to that game and make it closer to software product development process.&lt;br /&gt;To play the game, you need 2 identical sets of wooden blocks, a table, and a splitter.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3DjWUjD6myk/SKIDtu-m9pI/AAAAAAAAAGc/JACtoaD4n7o/s1600-h/2735261645_7255f28e07%5B1%5D.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_3DjWUjD6myk/SKIDtu-m9pI/AAAAAAAAAGc/JACtoaD4n7o/s320/2735261645_7255f28e07%5B1%5D.jpg" alt="" id="BLOGGER_PHOTO_ID_5233749801197565586" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are the instructions of the game:&lt;br /&gt;- &lt;a href="http://blog.valtech.fr/wordpress/wp-content/uploads/tdrworkshop-game1-audienceinstructions.pdf"&gt;Audience instructions&lt;/a&gt;&lt;br /&gt;- &lt;a href="http://blog.valtech.fr/wordpress/wp-content/uploads/tdrworkshop-game1-playersinstructions.pdf"&gt;Players instructions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Game 2&lt;/u&gt;:&lt;br /&gt;I completely made up this one (or think so until someone tells me it's an old game they played at Agile 1975 ...). In this game, groups of 3 to 9 persons try to uncover the requirements of a vague specification that a user (one of the group's member) had read just before. The objective is not so much to uncover real requirements or needs, but rather to use tests to explore the needs and formalise a specification. The users don't know anything concrete, so the specification should be elaborated as a result of a group collaboration.&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_3DjWUjD6myk/SKIERhAmouI/AAAAAAAAAGk/XFUljDA5CkM/s1600-h/2735260173_6cb7392ec3%5B1%5D.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_3DjWUjD6myk/SKIERhAmouI/AAAAAAAAAGk/XFUljDA5CkM/s320/2735260173_6cb7392ec3%5B1%5D.jpg" alt="" id="BLOGGER_PHOTO_ID_5233750415923127010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The game starts with a short &lt;a href="http://blog.valtech.fr/wordpress/wp-content/uploads/tdrworkshop-game2-presentation.pdf"&gt;presentation&lt;/a&gt; reminding the audience about tools and techniques for using tests as specification. Then, one user in each group is given a &lt;a href="http://blog.valtech.fr/wordpress/wp-content/uploads/tdrworkshop-game2-groupsubjects.pdf"&gt;Memo&lt;/a&gt; to read to get to know the context of a system on which the group will work. I allow the group to work 20 minutes and then ask them to write the result of their collaboration on a sheet of white paper. I will post soon the output of the workshop (I have to upload a report on the Agile2008 submissions website).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-7506819638909302665?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=7506819638909302665&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7506819638909302665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7506819638909302665'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/08/material-of-tdr-workshop-at-agile-2008.html' title='The material of the TDR workshop at Agile 2008'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_3DjWUjD6myk/SKIDtu-m9pI/AAAAAAAAAGc/JACtoaD4n7o/s72-c/2735261645_7255f28e07%5B1%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-6466380859056853650</id><published>2008-07-31T22:24:00.003+02:00</published><updated>2010-05-14T10:11:26.617+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Agile 2008: Presentation of Examples stage</title><content type='html'>&lt;a href="http://media.libsyn.com/media/clarkeching/02_-_adam_geras_examples.mp3"&gt;Here&lt;/a&gt; is a podcast where Adam Geras presents the Examples stage of Agile 2008. He talks about my session towards the end of its speech. Thanks Adam.&lt;br /&gt;&lt;br /&gt;You will also find podcasted presentations of the other stages &lt;a href="http://clarkeching.libsyn.com/index.php?post_category=NakedAgilists"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-6466380859056853650?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=6466380859056853650&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6466380859056853650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6466380859056853650'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/07/agile-2008-presentation-of-examples.html' title='Agile 2008: Presentation of Examples stage'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-8396720107979920219</id><published>2008-07-29T20:04:00.002+02:00</published><updated>2010-05-14T10:11:43.824+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Preparing Agile 2008: TDR workshop</title><content type='html'>Yesterday evening my colleagues and I organized at Valtech office in Paris a rehearsal of my &lt;a href="http://submissions.agile2008.org/node/3478"&gt;workshop for Agile 2008&lt;/a&gt;. This event was open and &lt;a href="http://xp-france.net/cgi-bin/wiki.pl?PraticiensDeParis/Lundi28Juillet2008"&gt;announced on the XP France&lt;/a&gt; web site. My colleagues took this opportunity to videotape the session and we invited a production company to do the same, so hopefully we should post a video abstract in a couple of days on the Valtech website. I would like to thank all the participants that took time to come after the standard office hours. They've been greatly rewarded with pizzas :)&lt;br /&gt;Eric has already &lt;a href="http://eric.lemerdy.free.fr/dotclear/index.php?post/2008/07/28/De-retour-de-la-session-TDR"&gt;posted a summary &lt;/a&gt;of the evening (in french).&lt;br /&gt;&lt;br /&gt;It was the first time I conducted the second part of the workshop, as I'm already conducting the first part in the TDR courses. This session uncovered lots of interesting points.&lt;br /&gt;&lt;br /&gt;About the format and organization first. It lasted approximately 135 mins despite my efforts to shorten some phases, so it is still 45 mins too long. I can to optimize time by writing guiding sheets for the participants so I don't need to explain too much what they're exepected to do, that will also make the instructions clearer. I will also reduce the number of wooden blocks so the first part of the workshop can fit within the expected 30 mins.&lt;br /&gt;&lt;br /&gt;Regarding the content I was surprised how unnatural it seems to use tests for exploring needs and formalizing requirements. The participants did use examples in their discussions, but it seems they didn't realize that these examples were already test embryos, so they took note of generic software requirements made after the examples, and then wrote tests from those requirements... Well, exactly the opposite stuff I wanted to see... So I encouraged the groups to work on concrete examples, and start writing tests from those examples.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then going from examples to concrete tests seemed another uneasy step. I observed that many of the participants proposed to write tables (FIT habits ?) where I felt writing text and progressively maturing a DSL would make more sense and be more efficient for the exercise. As a result, participants were spending lots of time trying to put everything in a couple of tables and thus looking for suitable formats rather than simply writing tests as examples unfold. I also saw the teams progressivelly overwhelmed by the complexity of the requirements and losing track of the basic examples they had discussed at the very beginning of the exercise. They did not want to write tests until they get a sufficient idea of the requirements and they understood their complexity.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This workshop tought me that using tests for exploring needs and specifying software isn't that obvious. We should definitely think of some communication techniques so that teams get some guidance in this field, something like the TDD process applied to requirements (well, we've come a long way, it is the idea of test-driven requirements after all...). TDD does not allow you to write bunch of tests at once and then produce the code, it tells you to do one thing at a time, so you're not overwhelmed by the complexity. What could be the process for TDR ? What about: 1. get an example, 2. write a test, 3. get agreement on that test. We need to think about that and I'm really eager to conduct the workshop at Agile 2008 to check the output.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-8396720107979920219?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=8396720107979920219&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/8396720107979920219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/8396720107979920219'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/07/preparing-agile-2008-tdr-workshop.html' title='Preparing Agile 2008: TDR workshop'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-1819373035522065991</id><published>2008-06-11T13:29:00.001+02:00</published><updated>2010-05-14T10:11:57.747+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDR'/><category scheme='http://www.blogger.com/atom/ns#' term='FR'/><title type='text'>Some words in French about Test-Driven Requirements</title><content type='html'>&lt;embed src="http://storage02.brainsonic.com/webtv/tv4itv2/player.swf?&amp;amp;paramXml=http://storage02.brainsonic.com/webtv/tv4itv2/param_player.xml&amp;amp;itemId=5570&amp;amp;autostart=false&amp;amp;mute=false&amp;amp;rollover=true quality=" bgcolor="#000000" width="320" height="280" allowfullscreen="true" align="middle" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-1819373035522065991?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=1819373035522065991&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1819373035522065991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1819373035522065991'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/06/some-words-in-french-about-test-driven.html' title='Some words in French about Test-Driven Requirements'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-2911437278964615162</id><published>2008-05-15T16:42:00.005+02:00</published><updated>2010-05-14T10:12:13.723+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>Bent Jensen presented Lean to Valtech consultants</title><content type='html'>Yesterday evening we had a presentation of Lean Software Development by Bent Jensen at our Valtech premises in Paris. Bent is helping Elisabeth, a colleague from Valtech, in a mission where our client wants to apply Lean techniques to reduce the cost of their product. Bent has spent a couple of days in Paris and we took this occasion to organize this presentation in the context of our weekly evening training agenda.&lt;br /&gt;&lt;br /&gt;Bent made a clear and concise presentation of what Lean is and where does it come from, as well as he explained what Lean actually means in the software development field. After the presentation, Elisabeth talked about their ongoing mission and what they achieved so far, illustrating her explanations with pictures from battlefield.&lt;br /&gt;&lt;br /&gt;I really appreciated to hear and discuss application of Lean in software development field. After reading the reference book &lt;a href="http://www.lean.org/Bookstore/ProductDetails.cfm?SelectedProductID=3"&gt;The Machine That Changed The World&lt;/a&gt;, that gave me much more concrete examples and analogies in our field. The point of the presentation that I especially recall is when Bent talked about so-called exploration phase (first iterations) and construction phase (after some iterations) in the lean development process he sketched on one of his slide. He pointed out that this is the way Toyota does in their product development process. Lots of talks are going on in the Agile world whether running an "iteration 0" to settle down some architectural components or frameworks. I think he had an interesting point for this debate. To some extent, what Bent presented recalls a bit the RUP (Rational Unified Process) with its elaboration and construction phases (but no idea here of inception and transition).&lt;br /&gt;&lt;br /&gt;Bent's company has a &lt;a href="http://www.bestbrains.dk/blog/"&gt;blog&lt;/a&gt; where he posts news. I found there some of the stories he told during his talk, like the Lego bug tracking system or his trip to Japan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-2911437278964615162?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=2911437278964615162&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/2911437278964615162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/2911437278964615162'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/05/bent-jensen-presented-lean-to-valtech.html' title='Bent Jensen presented Lean to Valtech consultants'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-6420959781332932415</id><published>2008-05-14T16:56:00.002+02:00</published><updated>2010-05-14T10:12:41.052+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='XP'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>(Feed)Back from XP Day France 2008</title><content type='html'>&lt;p&gt;I attended the &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=43&amp;amp;Itemid=118"&gt;XP Day France 2008&lt;/a&gt; last week, and also gave a &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120#S833"&gt;talk&lt;/a&gt; on the second day. The conference was a success as they recorded more participants than last year. From my point of view I participated in sessions much more interesting than I expected, and especially enjoyed some enriching workshops.&lt;br /&gt;&lt;br /&gt;In the morning of day 1, I attended the workshop on &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S822"&gt;Lean System&lt;/a&gt;. That was a role-playing game in which a team had to build 10 paper-shadocks in an assembly line-like mode during rounds of 10 mins. After each round the customer (the workshop leader) would accept or reject the finished units depending on what she found acceptable. The project manager would then calculate the financial results based on the sells (accepted shadocks), consumed commodity (paper sheets), team-member wages, facility (tables), etc. I played the shareholder, not a very demanding role as I just had to sit and wait for the financial results, then look very disappointed as the results were quite bad until the last rounds. Before beginning a new round, the team could only take 1 action to improve the output and increase the overall results. Beside being fun, the workshop actually tought some interesting lessons while it was not really focused on software development: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;first of all, I realized that Lean System is not mainly about removing waste, it is firstly about removing variability among instances of the same steps. This point, though, might not make much sense in software development and this is probably why we talk much more about removing waste in lean software development, &lt;/li&gt;&lt;li&gt;applying lean system may drive to reduce human resources while increasing productivity and quality. I thought only productivity and quality was the focus while keeping stable resources. The workshop leader therefore stressed that initiating a lean system within an organisation might fail badly if it does not happen in an economically favorable context, because employees will not contribute to a system that might lead to removing their job.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the afternoon of day 1, I attended the &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S824"&gt;Lightning Talks&lt;/a&gt; led by my colleague Yannick. I also made a try at the &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S841"&gt;XP laboratory&lt;/a&gt; but soon left the session as it turned too technical to me. What I experienced there was indeed very weird: at the beginning of the session, the organizers explained briefly what was realized thus far and what was the stories they proposed to make in the first iteration of the session. They then asked whether the participants were comitted to delivering these stories by the end of the 10 mins iteration. And guess what, nobody said no ! None of us had a clear idea of the existing design, code quality, or past problems, but we all comitted to deliver the stories. Even more striking is the fact that everyone but me then rushed to the available laptop PC to dig in the code and start programming. Well, I left the session soon after as I'm quite unable to undertsand or program a line of JAVA. I did not feel like that was a great XP application. I however had the occasion to discuss this brief experience with the workshop oragnizers, François Beauregard and Eric Mignot from Pyxis, and it confirmed what I felt: the organizers let the team made some mistakes so that they could learn the XP values. They also were very surprised that no one, whatever the sessions, refused the comittment on the proposed stories having no idea of the design and problems. This is even more striking knowing that this laboratory did not have any financial stakes and that most of the participants are not beginners in the Agile world. That makes me think the way is still long until we master the Agile values and apply them naturally. &lt;/p&gt;&lt;p&gt;Day 1 ended up with a good dinner. I had the occasion to discuss extensively with an employee of Parkeon, especially on their use of FitNesse. I now have better examples to share if I encounter again the objection that FitNesse and TDR techniques are not suited to embeded software (objections that I often hear when I'm teaching the &lt;a href="http://www.valtech-training.fr/fr/index/training/catalogue/strategies_developpement_logiciel/TDR.html"&gt;TDR course&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;On day 2 I opened the day with my talk on Test-driven Requirements, while 2 of my colleagues also made a presentation (Romain on &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S809"&gt;continuous integration &lt;/a&gt;and Nathalie on &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S829"&gt;contracts for agile projects&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;I then attended a very enriching workshop about &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S851"&gt;Leadership&lt;/a&gt;. The principle was simple, the participants had to build structures with Lego blocks. We run three such sessions, each with a different type of leadership. The first session was driven by 2 leaders with a commanding type of management, the second had no leader and the team built a church in a self-organizing fashion, and the third had 2 coaching leaders (I was one). A global restrospective at the end gave us the opportunity to discuss the characteristics of a good leader and what they missed to do in the exercise. Beyond the lessons that this workshop was supposed to bring about, I realized something more after the retrospective: when there is a leader, everyone holds him responsible for the failure or success of the exercise, on the other hand, when there is no leader, everyone tries to identify what was good and bad with herself or himself. In brief, we are naturally feeling responsible when there is no designated leader while we naturally shift all the responsibility on the leader's shoulders when there is one. What this workshop tells to me is: if you're a leader, expectations will be high on you whatever the type of management you're applying, so you'd better succeed :)&lt;/p&gt;&lt;p&gt;Finally I attended a presentation on &lt;a href="http://xp-france.net/index.php?option=com_content&amp;amp;task=view&amp;amp;id=48&amp;amp;Itemid=120&amp;amp;PHPSESSID=f192bf563e5e265e1a10ca739c9e6458#S808"&gt;practicing the conflict&lt;/a&gt;. The presenters made their talk dressed in kimonos and played small funny scenes to illustrate their points. Briefly speaking it was about using an aikido-based technique to master a conflict and not to avoid it. Beyond these techniques, they stated that conflict is a mandatory step towards successful teams, argueing that conflicts can bring about better solutions. Although I understand and share some of their points, I still cannot consider that the conflict is a must have for successful teams. I rather think that confrontation is a must. Sometimes confrontations turn into conflict so we indeed need techniques to master conflicts but I don't see them as a healthy step toward sucess.&lt;/p&gt;&lt;p&gt;Before leaving, I spent some time discussing with the Pyxis guys and getting a demo of &lt;a href="http://www.greenpeppersoftware.com/en/"&gt;Greenpepper&lt;/a&gt; (great tool!). &lt;/p&gt;&lt;p&gt;That was my experience of the XP Day 2008 !&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-6420959781332932415?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=6420959781332932415&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6420959781332932415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/6420959781332932415'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/05/feedback-from-xp-day-france-2008.html' title='(Feed)Back from XP Day France 2008'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-7246941962835029494</id><published>2008-05-13T13:12:00.005+02:00</published><updated>2010-05-14T10:12:57.250+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TDR'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>Agile 2008</title><content type='html'>My &lt;a href="http://submissions.agile2008.org/node/3478"&gt;session proposal &lt;/a&gt;for &lt;a href="http://agile2008.org/"&gt;Agile2008&lt;/a&gt;, the world conference about agile software development, has been officially selected ! This is a great news and means I will be flying to Toronto beginning of August to attend this exciting event. I'm scheduled tuesday the 5th at 10.45 AM, I will therefore have the pleasure to kick off the Conference sessions just after the keynote (monday is reserved to research topics and icebreaker). I now have to prepare the details of my session and make sure I can get the material I need to run the workshop smoothly and make it a successful experience for the participants. I will be posting some updates on my preparation as it comes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-7246941962835029494?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=7246941962835029494&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7246941962835029494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7246941962835029494'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/05/agile-2008.html' title='Agile 2008'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-2484192728349558680</id><published>2008-04-29T14:03:00.002+02:00</published><updated>2010-05-14T10:13:20.363+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='TDR'/><category scheme='http://www.blogger.com/atom/ns#' term='Selenium'/><category scheme='http://www.blogger.com/atom/ns#' term='FitNesse'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>Test-Driven Requirements versus functional test automation</title><content type='html'>I am updating the case study of the &lt;a href="http://www.valtech-training.fr/fr/index/training/catalogue/strategies_developpement_logiciel/TDR.html"&gt;TDR course &lt;/a&gt;that I recently developed for Valtech Training. During the first sessions of the course, it turned out that the trainees had a difficult time understanding the differences between Test-Driven Requirements and GUI Functional Tests. So I decided to improve the case study with real examples of automated GUI functional tests.&lt;br /&gt;&lt;br /&gt;The case study is a simple webapp that is supposed to be an online banking system (it is of course greatly simplified). I am the product owner of this app, and one Valtech consultant developed it for me (because I can hardly code something now). I built the functional specifications with FitNesse, using test tables to interact with the developer and discuss the functional requirements. In turn, he used the fixtures in a TDD manner to drive his development. Below is an example of the functional requirement that describes an immediate money transfer :&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3DjWUjD6myk/SA7rCqJ3X1I/AAAAAAAAADQ/LmEfYGhMUho/s1600-h/TDRexemple1.JPG"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" src="http://2.bp.blogspot.com/_3DjWUjD6myk/SA7rCqJ3X1I/AAAAAAAAADQ/LmEfYGhMUho/s320/TDRexemple1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As you can see, we mixed textual descriptions in a use-case style with an example to illustrate the description. The example is actually a test, specifying preconditions, actions, and verifications. We used a RowEntry fixture to specify the preconditions, i.e. to populate the database with test data, then we used an Action fixture to describe the actions, and a Row fixture to verify the results. The example is in french. If you cannot understand french, you just need to know that we spent some time to choose appropriate fixture names, so that the test tables do not feel like automated tests or freaky technical stuff inserted in plain text specifications. We really wanted that the test tables read like real examples, so we chose fixture names like "There exists the following accounts", or "Consult account details", which read more naturally than freaky names we often see with FIT/FitNesse examples "com.myapp.test.fixtures.ConsultAccount". We also put some effort to mature a domain specific testing language (DSTL), so that we could reuse the expressions for precondition or verification with different requirements. For example, we used a lot the fixture "There exists the following accounts" to set up initial test data.&lt;br /&gt;&lt;br /&gt;Now let's move to the GUI testing. I made use of a Selenium-FitNesse bridge (the like of &lt;a href="http://www.fitnesse.info/webtest/"&gt;webtest&lt;/a&gt;) to integrate my automated GUI tests with my specifications. That bridge provides a testing mini-language to allow non-technical people like me writing automated test cases without knowing Selenium scripting. I created a couple of cases to test the webapp, below is an example of an automated test case that traces to the specification given above:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3DjWUjD6myk/SA77GqJ3X2I/AAAAAAAAADY/f9ASp5cwyt0/s1600-h/TDRexemple2.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5192363512218214242" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_3DjWUjD6myk/SA77GqJ3X2I/AAAAAAAAADY/f9ASp5cwyt0/s320/TDRexemple2.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In this example, we see that the flow of actions and verifications is overwhelmed with interface details and strategic instructions (wait for page to reload, etc). The testing mini-language gives a better readability than the equivalent Selenium script would do (some test specialists like to call this "keyword-driven testing"), but still, the test case is not good at serving the specification side. Both types of tests are complementary and should co-exist. The first FIT-like type serves to drive and support the specification process, it also helps in building a regression safety net; the second Selenium-like type serves to test the application and make sure every piece of the software properly fits together. In the end, we should get something like this:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_3DjWUjD6myk/SA8AlaJ3X3I/AAAAAAAAADg/rXJFa0iCUqc/s1600-h/TDRexemple3.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5192369538057330546" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_3DjWUjD6myk/SA8AlaJ3X3I/AAAAAAAAADg/rXJFa0iCUqc/s320/TDRexemple3.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The screenshot above shows the organisation of my FitNesse wiki for the webapp. I created a topmost suite that contains two "sub-suites": one is the specification artefact, containing the FIT-like tests, one is the acceptance test artefact, containing the Selenium-like tests. I made use of links to trace tests from the second artefact to the first, so that I can have an idea of impacted GUI tests when I change the specifications. I can run seperately the specification tests and the acceptance tests, or within a single click. It should be clearer now that TDR and GUI fonctional testing serves a different purpose. I used FitNesse and Selenium because they are open-source, but the same kind of approach can be followed using test management proprietary tools like QualityCenter in combination with test robots and requirements management tools. It's not going to be the same price though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-2484192728349558680?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=2484192728349558680&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/2484192728349558680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/2484192728349558680'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/04/test-driven-requirements-versus_29.html' title='Test-Driven Requirements versus functional test automation'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_3DjWUjD6myk/SA7rCqJ3X1I/AAAAAAAAADQ/LmEfYGhMUho/s72-c/TDRexemple1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-7736702838266257482</id><published>2008-02-11T19:58:00.002+01:00</published><updated>2010-05-14T10:13:32.778+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>Next generation testing tools</title><content type='html'>During an internal Open Space Technology in Valtech about one year ago (12th Feb 07) we had a discussion on software testing frameworks and test automation tools. I initiated this discussion by proposing a topic about how to make a framework that would hide the programming details of functional test automation and help focusing on writing test cases. We exchanged about existing commercial tools and their limits. We also discussed about frameworks, or wrappers, built on top of those tools to allow for better test creation. Valtech India has built such a wrapper, named LoFat, based on Excel spreadsheets and that can use QuickTestProfessional, Selenium, or SilkTest to execute the functional tests. My current client has also built such a wrapper on top of QuickTestProfessional. We finished the openspace discussion by sketching a simple and theorical architecture to support our approach. After this Open Space, we did not keep this discussion rolling.&lt;br /&gt;&lt;br /&gt;Some time ago I came across an article from Jenitta Andrea titled &lt;a href="http://www.jennittaandrea.com/wp-content/uploads/2007/04/envisioningthenextgenerationoffunctionaltestingtools_ieeesw_may2007.pdf"&gt;Envisionning the Next Generation of Functional Testing Tools&lt;/a&gt;. That's a big piece of work that depicts our expectations towards test automation tools in a bright and comprehensive way. Following this article, Jenitta organised a workshop for the Agile Alliance in October 2007, gathering test automation tools experts to push the discussion further on. There are many reports of this workshop on participants' blogs, and a digest on &lt;a href="http://www.infoq.com/news/2007/10/aa-ftt-workshop"&gt;InfoQ&lt;/a&gt;. A &lt;a href="http://tech.groups.yahoo.com/group/aa-ftt/"&gt;discussion group&lt;/a&gt; has been created on Yahoo to keep the discussion rolling. I think the consultants that participated in our open space discussion a year ago should subscribe to this group, because there are really interesting stuffs going on. As an example, an interesting &lt;a href="http://w.on24.com/r.htm?e=101890&amp;amp;s=1&amp;amp;k=D782070265CDCB73F873DD84B7884811&amp;amp;partnerref=021908SQE"&gt;web seminars&lt;/a&gt; is planned 19th of February, featuring Jenitta and Ward Cuningam, about next generation functional testing tools. Ward might present a new tool from Thoughtworks that supports the approach described by Jenitta. Well, by reading the description of the seminar, there is no question that Test-Driven Requirements and Functional Testing are now one single issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-7736702838266257482?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=7736702838266257482&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7736702838266257482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/7736702838266257482'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2008/11/next-generation-testing-tools.html' title='Next generation testing tools'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-5338720516973716987</id><published>2008-01-03T11:40:00.002+01:00</published><updated>2010-05-14T10:13:48.032+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lean'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>The (Toyota) way to go</title><content type='html'>Toyota &lt;a href="http://www.lemonde.fr/web/article/0,1-0@2-3234,36-993151,0.html?xtor=RSS-3234"&gt;has become the biggest car producer &lt;/a&gt;in 2007 overtaking General Motors who had been holding this position for &lt;strong&gt;80 years&lt;/strong&gt;. This is quite a big news! Toyota has been paving the way to efficient production management for decades, inventing lean and other manufacturing management concepts. Lean can be applied everywere and be transposed to many other businesses. Lots of companies look in this field to improve their process throughput while keeping stable resources.&lt;br /&gt;&lt;br /&gt;In software development field, the definitive reference for lean thinking is the work of the Poppendiecks, which is gathered on their &lt;a href="http://www.poppendieck.com/"&gt;website&lt;/a&gt;. Many agile development models and practices are either inspired by lean thinking or verify lean principles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;TDD implements a perfect "pull" organisation of the code and unit tests tasks&lt;/li&gt;&lt;li&gt;eXtreme Programming has many practices verifying lean principles (Jacques Couvreur wrote a good &lt;a href="http://www.agora.2ia.net/mediawiki/index.php?title=ToyotaWay"&gt;article&lt;/a&gt; on how XP relates to the Toyota way), &lt;/li&gt;&lt;li&gt;Continuous Integration and software factories are a way to make jidoka happen in the software development process&lt;/li&gt;&lt;li&gt;Test-Driven Requirements (TDR) is an extension of TDD, applying lean principles to the other steps of the software development process (I made a &lt;a href="http://www.valtech.fr/fr/index/valtech_days/24seminaires/Agilite.html#tdr"&gt;presentation&lt;/a&gt;, in French, on this topic during the &lt;a href="http://valtechdays.pbwiki.com/"&gt;Valtech Days 2007&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;and so on...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Although it seems Agile Values were not directly inspired by Lean Thinking by the time of the &lt;a href="http://agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt;, there are so many connections today in the software development field that it is difficult to differentiate either one. However, I think that Lean covers a broader area of interest. Software development organisations that seek to be "agile" today will probably seek to be "lean" in the coming years.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-5338720516973716987?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=5338720516973716987&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/5338720516973716987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/5338720516973716987'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2007/12/toyota-way-to-go.html' title='The (Toyota) way to go'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-1956756384472095906</id><published>2007-12-12T15:53:00.002+01:00</published><updated>2010-05-14T10:14:00.468+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tests'/><category scheme='http://www.blogger.com/atom/ns#' term='Continuous integration'/><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>Continuous integration and functional tests</title><content type='html'>I just wrote an article for my current client, an investment bank, to explain to project managers what it takes to perform non-regression functional tests in a continuous integration process. When I say non-regression functional tests, I mean real functional tests that stimulates the GUI to perform tests. My main point is to argue that &lt;strong&gt;continuous integration&lt;/strong&gt; is not exactly like &lt;strong&gt;continuous testing&lt;/strong&gt; and that their respective objectives cannot be combined as easily as just integrating functional regression tests into the continuous integration process. This is actually what the managers ask for when we start automating the functional tests: "can we integrate these tests into the continuous integration process ?". Well, I could merely answer yes, for it is technically possible, but that answer would not be fair because they cannot integrate the functional tests into &lt;strong&gt;their specific&lt;/strong&gt; continuous integration process. Let me explain this.&lt;br /&gt;&lt;br /&gt;Usually the projects we are working with have a continuous integration process including the following steps: compile, build, code check (this step is usually referred to as "test" but I don't like this name), and (sometimes) package. So they are doing continuous integration and they are continuously checking the code, period. Problem is that they want to do continuous testing, I mean not only basic unit tests, they want to continuously perform functional non-regression tests on every build. And this is another story, because it usually requires a fully operational testing environment to test the application at runtime (which is needed for "real" functional tests). Between the time a build is ready for testing and the time it can actually be functionnaly tested, lots of operations are conducted manually, like deployment tasks, database and plateform setup, production data copy, startup of shared services, etc. Some managers don't know that they must fully automate the deployment in testing environment if they want to integrate fonctional regression tests in the continuous integration process. So first point was to stress on fully automating the deployment process.&lt;br /&gt;&lt;br /&gt;But this is not the major issue to be addressed. Another point that I stressed was about not breaking the continuous integration benefits. Continous integration is based on quick feedback to the developers: the quicker the feedback, the better the fix. Anything that increases the delay between the time a developer checks his code in the source repository and the the time he gets notified of a failed build jeopardizes continuous integration success. Thing is that functional regression tests is time consuming, and comes after deployment (as noted above) which can be even more time consuming. So it does not look like a good option to automatically perform functional regression tests in the same workflow as continuous integration. Besides this, it does not make sense to functionally regression test every build&lt;br /&gt;&lt;br /&gt;The solution that I advised is to create workflows that are triggered subsequently to provide some sort of increasing verification level while not breaking continuous integration. The target organization is to split the job into at least 2 workflows, but that can be more:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the classical continuous integration workflow (compile, build) that is triggered as soon as a new piece of code is introduced in the repository. It is usually extended to check code (unit test, code rules, ...), but I advise to do so as long as it does not exceed 10-20 mins.&lt;/li&gt;&lt;li&gt;It is better to add one more workflow to the process between continuous integration and regression workflow so that tasks like package, generate documentation, install, or even code verification could be removed from the continuous integration workflow and be included in this "intermediate" workflow. It should be triggered as soon as a successful continuous integration workflow has been performed (successful build).&lt;/li&gt;&lt;li&gt;a regression workflow that includes deploying and regression testing (functionnaly) on the test plateform and is triggered &lt;strong&gt;at most&lt;/strong&gt; once a day (say at night), most probably once a week depending on the development cycles and team size.&lt;/li&gt;&lt;/ul&gt;In short, my answer to the question was:&lt;br /&gt;- fully automate the deployment process&lt;br /&gt;- seperate functional regression tests in another workflow than the classical continuous integration workflow and trigger it at most once a&lt;br /&gt;day &lt;p&gt;&lt;/p&gt;&lt;p&gt;After releasing this article to my client, I started thinking that the name "continuous integration process" as used in the software programming field today is really a bad name. But this is another story.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-1956756384472095906?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=1956756384472095906&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1956756384472095906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/1956756384472095906'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2007/12/continuous-integration-and-functional.html' title='Continuous integration and functional tests'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7457429695909077433.post-4387166452752322942</id><published>2007-12-04T11:37:00.001+01:00</published><updated>2010-05-14T10:14:14.733+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EN'/><title type='text'>First post</title><content type='html'>This is a simple, yet meaningful title for this post, so that no one will expect too much out of it.&lt;br /&gt;&lt;br /&gt;I finally created this technical blog, at least more technical than my &lt;a href="http://ledaren.blogspot.com/"&gt;personal blog&lt;/a&gt;, as an answer to &lt;a href="http://ericlefevre.net/"&gt;Eric&lt;/a&gt;'s prayers. I intend to drop here my thoughts and readings on subjects that are of some interest to me (well, this is the point of a blog after all), actually everything that relates more or less closely to software testing, namely:&lt;br /&gt;- functional test automation&lt;br /&gt;- test-driven requirements&lt;br /&gt;- quality management&lt;br /&gt;- continuous testing&lt;br /&gt;- ... and many more topics that I don't even know yet&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7457429695909077433-4387166452752322942?l=testdriveninformation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7457429695909077433&amp;postID=4387166452752322942&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/4387166452752322942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7457429695909077433/posts/default/4387166452752322942'/><link rel='alternate' type='text/html' href='http://testdriveninformation.blogspot.com/2007/12/first-post.html' title='First post'/><author><name>Gilles</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp0.blogger.com/_3DjWUjD6myk/SC7VG-XZHSI/AAAAAAAAAFs/EUD0oVXuTcA/S220/PICT5727.JPG'/></author><thr:total>0</thr:total></entry></feed>
