<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:media="http://search.yahoo.com/mrss/"
> <channel><title>Blog Xebia France &#187; XP</title> <atom:link href="http://blog.xebia.fr/tag/xp/feed/" rel="self" type="application/rss+xml" /><link>http://blog.xebia.fr</link> <description>J2EE, Agilité et SOA</description> <lastBuildDate>Wed, 08 Feb 2012 09:23:16 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <copyright>CC BY-NC-ND 2.0 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/</copyright> <managingEditor>blog-france@xebia.com (Xebia France)</managingEditor> <webMaster>blog-france@xebia.com (Xebia France)</webMaster> <ttl>1440</ttl> <image> <url>http://blog.xebia.fr/videos/xebia-podcast.png</url><title>Blog Xebia France</title><link>http://blog.xebia.fr</link> <width>144</width> <height>144</height> </image> <itunes:new-feed-url>http://blog.xebia.fr/feed/podcast/</itunes:new-feed-url> <itunes:subtitle>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agi[...]</itunes:subtitle> <itunes:summary>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agile.</itunes:summary> <itunes:keywords>Xebia, Java, JEE, SOA, Agile, Méthodes, Agiles</itunes:keywords> <itunes:category text="Technology" /> <itunes:category text="Technology"> <itunes:category text="Software How-To" /> </itunes:category> <itunes:category text="Technology"> <itunes:category text="Tech News" /> </itunes:category> <itunes:author>Xebia France</itunes:author> <itunes:owner> <itunes:name>Xebia France</itunes:name> <itunes:email>blog-france@xebia.com</itunes:email> </itunes:owner> <itunes:block>no</itunes:block> <itunes:explicit>no</itunes:explicit> <itunes:image href="http://blog.xebia.fr/videos/xebia-podcast.png" /> <item><title>Xebia à la conférence Software Craftsmanship</title><link>http://blog.xebia.fr/2011/05/20/xebia-a-la-conference-software-craftsmanship/</link> <comments>http://blog.xebia.fr/2011/05/20/xebia-a-la-conference-software-craftsmanship/#comments</comments> <pubDate>Fri, 20 May 2011 14:12:52 +0000</pubDate> <dc:creator>Jean-Laurent de Morlhon</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Conference]]></category> <category><![CDATA[Craftsmanship]]></category> <category><![CDATA[développement]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7783</guid> <description><![CDATA[La conférence Européene de référence sur le Software Craftsmanship se tiendra cette année à Milton Keynes, en Grande Bretagne, non loin de Londres, ce Jeudi 26 mai. Aprés un conférence 2010 réussie, réunissant les pionniers du mouvement Craftsmanship, cette année s&#8217;annonce tout aussi prometteuse. Ordinateur portable avec IDE obligatoire pour cette journée qui s&#8217;organisera autour [...]]]></description> <content:encoded><![CDATA[<p><img
title="Software craftsmanship 2011" src="http://blog.xebia.fr/wp-content/uploads/2011/05/craft.jpeg" alt="Software craftsmanship 2011" width="162" height="97" style="margin: 1em 1em 1em 1em; float: right;" /></p><p>La conférence Européene de référence sur le Software Craftsmanship se tiendra cette année à Milton Keynes, en Grande Bretagne, non loin de Londres, ce Jeudi 26 mai. Aprés un conférence 2010 réussie, réunissant les pionniers du mouvement Craftsmanship, cette année s&#8217;annonce tout aussi prometteuse.<br
/> Ordinateur portable avec IDE obligatoire pour cette journée qui s&#8217;organisera autour de<br
/> 4 tracks en paralléles, essentiellement des sessions hands-on. On va voir du code.</p><p>Voici quelques sessions issues du <a
title="programme" href="http://www.codemanship.co.uk/softwarecraftsmanship/programme.html">programme</a> :</p><ul><li>Is TDD Slower In The Short Term?</li><li>Enhancing Legacy Test Suites</li><li>How Object Oriented Are You Feeling Today?</li></ul><p>Plus de détails sur les sessions se trouvent sur le site de <a
title="jotform" href="http://www.jotform.com/table/11343938233">jotform</a></p><p>Nous serons 3 sur places et vous retrouverez sur notre blog nos retours sur cette conférence différente et vous pourrez suivre en live sur le compte Twitter de  <a
title="morlhon" href="http://twitter.com/morlhon">@morlhon</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/05/20/xebia-a-la-conference-software-craftsmanship/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>L&#8217;avocat du TDD</title><link>http://blog.xebia.fr/2011/04/15/lavocat-du-tdd/</link> <comments>http://blog.xebia.fr/2011/04/15/lavocat-du-tdd/#comments</comments> <pubDate>Fri, 15 Apr 2011 07:00:02 +0000</pubDate> <dc:creator>Simon Caplette</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Tests]]></category> <category><![CDATA[Craftsmanship]]></category> <category><![CDATA[TDD]]></category> <category><![CDATA[Test-Driven-Development]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7426</guid> <description><![CDATA[Ceci est une fiction. Toute ressemblance avec des personnes existant ou ayant existé serait totalement fortuite. Palais de justice de Paris, lundi 21 mars. Une fois n&#8217;est pas coutume, des développeurs sont assis sur le banc des accusés! Ils sont inculpés de faire perdre des millions d&#8217;euros à nos chères compagnies du CAC40 en écrivant [...]]]></description> <content:encoded><![CDATA[<p></p><p><em>Ceci est une fiction. Toute ressemblance avec des personnes existant ou ayant existé serait totalement fortuite.</em></p><p>Palais de justice de Paris, lundi 21 mars.</p><p>Une fois n&#8217;est pas coutume, des développeurs sont assis sur le banc des accusés! Ils sont inculpés de faire perdre des millions d&#8217;euros à nos chères compagnies du CAC40 en écrivant du code voué à crouler sous son propre  poids.</p><p>Mr Tedd, praticien du Test Driven Development, est aujourd&#8217;hui jugé ainsi que quelques uns de ses collègues : Mr Whatever, Mr Guru, Mrs Clickaway et Mr Testafter.</p><p>Prévoyant et confiant, il sera défendu par son avocat : Maître Darrow. Ils ont convenu ensemble de la stratégie à adopter: il faudra pointer du doigt les mauvaises habitudes souvent utilisées et mettre en avant les bonnes pratiques qu&#8217;il a appliqué tout au long des projets qui lui ont été confiés.</p><h3><a
name="Laudienceestouverte"></a>L&#8217;audience est ouverte</h3><p>Le Président, Mr Beck, ouvre la séance en rappelant les chefs d&#8217;accusations aux jurés:</p><ul><li>Le code applicatif contient trop de bugs</li><li>Le code applicatif n&#8217;est pas testé</li><li>Le code applicatif est pour la plupart du temps incompréhensible et reste trop volumineux pour le nombre de fonctionnalités</li><li>La modification et l&#8217;amélioration du code applicatif existant est trop risqué à entreprendre</li></ul><p>La parole est à la défense. Maître Darrow, soucieux de capter l&#8217;attention de son audience, rappelle le contexte:</p><blockquote><p>Nous sommes en 2011. Dans les missions dans lesquelles mon client, Mr Tedd, intervient, écrire du code représente 80% de son temps. Ce code capture des règles métiers plus ou moins complexes et qui évoluent dans le temps. Visuellement son travail se traduit souvent par ce qu&#8217;on appelle un front end sur lequel un utilisateur tel que vous et moi pouvons interagir. Un bon exemple serait un site de réservation de billets de train au niveau Européen. Vous voyez donc, Messieurs et Mesdames les jurés que l&#8217;enjeu est de taille, l&#8217;erreur coûte chère et qu&#8217;elle n&#8217;est donc pas acceptable.</p><p>Aujourd&#8217;hui, je vais vous démontrer que mon client, Mr Tedd, adopte les pratiques adéquates pour rendre son code fiable, évolutif et pérenne.</p><p>Laissez-moi d&#8217;abord vous présenter quelques types classiques de développeurs. Si je n&#8217;enlève rien aux connaissances techniques et aux talents d&#8217;ingénieurs de ces personnes, je leur reprocherais cependant une attitude trop laxiste quant à la fiabilité et la pérennité du code qu&#8217;ils soumettent mais aussi une négligence au regard des méthodes qui permettraient d&#8217;améliorer considérablement la qualité globale des projets auxquels ils participent.</p><p>Permettez-moi de commencer par le cas de Mr Whatever.</p></blockquote><h3><a
name="MrWhatever"></a>Mr Whatever</h3><p>Tous les regards se tournent vers ce grand gaillard assis au bout du banc des accusés.</p><blockquote><p>Mr Whatever, si vous me permettez de vous citer, vous m&#8217;avez dit :</p><p><em>&laquo;&nbsp;Moi je fais juste confiance à mon code. Il compile c&#8217;est donc qu&#8217;il fonctionne</em>.&nbsp;&raquo;</p><p>Je pense que Mr Whatever n&#8217;est jamais resté assez longtemps dans les entreprises pour lesquelles il travaillait pour savoir que son code en production posait plus de problèmes qu&#8217;il n&#8217;en résolvait. Je rappelle pour les profanes dans l&#8217;assistance, que la production  est la plateforme exposée au grand public donc aux vrais utilisateurs. C&#8217;est  dans cet environnement que la charge sur le système se révèle soutenue et  que, potentiellement, tous les chemins possibles dans le code écrit sont  réalisés en concurrence !</p><p>Le problème de Mr Whatever est qu&#8217;il ne sait réellement si son code fonctionne que lors de la phase de tests intensifs. Pour lui, tester c&#8217;est la tâche de ce que l&#8217;on appelle l&#8217;équipe de QA, tiré de l&#8217;anglais Quality Assurance, et qui s&#8217;assure de la qualité du logiciel fournit. Si son code ne fonctionne pas, ils le lui indiqueront et il corrigera. On voit bien que sa responsabilité de fournir du code qui fonctionne lui échappe.</p></blockquote><p>L&#8217;avocat se tourne vers l&#8217;audience et continue :</p><blockquote><p>Nous ne nous attarderons pas plus sur le cas de Mr Whatever, il appartient à une génération un peu dépassée par les événements.</p></blockquote><p>Cette dernière phrase entraine de légers gloussements dans l&#8217;assistance.</p><h3><a
name="MrGuru"></a>Mr Guru</h3><p>Maître Darrow, après avoir jeté un rapide coup d’œil aux papiers étalés sur son bureau, se tourne vers la personne assise aux côtés de Mr Whatever.</p><blockquote><p>Passons au cas de Mr Guru. Cas intéressant puisqu&#8217;il représente l&#8217;archétype de l&#8217;informaticien auquel on accorde toute sa confiance !</p><p>Ses connaissances et son expérience en font un expert dans l&#8217;écriture du code. Cependant, il ne teste jamais ce qu&#8217;il écrit. Il n&#8217;introspecte pas. Perte de temps pour lui ! Il a écrit assez de plateformes pour savoir comment écrire la vôtre. Très bien. Nous aurons alors un code de qualité. Cette affirmation est correcte si votre équipe n&#8217;est formée que de Mr Guru ! Situation atypique s&#8217;il en est, et bon courage pour les batailles d&#8217;ego. Mais bon &#8230; passons.</p></blockquote><p>L&#8217;avocat lève le bras pointant l&#8217;index vers le plafond et lance :</p><blockquote><p>Si notre postulat de départ est que les entreprises ne travaillent qu&#8217;avec des profils tels que celui de Mr Guru, voici les problèmes que cela entrainerait :</p></blockquote><p>Maître Darrow marque un silence pour permettre aux jurés de bien se concentrer sur ce qui va suivre.</p><blockquote><p>Le premier problème serait une pénurie rapide de Mr Guru sur le marché. Toutes les entreprises ne pourraient pas en recruter et seraient dans l&#8217;incapacité de produire des applications de qualité. Un peu fantasque je vous l&#8217;accorde, mais totalement valide avec le postulat de départ.</p><p>Le deuxième problème impacterait le budget de l&#8217;entreprise. Un Mr Guru cela coûte cher ! Combien seriez-vous prêt à dépenser pour une armée de Mr Guru ?</p><p>Le dernier souci, et non des moindres, serait de s&#8217;assurer qu&#8217;on ne recrute que des Mr Guru. S&#8217;il y a un responsable des ressources humaines dans la salle, il m&#8217;accordera que la tâche se révélera ardue. Par ailleurs, je note aussi qu&#8217;il arrive à Mr Guru d&#8217;être fatigué ou d&#8217;être ennuyé, Guru ou pas, il reste humain. De ce fait, il est toujours possible qu&#8217;un expert introduise des erreurs dans votre code de production sans le vouloir.</p><p>De plus une question se pose. Faut-il bannir les développeurs juniors de votre équipe de développement ? Avons-nous peur qu&#8217;ils insèrent des erreurs dans le code ? Un bon manager vous dira que cela serait une faute. Une équipe doit être hétérogène en caractère. Pourquoi se couper du dynamisme des développeurs juniors, de la facilité avec laquelle ils manient les dernières technologies et de leur passion encore verte pour la programmation ?</p></blockquote><p>Après une longue pause, l&#8217;avocat fixe chaque membre du jury tour à tour, et conclut :</p><blockquote><p>Nous voyons bien qu&#8217;en réalité une équipe est constituée de profils différents et hétérogènes en compétence. Il nous faut donc une pratique commune de développement qui nous assure que Mr Guru et son collègue, plus junior, écrivent leur code d&#8217;une manière uniforme et testée sans porter atteinte à leur créativité.</p></blockquote><p>Dans la salle, quelques personnes opinèrent du chef. Sûrement des développeurs!</p><h3><a
name="MrsClickaway"></a>Mrs Clickaway</h3><p>L&#8217;avocat se rapproche de quelques pas du jury tout en désignant de la main la jeune femme assise au milieu du banc des accusés.</p><blockquote><p>Maintenant le cas touchant de Mrs Clickaway. Mrs Clickaway est bien intentionnée. Elle veut savoir si son code fonctionne. Pour cela elle adopte un cycle rapide d&#8217;écriture de code, et de déploiement de son application dans son environnement local. Pour tester, elle clique et re-clique jusqu&#8217;à ce qui lui semble avoir parcouru tous les recoins des fonctionnalités qu&#8217;elle a implémentées. Pourtant, Mrs Clickaway utilise très mal son temps de développement. Pour les plus techniciens d&#8217;entre vous, je dirais qu&#8217;elle oscille entre stacktrace, long démarrage de serveur et debuging en tous genres !</p><p>En effet, alors qu&#8217;elle aurait l&#8217;opportunité d&#8217;écrire son code tout en l&#8217;introspectant, grâce aux trés bonnes librairies logicielles mises à disposition aujourd&#8217;hui, elle choisit de tester en mode boite noire. Pour les profanes dans la salle, le mode boîte noire est une série de tests qui se fait à un haut niveau de l&#8217;application sans se préoccuper réellement de la structure et du fonctionnement interne.</p><p>Je reproche donc à Mrs Clickaway de ne pas se concentrer sur son coeur de métier qui est la production d&#8217;un code propre et fiable. Pour être franc, je pense que Mrs Clickaway n&#8217;est jamais sûre de ce qu&#8217;elle écrit et qu&#8217;elle veut se donner bonne conscience avant de livrer son code à l&#8217;exploitation.</p><p>Je vous le dis, ne pas choisir l&#8217;introspection, c&#8217;est ne pas choisir de réfléchir sur ce que l&#8217;on produit et c&#8217;est ne pas choisir l&#8217;amélioration de son propre code. Mesdames et Messieurs les jurés, vous m&#8217;accorderez que c&#8217;est un peu surprenant et relève d&#8217;un comportement irresponsable pour un développeur.</p></blockquote><p>Sur le banc des accusés Mrs Clickaway semble anéantie et confuse par cette série d&#8217;accusations.</p><h3><a
name="MrTestafter"></a>Mr Testafter</h3><blockquote><p>Passons maintenant à mon cas favori. Mr Testafter.</p><p>Mr Testafter est sur la voie de la rédemption, seulement il a pris à gauche alors qu&#8217;il fallait prendre à droite ! Que je vous explique. Mr Testafter a bien compris qu&#8217;il fallait tester son code. Cependant, il écrit les tests après avoir écrit ce fameux code de production. Normal vous me direz. Eh bien non ! Cela pose plusieurs problèmes:</p><p>Comme tous les développeurs, Mr Testafter passe beaucoup de temps à écrire son code. Quand il en a enfin fini, c&#8217;est un soupir de soulagement avec une pause café bien méritée. Enfin jusqu&#8217;à ce qu&#8217;il réalise qu&#8217;il n&#8217;a écrit aucun test ! Pour ne rien arranger, il a déjà indiqué fièrement à son manager que son travail était fini. Qu&#8217;à cela ne tienne, il va ajouter rapidement les tests, parce qu&#8217;après tout, il n&#8217;a pas que ça à faire.</p><p>C&#8217;est à ce moment qu&#8217;il doit faire un effort non négligeable: se remémorer les spécifications, imaginer des cas d&#8217;utilisations pour finalement&#8230; relire son code afin de savoir quoi tester !</p></blockquote><p>L&#8217;avocat lance un regard vers Mr Testafter sur le banc des accusés. Ce dernier fixe le plafond.</p><blockquote><p>Idéalement, s&#8217;il veut que ses tests soient utiles, c&#8217;est-à-dire compréhensibles par un autre développeur, clairs, découpés en spécifications et couvrant toutes les fonctionnalités, il doit reprendre sa réflexion à zéro.</p><p>Cependant, Mr Testafter à ce moment précis est pressé. Il n&#8217;adoptera pas une démarche d&#8217;écriture &laquo;&nbsp;fonctionnalité par fonctionnalité&nbsp;&raquo;. Plus grave, il ne pensera pas aux effets de bord, car puisque son code est déjà écrit, il est censé fonctionner ! Summum du contre-sens, pour les praticiens du TDD dans la salle, Mr Testafter ne passe pas par la phase d&#8217;un test qui échoue. En réalité, Mr Testafter ne voit aucun test échouer ! Bizarre pour quelqu&#8217;un qui veut savoir si son code fonctionne.</p><p>Une fois les tests ajoutés, laissez-moi vous décrire le résultat, cela se vérifie presque à chaque fois. Il y a toujours plus de code généré qu&#8217;il n&#8217;en faut et le code contient de la duplication. Mr Testafter n&#8217;est pas dans une optique de code minimal pourtant si importante dans les énormes bases de code d&#8217;aujourd&#8217;hui. Les tests sont désordonnés, ne sont pas organisés en terme de fonctionnalités et contiennent eux aussi de la duplication.</p><p>Invariablement aussi, une fois les tests ajoutés, le code restera tel qu&#8217;il a été écrit à l&#8217;origine. Pas d&#8217;optimisation, de minimalisation ou de recherche d&#8217;expressivité du code. Le plus grave cependant est d&#8217;obtenir ce que l&#8217;on appelle un effet gruyère sur la classe testée: des bouts de code resteront non testés. Pour ceux qui me suivraient encore dans l&#8217;assistance, je ne vous conseille pas de refactorer du gruyère !</p></blockquote><p>Sur cette dernière phrase, l&#8217;audience se partage entre face crédules et sourires.</p><h3><a
name="MrTeddVersuncodeagile"></a>Mr Tedd &#8211; Vers un code agile</h3><p>Il est l&#8217;heure maintenant pour Mr Darrow de défendre son client. Il tient à expliquer aux jurées les principes fondamentaux sur lesquelles repose la méthode que son client Mr Tedd utilise. Il enchaine alors :</p><blockquote><p>A travers les différents profils que je vous ai présenté, nous avons pu voir les insuffisances de certaines techniques de développement.</p><p>Laissez-moi donc maintenant vous résumer la manière d&#8217;écrire du code applicatif la plus à même à répondre à la problématique de tolérance au changement du monde du logiciel. C&#8217;est celle que pratique mon client. C&#8217;est le Test Driven Development. Cette méthodologie se résume avec la phrase suivante :</p><p><strong><em>Tout code de production a été écrit pour faire passer un test qui au départ échouait.</em></strong></p><p>Ce postulat pour certains peut sembler abstrait, cependant il se met en pratique tous les jours avec succès. Laissez-moi maintenant énumérer les corollaires directs de ce postulat.</p></blockquote><p>Dans la salle on aurait pu entendre une mouche voler. L&#8217;avocat commence à énoncer :</p><blockquote><p>Tout code de production est donc testé. Il n&#8217;y a pas plus de code que de fonctionnalités voulues et votre base de code est donc minimale. Toute fonctionnalité étant couverte par un test, vous savez instantanément lorsqu&#8217;un test échoue qu&#8217;une fonctionnalité n&#8217;est plus respectée et vous pouvez prendre aussitôt les mesures appropriées.</p><p>Ce code, proprement testé, vous pouvez le simplifier, l&#8217;améliorer et le nettoyer sans risque. C&#8217;est ce que l&#8217;on appelle le refactoring. Votre code devient par conséquent malléable, flexible et donc agile. C&#8217;est le moyen d&#8217;éviter que votre code ne s&#8217;effondre sous son propre poids !</p></blockquote><p>L&#8217;avocat continue :</p><blockquote><p>Mesdames et Messieurs les jurés, je vous le demande : Pour ceux qui connaissent le monde du logiciel, quel est le mot le plus important dans l&#8217;agilité?</p></blockquote><p>Au vu des visages dubitatifs du public, et de cette femme âgée assise au premier rang qui avait commencé à tricoter, Maître Darrow comprit qu&#8217;il aurait à apporter lui-même la réponse.</p><blockquote><p><strong>Le Feedback</strong> ﻿﻿! Voilà le concept le plus important à mettre en place. Le <em>Test Driven Development</em> vous permet de mettre en place la plus petite boucle de feedback du monde agile. Instantanément vous savez si votre code répond à vos exigences.</p></blockquote><p>Alors que Mr Darrow est au beau milieu de la défense de son client, le président Mr Beck, avec un geste d&#8217;impatience de la main, déclare :</p><blockquote><p>Merci Mr Darrow. Cependant, avant que vous poursuiviez, l&#8217;avocat de la partie civile souhaite interroger maintenant votre client Mr Tedd. Et exceptionnellement, je ly&#8217;autorise.</p></blockquote><p>Mr Darrow ne peut qu&#8217;abdiquer et Mr Tedd se dirige alors vers la barre pour être interrogé. C&#8217;est alors qu&#8217;un petit homme au front suintant, très agité, s&#8217;avance au centre. C&#8217;est Mr Pascal, l&#8217;avocat de la partie civile. Le contre interrogatoire peut commencer.</p><p><em>La suite du procès dans un prochain article.</em></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/04/15/lavocat-du-tdd/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>Animez vos rétrospectives &#8211; Première partie</title><link>http://blog.xebia.fr/2010/12/23/animez-vos-retrospectives-partie-1/</link> <comments>http://blog.xebia.fr/2010/12/23/animez-vos-retrospectives-partie-1/#comments</comments> <pubDate>Thu, 23 Dec 2010 15:59:03 +0000</pubDate> <dc:creator>David Galichet</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Lean]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6342</guid> <description><![CDATA[La rétrospective est l’une des cérémonies préconisées dans les méthodologies de développement agile. Son rôle est de permettre aux équipes de développement, et aux individus qui la composent, de continuellement s’améliorer. Les rétrospectives pourront ainsi aider les équipes à améliorer leur productivité mais aussi les compétences de ses membres ou encore la qualité de ce [...]]]></description> <content:encoded><![CDATA[<p>La rétrospective est l’une des cérémonies préconisées dans les méthodologies de développement agile. Son rôle est de permettre aux équipes de développement, et aux individus qui la composent, de continuellement s’améliorer.</p><p>Les rétrospectives pourront ainsi aider les équipes à améliorer leur productivité mais aussi les compétences de ses membres ou encore la qualité de ce que l&#8217;équipe produit. Leur but va donc bien au delà d’une analyse <em>post-mortem</em> d’une itération de développement de laquelle découlerait une amélioration des processus de développement.</p><p>Dans cet article, nous allons vous donner quelques clés pour vous aider à comprendre les enjeux et à mieux piloter vos rétrospectives.</p><h3><a
name="LoriginedesrtrospectivesleKaiz"></a>L&#8217;origine des rétrospectives : le Kaizen ou la pratique Lean de l&#8217;amélioration continue</h3><p>La rétrospective telle que nous la connaissons dans les méthodologies de développement agile tire son inspiration dans le milieu industriel et plus particulièrement automobile avec l&#8217;outil nommé <a
href="http://fr.wikipedia.org/wiki/Kaizen" title="Kaizen" >Kaizen</a> venant du Japon et faisant partie de l&#8217;outillage de la méthodologie <a
href="http://fr.wikipedia.org/wiki/Lean" title="Lean">Lean</a>. Le <em>Kaizen</em>, littéralement « changement bon » est une méthodologie d&#8217;amélioration continue dont Toyota fut l&#8217;un des précurseurs.</p><p>Le <em>Kaizen</em> repose sur différents principes :</p><ul><li>tenter d&#8217;améliorer chaque règle de travail (<em>working agreements</em>),</li><li>développer les compétences et l&#8217;implication de toute l&#8217;équipe,</li><li>se focaliser sur la cause racine des problèmes,</li><li>améliorer les processus afin de gagner en productivité.</li></ul><p>Cette démarche de développement continu introduit le changement de manière graduelle et ne repose donc pas sur des réformes complètes et brutales du système du type «<em>on efface tout et on recommence</em>». Dans cette démarche, chaque travailleur est impliqué et est force de proposition pour améliorer sa manière de travailler.</p><p>Les méthodes agiles ont repris ce principe pour l&#8217;intégrer au sein du cycle de développement. Dans la méthodologie agile <a
href="http://fr.wikipedia.org/wiki/Scrum_%28m%C3%A9thode%29" title="Scrum" >Scrum</a> par exemple, une itération de développement, est constituée de différentes cérémonies :</p><ul><li>une session d&#8217;estimation en début d&#8217;itération,</li><li>un <em>stand up meeting</em> chaque jour,</li><li>une démonstration des fonctionnalités développées,</li><li>une rétrospective.</li></ul><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/12/ScrumCycle.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/ScrumCycle.png" alt="ScrumCycle" title="ScrumCycle" width="247" height="291" class="aligncenter size-full wp-image-6344" /></a></div><p>La rétrospective est donc une partie intégrante du cycle de développement, et du travail de l&#8217;équipe.</p><h3><a
name="Pourquoimettreenplaceunedmarch"></a>Pourquoi mettre en place une démarche d&#8217;amélioration continue ?</h3><p>Nous vivons dans un monde où les besoins de nos clients, les technologies ou encore la concurrence évoluent en permanence. Dans ce contexte, il est donc nécessaire de faire évoluer nos méthodes de travail afin de rester en phase avec les attentes du marché.</p><p>De plus, le fonctionnement d&#8217;une équipe est rarement parfait, il peut exister des tensions, des malaises, des regrets et d&#8217;autres sources de démotivation que les rétrospectives peuvent aider à découvrir et à traiter. La motivation d&#8217;une équipe est effectivement quelque chose qui s&#8217;entretient en supprimant les causes de démotivation, et non en essayant de motiver coûte que coûte en faisant fi des problèmes.</p><p>Différents axes de progression sont possibles lorsque l’on cherche à améliorer le fonctionnement d&#8217;une équipe de développement comme par exemple :</p><ul><li>la productivité de l’équipe,</li><li>les compétences et les connaissances de chacun,</li><li>la cohésion de l&#8217;équipe et la collaboration de ses membres,</li><li>la communication interne ou externe,</li><li>la qualité de ce qui est produit,</li><li>l&#8217;intérêt et la motivation des collaborateurs,</li><li>les règles de travail (<em>working agreements</em>),</li><li>etc.</li></ul><p>Cette liste est loin d&#8217;être exhaustive et bien d&#8217;autres axes de progression peuvent être abordés au cours des rétrospectives.</p><p>Les rétrospectives permettent d’explorer différents axes de progression et permettent aux équipes de s’accomplir au mieux dans chacun d’eux. Avant de continuer, nous allons nous intéresser à la manière dont l&#8217;un de ces axes pourrait être abordé et ce qui pourrait en découler.</p><h4><a
name="Lamliorationdelaproductivitdel"></a>L&#8217;amélioration de la productivité de l’équipe</h4><p>Avec l’évolution actuelle des méthodes de développement, qui portées par des mouvements tels que le <em>Craftsmanship</em> tendent à nous orienter vers une culture du travail bien fait, la recherche de la productivité pourrait être perçue comme allant à contre courant. Bien évidemment il n&#8217;en est rien si on part du principe que cette recherche de productivité ne va pas à l&#8217;encontre de la qualité et si elle s&#8217;inscrit dans la durée. En effet, une mauvaise productivité peut être le signe de nombreux problèmes que les rétrospectives peuvent aider à mettre en exergue et à résoudre.</p><p>Pour commencer, qu&#8217;appelle-t-on « <em>mauvaise productivité</em> » et qu&#8217;est ce qu&#8217;une « <em>bonne productivité</em> » ? Ces notions sont particulièrement subjectives et il est difficile d&#8217;établir une règle permettant de les définir. Nous recommandons donc de s&#8217;attacher à étudier l&#8217;évolution de la <em>vélocité</em> de l&#8217;équipe de développement plutôt que sa valeur absolue. Cette notion de <em>vélocité</em> est utilisée dans des méthodes de développement agile comme <em>Scrum</em>. Elle représente la somme de travail effectuée sur des tâches terminées (selon la <a
href="http://www.scrumalliance.org/articles/105-what-is-definition-of-done-dod" title="Definition of Done" >Definition of Done</a> de l&#8217;équipe).<br
/> Une évolution à la hausse de cette vélocité peut indiquer une prise de maturité de l&#8217;équipe par rapport au projet, un projet sain etc.<br
/> En revanche, une évolution à la baisse pourra soulever des problèmes de qualité (probablement dûs à une dette technique élevée), des conflits au sein de l&#8217;équipe, des problèmes d&#8217;organisation, etc.</p><p>L&#8217;étude de cette évolution devra se faire sur plusieurs itérations afin de permettre à l&#8217;équipe d&#8217;en tirer des conclusions pertinentes. En effet, une vélocité en dents de scie pourrait par exemple mettre en avant des développements rapides mais de piètre qualité, suivis d&#8217;itérations où l&#8217;équipe corrige les anomalies qui en découlent.</p><p>Une fois les problèmes détectés et les causes analysées, l&#8217;équipe cherchera des idées afin d&#8217;y remédier et mettra en place des actions permettant d&#8217;améliorer la productivité. Nous verrons dans la suite de cet article les méthodes permettant de conduire cette réflexion et d&#8217;établir les actions à entreprendre.</p><h3><a
name="Pourquoinepassecontenterdappli"></a>Pourquoi ne pas se contenter d&#8217;appliquer les « bonnes pratiques » ?</h3><p>Dans le but de rester performant et concurrentiel, pourquoi ne pas se contenter d&#8217;un peu de veille et d&#8217;appliquer les différentes pratiques reconnues comme efficaces et développées par les experts des méthodologies de développement ?</p><p>Premièrement, il existe un nombre très important de bonnes pratiques et il est impossible de toutes les appliquer. De plus, les méthodologies n&#8217;étant pas toujours compatibles entre elles, nous nous retrouverions souvent à devoir faire un choix cornéliens entre telle ou telle méthodologie. Enfin, ces méthodologies elles même évoluent en permanence et nous incitent par la même occasion à faire de même, nous plongeant dans une spirale sans fin d&#8217;adoption de nouvelles méthodes de travail à appliquer « <em>by the book</em> ».<br
/> Une approche plus pragmatique est donc conseillée. Elle consiste à essayer et adapter tout ou une partie de ces méthodes, en réponse à un besoin ou à un problème. Ce dernier point est particulièrement important, les réponses apportées par une méthodologie doivent effectivement découler d&#8217;un problème levé par l&#8217;équipe de développement. Il n&#8217;est donc pas nécessaire d&#8217;apporter une réponse (nouvelle méthodologie) s&#8217;il n&#8217;y a pas de problème.</p><p>Deuxièmement, les équipes de développement sont différentes les unes des autres. Les personnes qui les constituent, le contexte du projet, les technologies employées, la culture de l&#8217;entreprise etc. sont autant de paramètres à prendre en compte dans le choix d&#8217;une méthodologie plutôt qu&#8217;une autre. Il est donc impératif que l&#8217;adoption d&#8217;une méthodologie soit unanime et non imposée. Prenons l&#8217;exemple du <em>pair programming</em>, cette méthodologie qui consiste à développer en binôme est assez peu répandue malgré ses vertus. Son adoption est souvent difficile pour plusieurs raisons : incompréhension de la direction, acceptation nécessaire du regard critique de son binôme sur notre manière de développer, adoption d&#8217;un rythme différent, etc. Sans un engagement complet de l&#8217;équipe, il ne sera pas possible de mettre en œuvre ce genre de méthodologie. Si les membres de l&#8217;équipe n&#8217;y adhèrent pas, il sera difficile de la mettre en place.</p><p>Devant l&#8217;opulence des méthodologies et les différences entre les équipes de développement, il est nécessaire de continuellement adapter nos méthodes de travail et d&#8217;en expérimenter de nouvelles. C&#8217;est précisément le but des rétrospectives, que nous allons étudier dans la suite de ce document.</p><h3><a
name="Leprincipeinspecteretadapter"></a>Le principe « inspecter et adapter »</h3><p>L&#8217;amélioration continue fait appel à la rétrospective comme outil d&#8217;analyse et de prise de décision. Elle repose globalement sur les phases suivantes :</p><ul><li>identification des problèmes,</li><li>détermination des causes d&#8217;origine ( <em>root cause analysis</em> ),</li><li>définition des actions à entreprendre pour remédier à la cause racine.</li></ul><p>Cette méthodologie nécessite une importante dose de courage afin d&#8217;aborder les problèmes et leurs causes racines. Il peut en effet être éprouvant d&#8217;effectuer cet exercice &#8211; qui est malgré tout nécessaire &#8211; car si les problèmes de fond ne sont pas abordés, l&#8217;équipe est condamnée à ne plus progresser.<br
/> Cette constatation rejoint le paradoxe de <a
href="http://rebondir.typepad.fr/rebondir/2009/05/le-paradoxe-de-stockdale-%C3%A0-relire-et-relire-quand-le-moral-est-en-berne.html" title="Stockdale" >Stockdale</a> qui peut être défini de la manière suivante :<br
/> « <em>Nous devons croire en nos capacités à réussir</em> » et en même temps « <em>être capable de se confronter à la plus brutale des réalités, quelle qu&#8217;elle soit</em> ».</p><p>La démarche d&#8217;amélioration continue nécessite donc que les problèmes ne soient pas « <em>cachés sous le tapis</em> » mais bien au contraire, exposés au grand jour afin de trouver leur origine et les actions à entreprendre afin de les régler.</p><h3><a
name="Lesworkingagreements"></a>Les working agreements</h3><p>Un peu plus tôt dans cet article, nous avons parlé des règles de travail ou <em>working agreements</em> et nous allons maintenant les définir.</p><p>Les <em>working agreements</em> sont des valeurs et accords érigés par l&#8217;équipe de développement. Ils appartiennent à l’équipe et ont pour rôle de responsabiliser chaque membre. Certains accords définissent des interactions et processus entre les différents acteurs du projet dans le but d’optimiser l’efficacité de l’équipe. Ces <em>working agreements</em> se développent et s’ajustent au fil du temps. Afin que tout le monde les ait en tête, on peut les afficher sur un tableau à la vue de tous.</p><p>Voici quelques exemples de valeurs : <strong>qualité, simplicité, travail d’équipe, courage.</strong> Ou encore quelques exemples de règles: <strong>heure et lieu du <a
href="http://en.wikipedia.org/wiki/Stand-up_meeting" title="standup meeting" >stand-up meeting</a>, définition d’une* user story “done”, disponibilité du product owner, etc</strong>. Il peut être utile, voir nécessaire de définir des <em>workings agrements</em> dans le cadre d’une rétrospective lorsque l’équipe manque de discipline.</p><h3><a
name="Structuredunertrospective"></a>Structure d&#8217;une rétrospective</h3><p>La rétrospective fait partie intégrante du cycle de développement. Elle se déroule à la fin de chaque sprint ( ou itération). Au démarrage de la rétrospective, l&#8217;animateur définit l’agenda, les enjeux et les objectifs de la rétrospective, et peut être amené à rappeler les <em>working agreements</em>. Le début de la réunion peut aussi être propice pour faire une petite synthèse du dernier sprint et remercier l&#8217;équipe pour ses efforts.</p><p>Basées sur le principe <em>Inspect and Adapt</em> présenté précedemment, les rétrospectives sont structurées en cinq étapes amenant l’équipe à identifier les problèmes et dysfonctionnements et à trouver des solutions afin d&#8217;améliorer le processus de développement. La rétrospective est une réunion timeboxée, la gestion du temps est très importante.<br
/> Ci-dessous, vous pouvez observer les cinq étapes d’une rétrospective, ainsi qu’un pourcentage de répartition de chacune sur la durée totale de la réunion:</p><ul><li><em>définir la réunion (5%)</em> : définir l’agenda, les enjeux et les objectifs de la rétrospective, et rappeler les <em>working agreements</em> si nécessaire,</li><li><em>collecter les données (30-50%)</em> : créer une vision globale et partagée de tous,</li><li><em>trouver des idées (20-30%)</em> : identifier les forces et les faiblesses, analyser les causes et trouver des solutions,</li><li><em>décider des actions à mener (15-20%)</em> : sélectionner quelques actions à mener aux prochains sprints,</li><li><em>conclure la rétrospective (10%)</em> : dé-briefer sur la réunion, noter les décisions et remercier les participants.</li></ul><p>Par ailleurs, il peut être utile de garder du temps (5-10%) en réserve pour se prémunir des débordements.</p><p>L’organisation spatiale de la salle de réunion est aussi une donnée à ne pas négliger. En effet, une barrière physique peut rapidement devenir une barrière mentale. Éviter les salles de type &laquo;&nbsp;théâtre” et privilégier un espace circulaire ou semi-circulaire pour que tout le monde puisse se voir et communiquer facilement.</p><h3><a
name="Lesactivits"></a>Les activités</h3><p>A chaque étape d’une rétrospective sont associées des activités. Armé de papiers, de crayons, et de post-its, l’équipe travaille et réfléchit dans un cadre ludique et studieux. Selon la taille de l’équipe, et afin de favoriser la participation de tous, des sous-groupes peuvent être formés temporairement pendant la réalisation d’une activité. D’autre part, les activités sont sensées permettre d’apporter de nouvelles perspectives et un cadre pour aider les participants à réfléchir ensemble. Il peut y avoir plusieurs activités par étape.</p><p>Les activités sont étudiées pour répondre aux principes <em>ARCS</em> :</p><ul><li><em>Attention</em> : Garder la concentration des participants,</li><li><em>Relevant</em> : Pertinent par rapport aux objectifs,</li><li><em>Competence</em> : Tous les participants peuvent accomplir les tâches,</li><li><em>Satisfaction</em> : Ne pas avoir le sentiment d’avoir perdu son temps.</li></ul><p>Un prochain article présentera de manière plus détaillée chacune des étapes d’une rétrospective, et nous verrons aussi des exemples d’activités.</p><h3><a
name="Lesrlesduretrospectiveleader"></a>Les rôles du retrospective leader</h3><p>L’animateur de la rétrospective (ou <em>retrospective leader</em>) n’est pas nécessairement le <em>Scrum Master</em>. Ce rôle peut tourner entre les différents membres de l’équipe.</p><h4><a
name="Prparerlartrospective"></a>Préparer la rétrospective</h4><p>La première fonction du leader est de préparer la rétrospective. Pour deux heures de réunion, il faut parfois compter la même durée pour la préparation. Il définit alors les activités de la rétrospective en fonction de divers paramètres comme la taille de l’équipe, la complexité du projet, et choisit les activités. Pour se prémunir des débordements durant la réunion, une astuce est de sélectionner en seconde option des activités plus courtes.</p><h4><a
name="Animerlegroupedetravail"></a>Animer le groupe de travail</h4><p>La seconde fonction du leader est d’animer la réunion. Tout d’abord, il contrôle le temps passé sur chaque activité. Cette tâche peut aussi être déléguée à un autre participant. Par ailleurs, il est le garant des <em>Working Agreements</em> et s’attache à les faire respecter par tous.<br
/> Avant de commencer une activité, l’animateur présente son déroulement et rappelle les objectifs de celle-ci (exemple: collecter un ensemble de données réparties sur une période afin d’obtenir une vision partagée par tous). Pendant l’activité, il répond aux questions et observe attentivement le niveau de participation. Il peut aussi être amené à recadrer l’activité en cas de débordement.</p><h4><a
name="Lefacilitateur"></a>Le facilitateur</h4><p>En tant qu’animateur d’un groupe de travail, le leader a aussi un rôle de facilitateur. Le facilitateur est une personne neutre qui ne prend pas parti, et n’expose pas son point de vue durant la réunion. Il met en place des méthodes pour aider le groupe à travailler efficacement. Pour parvenir à cela, il encourage la participation de tous, favorise la compréhension mutuelle et cultive la notion de responsabilité partagée.</p><h3><a
name="Lartdegrerlefacteurhumain"></a>L’art de gérer le « facteur humain »</h3><p>Les individus d’une équipe en tant qu&#8217;êtres humains ont des émotions et sentiments. Les rétrospectives exposent un certain nombre de problèmes d’origines variées. Elles sont parfois sources de tensions et de conflits au sein de l’équipe. Chaque individu étant unique, celui-ci réagira différemment à une situation donnée. La manière de gérer les rapports humains et la communication avec les autres sont des enjeux importants pour que la réunion apporte une réelle valeur à l’équipe et au projet. On comprend alors la nécessité pour l’animateur de faire preuve d’empathie, d&#8217;avoir un sens de l’observation, et une certaine maîtrise de soi.<br
/> Son rôle consiste alors à désamorcer les tensions et attaques directes, qui n’apportent rien aux problèmes de fond. Il peut aussi amener les individus à exprimer leurs émotions de manière subtile, afin de libérer en eux des ressentiments inexprimés. Par exemple, au lieu d’employer la question directe à un membre: « <em>Qu’as-tu ressenti durant ce dernier sprint ?</em> », utiliser plutôt celle-ci: « <em>Quels sont les moments importants qui t’ont le plus marqué négativement et positivement ?</em> ». Bien sur l&#8217;animateur n&#8217;est pas responsable des émotions de chacun. Il ne peut pas les contrôler, mais il doit faire en sorte que la réunion reste productive.<br
/> Par ailleurs, il peut s&#8217;appuyer avec parcimonie sur des méthodes et techniques psychologiques. Sans rentrer dans le détail de cette science, voici deux exemples pour illustrer notre propos.</p><h4><a
name="LelangageJeIl"></a>Le langage <em>Je/Il</em></h4><p>Version <em>Il</em>: <em>&laquo;&nbsp;Julien n&#8217;a pas arrêté de casser le build !&nbsp;&raquo;</em><br
/> Version <em>Je</em>: <em>&laquo;&nbsp;J&#8217;avais peur que nous rations notre objectif, car nous avons eu beaucoup de build cassés.&nbsp;&raquo;</em><br
/> Encourager l&#8217;emploie du pronom &laquo;&nbsp;Je&nbsp;&raquo; plutôt que &laquo;&nbsp;Il&nbsp;&raquo;. En effet, le &laquo;&nbsp;Je&nbsp;&raquo; centre le débat sur l&#8217;observation et l&#8217;expérience de l&#8217;intervenant, plutôt que de blâmer une personne. Lorsque quelqu&#8217;un critique ou attaque personnellement une autre personne, il faut intervenir et recadrer la discussion sur le contenu, afin de découvrir les causes réelles d&#8217;un problème.</p><h4><a
name="LetriangledeKarpman"></a>Le triangle de Karpman</h4><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/12/Karpman.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/Karpman.png" alt="Karpman" title="Karpman" width="278" height="185" class="aligncenter size-full wp-image-6343" /></a></div><p><a
href="http://fr.wikipedia.org/wiki/Triangle_dramatique" title="Le triangle de Karpman" >Le triangle de Karpman</a> représente trois rôles: La victime, le persécuteur, et le sauveteur.<br
/> C&#8217;est un modèle qui tend à exprimer, que si une personne utilise un de ces rôles (par exemple la victime), elle entraîne l&#8217;autre à jouer un rôle complémentaire (le Sauveur ou le Persécuteur). Il peut aider à comprendre les mécanismes ayant généré un conflit. Ainsi, L&#8217;animateur avisé pourra éviter de rentrer dans le rôle du sauveteur, chose qui arrive bien souvent quand un membre s&#8217;en prend à un autre.</p><h3><a
name="Conclusion"></a>Conclusion</h3><p>Dans ce premier article, nous avons introduit ce que sont les rétrospectives et leur utilité. Nous avons vu que les rétrospectives s&#8217;inscrivent dans une démarche d&#8217;amélioration continue. Elles permettent aux équipes et aux membres qui les composent de progresser et de mieux collaborer.<br
/> Nous avons aussi vu que les rétrospectives s&#8217;articulent autour du principe <em>Inspect and Adapt</em> qui nous force à réaliser une analyse en profondeur des problèmes avant de leur apporter des solutions.</p><p>Ces rétrospectives sont animées par un <em>Leader</em> ayant pour rôle de faire en sorte que le temps investi dans la rétrospective soit rentabilisé au mieux (ceci commence par le respect du temps imparti). Le <em>retrospective leader</em> est aussi responsable du choix des activités et du bon déroulement de la séance de travail.</p><p>Dans le prochain article, nous détaillerons les différentes phases des rétrospectives et nous vous proposerons quelques activités inspirées du livre d&#8217;Esther Derby et de Diana Larsen, <a
href="http://pragprog.com/titles/dlret/agile-retrospectives" title="Agile Retrospectives Making Good Teams Great" >Agile Retrospectives: Making Good Teams Great</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/23/animez-vos-retrospectives-partie-1/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Xebia donnera 3 présentations lors de la conférence Agile 2010</title><link>http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/</link> <comments>http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/#comments</comments> <pubDate>Thu, 17 Jun 2010 10:36:45 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4910</guid> <description><![CDATA[Agile 2010 est la principale conférence internationale sur les méthodes agiles dans le développement logiciel. Elle se tiendra du 9 au 13 août 2010 à Orlando en Floride. La conférence Agile 2010 réunit de nombreuses disciplines dans les domaines des Systèmes d&#8217;Information et du développement logiciel. Elle crée ainsi des ponts entre des communautés qui [...]]]></description> <content:encoded><![CDATA[<div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/06/agile2010.png" border="0" alt="" /></div><p><a
href="http://agile2010.agilealliance.org/" title="Agile 2010" >Agile 2010</a> est la principale conférence internationale sur les méthodes agiles dans le développement logiciel. Elle se tiendra du 9 au 13 août 2010 à Orlando en Floride.<br
/> La <a
href="http://agile2010.agilealliance.org/" title="confrence Agile 2010" >conférence Agile 2010</a> réunit de nombreuses disciplines dans les domaines des Systèmes d&#8217;Information et du développement logiciel. Elle crée ainsi des ponts entre des communautés qui ont rarement l&#8217;occasion d&#8217;échanger autour de leurs idées.</p><p>Lors de l&#8217;édition 2010, 3 Xebians auront le plaisir d&#8217;être sur scène pour vous faire partager leurs expériences et leur vision :</p><ul><li><a
href="http://blog.xebia.com/author/gschoonheim/" title="Guido Schoonheim" >Guido Schoonheim</a> <em>(CTO du groupe Xebia)</em> présentera une session intitulée <em><a
href="http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/#MindtheGapPrinciplesofhyperpro">&laquo;&nbsp;Mind the Gap! Principles of hyperproductive fully distributed Scrum&nbsp;&raquo;</a></em>.</li><li><a
href="http://maurits.wordpress.com/" title="Maurits Rijk" >Maurits Rijk</a> <em>(Consultant senior chez Xebia)</em> présentera une session intitulée <em><a
href="http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/#Agraphicalapproachtoimprovethe">&laquo;&nbsp;A graphical approach to improve the cost/benefit ratio of user stories&nbsp;&raquo;</a></em>.</li><li><a
href="http://blog.xebia.com/category/xebialabs/" title="Wilco Koorn" >Wilco Koorn</a> <em>(Scrum Master et Team Member chez XebiaLabs)</em> présentera une session intitulée <em><a
href="http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/#UnleashtheAgilepowerbridgetheG">&laquo;&nbsp;Unleash the Agile power: bridge the Gap between Development and Operations&nbsp;&raquo;</a></em>.</li></ul><h3><a
name="MindtheGapPrinciplesofhyperpro"></a>Mind the Gap! Principles of hyperproductive fully distributed Scrum</h3><ul><li><strong>Presenter</strong>: Guido Schoonheim (CTO of Xebia Group)</li><li><strong>Level</strong>: Practicing</li><li><strong>Presentation</strong>: The author and Jeff Sutherland previously showed (at Agile2008,2009) Scrum teams using XP practices achieved distributed velocity equal to local velocity with multiple distributed teams. This was shown under extreme timezones and at large scale development. The authors have formalized the principles &#038; practices that are the foundation for hyperproductive fully distributed Scrum. This framework has been published as <a
href="http://www.xebia.com/publications/fully-distributed-scrum-secret-sauce-hyperproductive-offshored-development-teams" title="free ebook" >free e-book</a> and is the subject of this presentation. New experiences and figures on recent projects will be shared to illustrate the pitfalls and success points.</li></ul><h3><a
name="Agraphicalapproachtoimprovethe"></a>A graphical approach to improve the cost/benefit ratio of user stories</h3><ul><li><strong>Presenter</strong>: Maurits Rijk (Senior Consultant at Xebia)</li><li><strong>Level</strong>: Practicing</li><li><strong>Short summary</strong>: User stories are a great way to capture requirements and are successfully used in many projects. Every user story comes with a business value and a effort needed to implement the story, usually in software. Since there are almost always more requirements than budget (or any other limiting factor like time, available resources, etc) decisions have to be made on which stories to pick up in which order. Usually the stories are prioritized by the product owner and put on a textual product backlog. We will show how a graphical overview will stimulate the right side of our brains.</li></ul><h3><a
name="UnleashtheAgilepowerbridgetheG"></a>Unleash the Agile power: bridge the Gap between Development and Operations.</h3><ul><li><strong>Presenter</strong>: Wilco Koorn (Scrum Master and Team Member XebiaLabs)</li><li><strong>Level</strong>: expert</li><li><strong>Short summary</strong>: Enterprises traditionally distinct Development focusing on the creation of software and Operations focusing on the infrastructure. A natural gap between the two is caused by their key interest: change versus stability. Introducing Agile in Development confronts Operations with more work due to increased productivity and release frequencies. The power of Agile is not unleashed. A case study at KLM/Air France shows how this impediment was overcome and huge savings were achieved by implementing a self-service change control process for Development still under full control of Operations.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/06/17/xebia-donnera-3-presentations-lors-de-la-conference-agile-2010/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Catalogue Xebia Training</title><link>http://blog.xebia.fr/2010/02/24/catalogue-xebia-training/</link> <comments>http://blog.xebia.fr/2010/02/24/catalogue-xebia-training/#comments</comments> <pubDate>Wed, 24 Feb 2010 12:32:34 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Exploitation]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[eXtrem Programming]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4085</guid> <description><![CDATA[Nous sommes heureux de vous proposer le nouveau catalogue de formation Xebia Traning : Le catalogue numérique. Le catalogue PDF. Xebia Training se positionne logiquement dans la continuité de Xebia, tant sur la qualité de son offre de formation technique que méthodologique (méthodes agiles), en proposant des formations haut de gamme animées uniquement par les [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://flipflashpages.uniflip.com/2/26742/50371/pub/"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/02/xebia-training.png" style="margin: 1em 1em 1em 1em; float: right;" /></a><br
/> Nous sommes heureux de vous proposer le nouveau <a
href="http://flipflashpages.uniflip.com/2/26742/50371/pub/">catalogue de formation Xebia Traning</a> :</p><ul><li>Le <a
href="http://flipflashpages.uniflip.com/2/26742/50371/pub/">catalogue numérique</a>.</li><li>Le <a
href="http://training.xebia.fr/wp-content/uploads/catalogue%20des%20formations%202010-xebia-training.pdf">catalogue PDF</a>.</li></ul><p><a
href="http://training.xebia.fr">Xebia Training</a> se positionne logiquement dans la continuité de Xebia, tant sur la qualité de son offre de formation technique que méthodologique (méthodes agiles), en proposant des formations haut de gamme animées uniquement par les référents de leur domaine.</p><p>Avec pour principe premier le refus de tout compromis sur la qualité du formateur et du contenu, <a
href="http://training.xebia.fr">Xebia Training</a> fait systématiquement intervenir des acteurs de références dans leurs domaines respectifs.</p><p>Nos formations, savant équilibre entre théorie et travaux pratiques, sont destinées à un large public soucieux d’acquérir les meilleures pratiques de notre industrie.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/02/24/catalogue-xebia-training/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Agilité et offshore : le cas de Coach Club</title><link>http://blog.xebia.fr/2009/10/13/agilite-et-offshore-le-cas-de-coach-club/</link> <comments>http://blog.xebia.fr/2009/10/13/agilite-et-offshore-le-cas-de-coach-club/#comments</comments> <pubDate>Tue, 13 Oct 2009 13:46:09 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[ADDM]]></category> <category><![CDATA[Off-shoring]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2991</guid> <description><![CDATA[Comment créer dans des délais serrés un système d&#8217;information complet avec une promesse fonctionnelle ambitieuse ? &#171;&#160;En combinant agilité et offshore&#160;&#187;, nous répond Stéphane Coussement, directeur technique de Coach Club, site de vidéos sportives sur-mesure. Il répond aux questions de Cyril Dhénin sur TV4IT. Retour sur la démarche et premier bilan.]]></description> <content:encoded><![CDATA[<p>Comment créer dans des délais serrés un système d&#8217;information complet avec une promesse fonctionnelle ambitieuse ?</p><p><em>&laquo;&nbsp;En combinant agilité et offshore&nbsp;&raquo;</em>, nous répond Stéphane Coussement, directeur technique de <a
href="http://www.coachclub.com/">Coach Club, site de vidéos sportives sur-mesure</a>. Il répond aux questions de Cyril Dhénin sur <a
href="http://www.tv4it.net/agilite-et-offshore-2-le-cas-de-coach-club-permalink-10470.aspx">TV4IT</a>.</p><p><a
href="http://blog.xebia.fr/2009/09/01/la-preuve-par-lexemple/">Retour sur la démarche et premier bilan</a>.</p><div
align="center"> <embed
src="http://storage02.brainsonic.com/webtv/tv4itv2/player.swf?&#038;paramXml=http://configfile.brainsonic.com/webtv/tv4itv2/param_player.xml&#038;itemId=10470&#038;autostart=false&#038;mute=false&#038;rollover=true" quality="high" bgcolor="#000000" width="320" height="280" allowFullScreen="true" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/13/agilite-et-offshore-le-cas-de-coach-club/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>La preuve par l&#8217;exemple</title><link>http://blog.xebia.fr/2009/09/01/la-preuve-par-lexemple/</link> <comments>http://blog.xebia.fr/2009/09/01/la-preuve-par-lexemple/#comments</comments> <pubDate>Tue, 01 Sep 2009 07:41:01 +0000</pubDate> <dc:creator>Luc Legardeur</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Mot du président]]></category> <category><![CDATA[ADDM]]></category> <category><![CDATA[Off-shoring]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2744</guid> <description><![CDATA[Nous vous l&#8217;annoncions précédemment : Xebia propose maintenant, grâce à son modèle agile offshore distribué, un moyen de mener des projets à coûts très attractifs tout en respectant les règles de l&#8217;art de notre industrie. Notre client, CoachClub, premier site vidéo de Coaching Sportif personnalisé a accepté de témoigner ici sur son expérience du modèle [...]]]></description> <content:encoded><![CDATA[<p>Nous vous l&#8217;<a
href="http://blog.xebia.fr/2009/05/26/lancement-de-xebia-addm-en-france/">annoncions précédemment</a> : <a
href="http://www.xebia.fr/publications/développement-offshore-distribué-en-méthodes-agiles">Xebia propose maintenant, grâce à son modèle agile offshore distribué, un moyen de mener des projets à coûts très attractifs tout en respectant les règles de l&#8217;art de notre industrie</a>.</p><p>Notre client, <a
href="http://www.coachclub.com/">CoachClub</a>, premier site vidéo de Coaching Sportif personnalisé a accepté de témoigner ici sur son expérience du modèle <a
href="http://www.xebia.fr/sites/default/files/Xebia%20ADDM.pdf">Xebia ADDM <em>(Agile Distributed Delivery Model)</em></a>. Voici quelques unes des réactions que nous avons pu collecter émanant de la part du Management :</p><p><a
href="http://blog.xebia.fr/wp-content/uploads/2009/09/xebia-addm-coachclub.pdf"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/09/xebia-addm-coachclub.png" alt="Xebia ADDM CoachClub" title="Xebia ADDM CoachClub" style="margin: 1em 1em 1em 1em; float: left;" /></a></p><p>&nbsp;</p><p><em>&laquo;&nbsp;La maîtrise des technologies Java / J2EE et des architectures distribuées acquises par les consultants de Xebia était de ce point de vue un gage de réussite.<br
/> J&#8217;avais déjà pu expérimenter leur savoir faire quand j&#8217;étais Directeur Technique de voyages-sncf.com.&nbsp;&raquo;</em><br
/> <strong>Stéphane Coussement, DSI de CoachClub</strong></p><p><em>&laquo;&nbsp;Il est absolument nécessaire d&#8217;instaurer des relations de pair et non de client / fournisseur entre les membres français et indiens de l&#8217;équipe.&nbsp;&raquo;</em><br
/> <strong>Olvier Bergeret, Responsable des développements chez CoachClub</strong></p><p><em>&laquo;&nbsp;Les fonctionnalités attendues par le marketing de CoachClub peuvent évoluer très rapidement.<br
/> Seules les méthodes agiles nous garantissaient une réactivité suffisante.&nbsp;&raquo;</em><br
/> <strong>Aurélie Chomont Garbier, Directrice du Marketing de CoachClub</strong></p><p><em>&laquo;&nbsp;Nous avons choisi pour construire notre site Web, le modèle Agile Offshore de Xebia qui nous garantit un prix très compétitif, une approche de développement par la valeur, des délais courts et une très grande qualité de code applicatif.&nbsp;&raquo;</em><br
/> <strong>Thierry Pépin, Président de CoachClub</strong></p><p>&nbsp;</p><p><a
href="http://blog.xebia.fr/wp-content/uploads/2009/09/xebia-addm-coachclub.pdf">Télécharger le témoignage complet de CoachClub</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/09/01/la-preuve-par-lexemple/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Enquete Nationale Méthodes Agiles du French SUG</title><link>http://blog.xebia.fr/2009/07/06/enquete-nationale-methodes-agiles-du-french-sug/</link> <comments>http://blog.xebia.fr/2009/07/06/enquete-nationale-methodes-agiles-du-french-sug/#comments</comments> <pubDate>Mon, 06 Jul 2009 05:34:00 +0000</pubDate> <dc:creator>Luc Legardeur</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Mot du président]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2516</guid> <description><![CDATA[Le Scrum User Group France, organe affilié à la SCRUM ALLIANCE, a mené, pendant deux mois, une enquête nationale, ouverte à tous, par l’intermédiaire de son site (www.frenchsug.org) afin de collecter des données qualitatives et quantitatives sur l’adoption en France des méthodes agiles les plus utilisées par ceux qui ont décidé d’emprunter le chemin de [...]]]></description> <content:encoded><![CDATA[<div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/01/sa_usergroup_france_4001.jpg" border="0" alt="French Scrum User Group" title="French Scrum User Group" /></div><p>Le Scrum User Group France, organe affilié à la SCRUM ALLIANCE, a mené, pendant deux mois, une enquête nationale, ouverte à tous, par l’intermédiaire de son site (<a
href="http://www.spesend.net/SpeClicks.aspx?X=2R0T1UXHDX29QDXN01Y9WW">www.frenchsug.org</a>) afin de collecter des données qualitatives et quantitatives sur l’adoption en France des méthodes agiles les plus utilisées par ceux qui ont décidé d’emprunter le chemin de l’agilité.</p><p>Pour télécharger les résultats de cette enquête, suivez <a
href="http://www.spesend.net/SpeClicks.aspx?X=2R0T1UXHDX29QDXN02Y9WW">le lien suivant</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/07/06/enquete-nationale-methodes-agiles-du-french-sug/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Enquête du French Scrum User Group sur l&#8217;utilisation des méthodes agiles</title><link>http://blog.xebia.fr/2009/05/07/enquete-du-french-scrum-user-group-sur-lutilisation-des-methodes-agiles/</link> <comments>http://blog.xebia.fr/2009/05/07/enquete-du-french-scrum-user-group-sur-lutilisation-des-methodes-agiles/#comments</comments> <pubDate>Thu, 07 May 2009 15:36:57 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[French SUG]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1963</guid> <description><![CDATA[Le French Scrum User Group lance une grande enquête nationale sur l’utilisation des méthodes agiles (Scrum et XP) en France sous la forme d’un questionnaire en ligne (répondre au questionnaire). Pour qu’elle soit significative, il faut qu’un maximum d’entreprises utilisatrices répondent. Il y a une WII à gagner lors du tirage au sort organisé à [...]]]></description> <content:encoded><![CDATA[<p>Le French Scrum User Group lance <strong>une grande enquête nationale sur l’utilisation des méthodes agiles (Scrum et XP) en France</strong> sous la forme d’un questionnaire en ligne (<a
href="http://www.frenchsug.org/pages/viewpage.action?pageId=591179" title="rpondre au questionnaire">répondre au questionnaire</a>).</p><p>Pour qu’elle soit significative, il faut qu’un maximum d’entreprises utilisatrices répondent.</p><p>Il y a une WII à gagner lors du <strong>tirage au sort</strong> organisé à la prochaine soirée, « Le World Café » organisé par le French Scrum User Ggroup, <strong>le 18 Juin 2009 à l’École EPITA</strong> (<a
href="http://www.meetup.com/frenchsug/fr/calendar/9947625/" title="sinscrire  la soire" >s’inscrire à la soirée</a>).</p><p>Alors, participez-y afin d’aider la communauté Agile francophone à avoir de vrais chiffres sur Scrum et XP.</p><div
align="center"> <a
href="http://www.frenchsug.org/pages/viewpage.action?pageId=591179"><br
/> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/05/logo-enquete.jpg" alt="enquete sug" border="0"  width="75%"/><br
/> </a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/05/07/enquete-du-french-scrum-user-group-sur-lutilisation-des-methodes-agiles/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Xebia sponsor de la conférence XP Day France 2009</title><link>http://blog.xebia.fr/2009/01/13/xebia-sponsor-de-la-conference-xp-day-france-2009/</link> <comments>http://blog.xebia.fr/2009/01/13/xebia-sponsor-de-la-conference-xp-day-france-2009/#comments</comments> <pubDate>Tue, 13 Jan 2009 08:59:37 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1319</guid> <description><![CDATA[Xebia sponsorise la conférence XP Day France 2009 qui se tiendra les 25 et 26 Mai 2009. Vous êtes en quête d&#8217;idées neuves pour rendre plus efficaces vos projets de développement logiciels&#160;? Vous souhaitez en savoir plus sur les méthodes agiles, leurs bénéfices, leurs limites&#160;&#8230; Vous avez mis en place des pratiques agiles au sein [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.xpday.fr"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/01/sponsorxpdaylogo.png" alt="Xebia sponsor XP day 2009" style="margin: 1em 1em 1em 1em; float: right;" /></a><br
/> <strong>Xebia sponsorise la <a
href="http://www.xpday.fr">conférence XP Day France 2009</a> qui se tiendra les 25 et 26 Mai 2009.</strong></p><p>Vous êtes en quête d&#8217;idées neuves pour rendre plus efficaces vos projets de développement logiciels&nbsp;?</p><p>Vous souhaitez en savoir plus sur les méthodes agiles, leurs bénéfices, leurs limites&nbsp;&#8230;<br
/> Vous avez mis en place des pratiques agiles au sein de vos projets et vous souhaitez confronter vos retours d&#8217;expérience à ceux d&#8217;autres praticiens&nbsp;&#8230;</p><p>Rendez-vous les 25 et 26 mai 2009 pour la <a
href="http://www.xpday.fr">conférence XP Day France 2009</a>.</p><h4>Une conférence pour tous les intervenants des projets logiciels</h4><p>Chefs de projet, clients, décideurs, développeurs &#8230;<br
/> Loin des conférences &laquo;&nbsp;académiques&nbsp;&raquo; ou des événements commerciaux, le succès du format XP Day s&#8217;explique par son orientation pragmatique.<br
/> Avec plus de 160 inscrits pour sa troisième édition en 2008, XP Day France est le rendez-vous à ne pas manquer si vous souhaitez des réponses concrètes, des idées que vous pouvez immédiatement mettre en pratique.</p><h4>De nombreux thèmes sont abordés</h4><p>Le programme 2009 est en cours de finalisation. Consultez les <a
href="http://www.xpday.fr/conferences-precedentes">programmes précédents</a> pour vous faire une idée des types de sessions proposées :</p><ul><li>Construction logicielle <em>(TDD, refactoring, binomage, intégration continue &#8230;)</em>.</li><li>Animation d’équipe et leadership.</li><li>Outils.</li><li>Agilité : performance et culture d&#8217;organisation.</li><li>L’impact dans l’entreprise et l’organisation.</li><li>Expérience utilisateurs.</li></ul><h4>Edition 2009 : un décor hors du commun !</h4><p>Situé sur une île en plein milieu du bois de Vincennes, Le Chalet de la Porte Jaune est noyé dans la verdure. Une pause sous un arbre du jardin ou une promenade en barque entre deux ateliers &#8230; A vous de planifier vos journées au rythme des lieux.<br
/> Bâtiment classé monument historique, le Chalet est aussi réputé pour sa restauration de très haute qualité. Tous vos déjeuners, pauses et dîners seront concoctés par l&#8217;ancien chef du Train Bleu dont la réputation n&#8217;est plus à faire.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/01/13/xebia-sponsor-de-la-conference-xp-day-france-2009/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Abécédaire de l&#8217;ADN Agile</title><link>http://blog.xebia.fr/2009/01/02/abecedaire-de-ladn-agile/</link> <comments>http://blog.xebia.fr/2009/01/02/abecedaire-de-ladn-agile/#comments</comments> <pubDate>Fri, 02 Jan 2009 13:03:53 +0000</pubDate> <dc:creator>Luc Legardeur</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Mot du président]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1203</guid> <description><![CDATA[Avez-vous remarqué l&#8217;influence étonnante que peut avoir un Manager sur son équipe, sur une organisation, sur le comportement de ses collaborateurs, sur une culture d&#8217;entreprise et cela à quelque niveau hiérarchique que ce soit ? L&#8217;équipier de chez Mac Donald sera d&#8217;une efficacité redoutable dans la préparation de votre Big Mac préféré car dans cette [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 0em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2008/12/agiledna_min-150x150.png" alt="" title="agile DNA" /></p><p>Avez-vous remarqué l&#8217;influence étonnante que peut avoir un Manager sur son équipe, sur une organisation, sur le comportement de ses collaborateurs, sur une culture d&#8217;entreprise et cela à quelque niveau hiérarchique que ce soit ?</p><p>L&#8217;équipier de chez Mac Donald sera d&#8217;une efficacité redoutable dans la préparation de votre Big Mac préféré car dans cette entreprise, le souci du Management est le respect du process. Aux antipodes de ce paradigme, l&#8217;ingénieur de développement de chez Google, lui, n&#8217;est pas contraint par les process, car au contraire, là bas, on pense que moins il y en a et plus la créativité des individus sera mise à contribution.</p><p>Réussir à transformer son organisation pour la rendre agile est donc avant tout, une question de mise en conformité en profondeur de l&#8217;état d&#8217;esprit collectif par une dynamique et volontaire impulsion managériale.<br
/> Le Boss doit donc mouiller sa chemise et vivre l&#8217;agilité de l&#8217;intérieur. Il doit avoir cela dans son code génétique <em>(inné ou acquis)</em>, dans son ADN.</p><p>Justement, à propos d&#8217;ADN&#8230;vous rappelez vous les cours de Sciences Naturelles du collège ?</p><p>Un petit rappel. L&#8217;Acide Désoxyribonucléique <em>(ADN)</em> stocke l&#8217;information génétique ;  information qui détermine le développement et le fonctionnement d&#8217;un organisme.</p><p>Pour faire simple, cette information génétique est transmise de génération en génération. Ce message <em>(génétique)</em> est transporté par l&#8217;ARNm <em>(le messager)</em> grâce à une vaste combinaison de nucléotides identifiés par des lettres T, A, G, C, &#8230;</p><p>Essayons maintenant d&#8217;établir un parallèle les lois de la génétique humaine et le fonctionnement d&#8217;une organisation.</p><p>Notre théorie consiste à affirmer que le fonctionnement d&#8217;une organisation est lui aussi, directement lié à l&#8217;ADN du Big Boss, à ses habitudes et à ses principes de Management.</p><p>Livrons nous donc à un exercice amusant : égrenons le chapelet de quelques principes Agiles <em>(mais aussi quelques principes fondamentaux de Management)</em> en empruntant le chemin de l&#8217;alphabet et mettons en face de chacun le bénéfice attendu. Vous suivez toujours ?</p><p><img
style="margin: 1em 1em 1em 1em; float: left;" src="http://blog.xebia.fr/wp-content/uploads/2008/12/agiledna.png" alt="" title="agile DNA" /></p><table
cellspacing="0" cellpadding="5" style="border: 0px solid black"><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">A</strong>mélioration continue</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Meilleure compétitivité, qualité accrue</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">B</strong>urndown Chart</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Transparence des équipes vis-à-vis du Management</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">C</strong>onfiance</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Dépassement des attentes</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">D</strong>élégation</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Créativité, avantage concurrentiel</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">E</strong>sprit d&#8217;équipe</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Dépassement des résultats, victoire collective</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">F</strong>eedback</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Conformité du logiciel aux besoins utilisateurs</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">G</strong>agnant / gagnant</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Etat d&#8217;esprit constructif et productif</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">H</strong>ansei<br
/> <em>(Organisation auto-apprenante)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Qualité, productivité accrue</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">I</strong>tératif</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Visibilité accrue</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">J</strong>eu <em>(Poker Card)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Estimations plus justes</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">K</strong>ISS<br
/> <em>(Keep It Simple and Stupid)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Economies, pragmatisme</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">L</strong>eadership exemplaire</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Implication des équipes</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">M</strong>otivation des équipes</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Succès</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">N</strong>ormes de développement</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Augmentation de la qualité</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">O</strong>bstacles<br
/> <em>(à lever quelque soit leur nature)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Productivité de l&#8217;équipe</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">P</strong>air Programming</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Meilleure intégration des nouveaux</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">Q</strong>ualité</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Réduction des coûts</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">R</strong>ythme soutenable</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Prédictibilité dans le projet, travail dans la durée</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">S</strong>tand Up Meetings</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Gain de temps, communication accrue</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">T</strong>ests</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Qualité</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">U</strong>ser Stories</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Meilleure adéquation aux besoins</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">V</strong>élocité</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Réduction des risques</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">W</strong>aste <em>(Gaspillage à éliminer)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Economies</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">X</strong>P</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Productivité, qualité, prédictibilité</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">Y</strong>es<br
/> <em>(Oui&nbsp;aux&nbsp;changements&nbsp;de&nbsp;specs)</em></td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Adaptabilité au Business, réduction du Time to Market</td></tr><tr><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;"><strong
style="font-size: 1.3em;">Z</strong>en</td><td
style="border: 0px solid black; vertical-align:top; font-size: 1.1em;">Décisions réfléchies, exploration de toutes les options</td></tr></table><p>Sans vouloir jouer les apprentis sorciers ou les donneurs de leçons, nous pensons sincèrement que les quelques principes édictés ci-dessus sont propices à créer des organisations efficaces <em>(des OGM -Organisations Génétiquement Modifiées- sous, nous en sommes sûrs, dans le cas présent, la bénédiction de José Bové)</em>.</p><p>Toute l&#8217;équipe Xebia vous présente ses meilleurs vœux pour 2009.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/01/02/abecedaire-de-ladn-agile/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/</link> <comments>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#comments</comments> <pubDate>Mon, 01 Dec 2008 17:54:18 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[GridGain]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[junit]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Nexus]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Tomcat]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1096</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité Scrum et XP depuis les tranchées Scrum de scrums RIA FlexMonkey 0.5 Sortie de SmartGWT Le coin de la technique Améliorez la testabilité de votre code Nexus pour chercher dans les repositories Maven Distribuez vos tests JUnit avec GridGain Tomcat : Trucs et [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#ScrumetXPdepuislestranches">Scrum et XP depuis les tranchées</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Scrumdescrums">Scrum de scrums</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#FlexMonkey">FlexMonkey 0.5</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SortiedeSmartGWT">Sortie de SmartGWT</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Amliorezlatestabilitdevotrecod">Améliorez la testabilité de votre code</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#Nexuspourchercherdanslesreposi">Nexus pour chercher dans les repositories Maven</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#DistribuezvostestsJUnitavecGri">Distribuez vos tests JUnit avec GridGain</a></li><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#TomcatTrucsetastucesdesprosdeS">Tomcat : Trucs et astuces des pros de SpringSource</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SachaLaboureyauParisJUGmardipo">Sacha Labourey au Paris JUG mardi pour une soirée JBoss </a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ScrumetXPdepuislestranches"></a>Scrum et XP depuis les tranchées</h4><p>Le livre référence de Henrik Kniberg, <a
href="http://www.infoq.com/minibooks/scrum-xp-from-the-trenches" title="disponible sur InfoQ" >disponible sur InfoQ</a>, vient d&#8217;être traduit en français (disponible <a
href="http://www.infoq.com/resource/news/2007/06/scrum-xp-book/en/resources/ScrumAndXpFromTheTrenches_French.pdf" title="en pdf ici" >en pdf ici</a>).<br
/> <a
href="http://blog.xebia.fr/author/gmathias/" title="Guillaume Mathias" >Guillaume Mathias</a> (Xebia) a participé à cette aventure aux côtés de <a
href="http://bruno-orsier.developpez.com/" title="Bruno Orsier" >Bruno Orsier</a>, <a
href="http://homoagilis.blogspot.com" title="Emmanuel Etasse" >Emmanuel Etasse</a> et Christophe Bunn.<br
/> Merci aux auteurs pour ce formidable don à la communauté Agile francophone.</p><h4><a
name="Scrumdescrums"></a>Scrum de scrums</h4><p>Une des questions récurrentes concernant l&#8217;adoption des démarches agiles sur une large échelle est celle de la synchronisation de nombreuses personnes. À ce sujet, <a
href="http://www.infoq.com/news/2008/11/scrum-of-scrums" title="InfoQ revient sur l'un des outils proposés par la méthode, le Scrum de Scrums" >InfoQ revient sur l&#8217;un des outils proposés par la méthode, le Scrum de Scrums</a>. Allan Shalloway expose les problématiques d&#8217;un &#8216;grand&#8217; projet Scrum, où plusieurs équipes interviennent sur la réalisation de modules inter connectés :</p><ul><li>Problématique technique : adopter une démarche agile, c&#8217;est éviter de réaliser des fonctionnalités non nécessaires. Ainsi, si une sous équipe &#8216;A&#8217; créé un service, dont l&#8217;équipe &#8216;B&#8217; aura peut-être besoin dans une itération ultérieure, rien ne l&#8217;oblige à exposer ce service. Quand &#8216;B&#8217; aura besoin du même type de service, plusieurs questions surgiront : &#8216;B&#8217; est-il au courant de l&#8217;existence de ce service. Si oui, qui doit le modifier pour qu&#8217;ils répondent aux besoins de &#8216;A&#8217; et de &#8216;B&#8217; ?</li><li>Synchronisation d&#8217;équipe : les Scrums Masters et les Product Owners ne sont pas les mêmes pour les équipes &#8216;A&#8217; et &#8216;B&#8217;. Les problématiques de synchronisation sont évidentes si on se place du point de vue du product owner (Cette fonctionnalité existe t&#8217;elle déjà ? Est elle est prévue ? &#8230;)</li><li>Intégration du produit final : il n&#8217;est pas simple de délivrer un produit final fonctionnant de bout en bout juste en accolant les composants développés par les différentes équipes.</li></ul><p>C&#8217;est pour cela qu&#8217;a été pensé le Scrum of Scrums.<br
/> Allan Shalloway, dans le cadre de la rédaction de son livre &laquo;&nbsp;<a
href="http://www.netobjectives.com/resources/books/lean-software-development" title="Lean Software Development: Scaling Agile to the Enterprise" >Lean Software Development: Scaling Agile to the Enterprise</a>&nbsp;&raquo; a collecté les retours d&#8217;utilisateurs sur ce &#8216;super&#8217; daily scrum.<br
/> Pour Mike Dwyer, le SoS sert à gérer la décomposition des users &#8211; stories afin de veiller à ce qu&#8217;une fonctionnalité ne soit pas réalisée en double.<br
/> Pour Ilja Preuß, le SoS permet d&#8217;identifier les points d&#8217;entraide possibles, les impacts des différentes équipes sur le système, mais surtout, cette réunion permet de renforcer le sentiment d&#8217;appartenance à un seul et même projet.<br
/> Christophe Louvion a utilisé le SoS pour gérer l&#8217;intégration des sous composants au jour le jour. Il a aussi utilisé le SoS pour maintenir une méta-équipe, composée de membres seniors de chacune des sous équipes, et chargée de gérer les problématiques transverses du projet (rédaction des normes, intégration end to end, revues d&#8217;architecture&#8230;)</p><p>Enfin, Walter Bodwell partage sa recette secrète pour un SoS pleinement opérationnel : il faut qu&#8217;il soit court (15 minutes), concis, centré autour de l&#8217;information qu&#8217;on veut communiquer aux autres. Toutes les problématiques particulières doivent être abordées dans des réunions en tête à tête. Le SoS doit permettre d&#8217;identifier les points bloquants, et de les rappeler à tous (tous les jours s&#8217;il le faut) jusqu&#8217;à leur résolution.<br
/> Enfin, comme la problématique des SoS est attenante à celle des équipes de développement distribuées, il peut être utile, afin de conserver au SoS une pertinence maximale, de préparer quelques notes pour la réunion.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="FlexMonkey"></a>FlexMonkey 0.5</h4><p>Lors de l&#8217;une de <a
href="http://blog.xebia.fr/2008/10/20/revue-de-presse-xebia-79/#Testezunitairementetfonctionne" title="nos revues de presse" >nos revues de presse</a>, nous vous présentions <a
href="http://code.google.com/p/flexmonkey/" title="FlexMonkey" >FlexMonkey</a> (framework de tests automatisés OpenSource pour Flex).<br
/> Ce projet vient de voir arriver la version 0.5 et permet :</p><ul><li>Une configuration afin de pouvoir lancer <a
href="http://code.google.com/p/flexmonkey/" title="FlexMonkey" >FlexMonkey</a> par des systèmes de build (et plus particulièrement Ant).</li><li>Un refactoring de l&#8217;API afin de séparer l&#8217;UI et le core.</li><li>Une séparation entre la gestion des tests automatisés (FlexMonkey.swc) et le runner FlexUnit (FlexMonkeyUI.swc).</li></ul><p>Pour un produit aussi jeune, ce dernier permet d&#8217;effectuer des tests convenables sous une application Flex. L&#8217;automatisation des tests sous Flex lève une barrière à son adoption, alors qu&#8217;attendez-vous ?</p><h4><a
name="SortiedeSmartGWT"></a>Sortie de SmartGWT</h4><p><a
href="http://www.jroller.com/sjivan/" title="Sanjiv Jivan" >Sanjiv Jivan</a>, ex-auteur de <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a> a annoncé hier la sortie de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a>, un nouveau Wrapper <a
href="http://code.google.com/webtoolkit/" title="GWT" >GWT</a> au dessus d&#8217;un Framework Javascript très complet : <a
href="http://www.smartclient.com/" title="SmartClient" >SmartClient</a>.</p><p>Les plus de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a> par rapport à <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a> :</p><ul><li>La richesse des composants fournis par l&#8217;api.</li><li>L&#8217;amélioration des performances (peu de temps de latence, utilisation de l&#8217;asynchrone systématique &#8230;).</li><li>Un code Java plus léger et plus consistant.</li><li>Une intégration avec des services REST et à base de WSDL.</li></ul><p>Les moins :</p><ul><li>Un style visuel par défaut moins attrayant que celui de son rival.</li><li>Le niveau d&#8217;abstraction est le même que sur <a
href="http://code.google.com/p/gwt-ext/" title="GWT-Ext" >GWT-Ext</a>. Dès qu&#8217;on souhaite customiser un composant ou créer un comportement différent, il faut la plupart du temps mettre le nez dans le code Javascript.</li></ul><p>Le code source du projet est fourni sous licence LGPL.<br
/> Une <a
href="http://www.smartclient.com/smartgwt/showcase/" title="démo de SmartGWT" >démo de SmartGWT</a> en action est disponible.<br
/> Notons aussi, pour cette occasion, un petit jeu de <a
href="http://www.infoq.com/news/2008/11/smartgwt" title="questions / réponses chez InfoQ" >questions / réponses chez InfoQ</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Amliorezlatestabilitdevotrecod"></a>Améliorez la testabilité de votre code</h4><p>Misko Hevery, coach Agile à Google, <a
href="http://misko.hevery.com/code-reviewers-guide/" title="partage sur son blog" >partage sur son blog</a> quelques-unes des recommandations et alertes que Google suggère à ses développeurs afin de garder le code le plus propre et le plus testable possible. Rien de bien étonnant, la majorité des points abordés sont connus et relèvent du bon sens. Cependant, une piqûre de rappel ne fait jamais de mal.</p><p>Misko a donc regroupé ceux-ci en &#8216;fléaux&#8217;. Ces 4 thèmes permettent de vérifier ou d&#8217;améliorer simplement la testabilité d&#8217;une application (la liste ne se veut pas exhaustive) :</p><ul><li>Assurez-vous que vos constructeurs n&#8217;effectuent aucun véritable traitement. Alertes : utilisation du mot clé <code>new</code>, appel à des méthodes statiques, présence de conditions ou de boucles, utilisation de blocs d&#8217;initialisation, initialisation trop complexe.</li><li>Contentez-vous d&#8217;utiliser les objets attributs de vos classes. Alertes : invocations chaînées trop profondes du type <code>getObject1().getObject2().getObject3()</code>. Objets avec des noms suspects comme &#8216;context&#8217;, &#8216;environnement&#8217;, ou &#8216;manager&#8217;.</li><li>Utilisez les objets <em>stateful</em> à bon escient. Alertes : utilisation d&#8217;un singleton, utilisation d&#8217;un champ ou d&#8217;une méthode statique, présence de bloc statique d&#8217;initialisation. Misko est d&#8217;ailleurs l&#8217;auteur d&#8217;un projet sur Google Code permettant de <a
href="http://code.google.com/p/google-singleton-detector/" title="détecter différents types de singletons" >détecter différents types de singletons</a>.</li><li>Découpez votre code, évitez les classes trop volumineuses. Alertes : les objets qui ont plusieurs fonctions distinctes, les classes difficiles à comprendre rapidement, les classes possédant des attributs qui ne sont utilisés dans aucune méthode.</li></ul><p>Misko est également l&#8217;auteur d&#8217;un autre projet permettant <a
href="http://code.google.com/p/testability-explorer/" title="l'analyse de la testabilité de votre projet" >l&#8217;analyse de la testabilité de votre projet</a> à partir de son bytecode. Il a d&#8217;ailleurs passé celui-ci sur quelques-uns des frameworks Open Source de votre quotidien et regroupé les résultats sur son site dédié : <a
href="http://testabilityexplorer.org/report" title="Testability Explorer" >Testability Explorer</a>.</p><h4><a
name="Nexuspourchercherdanslesreposi"></a>Nexus pour chercher dans les repositories Maven</h4><p>On avait l&#8217;habitude d&#8217;utiliser <a
href="http://www.mvnrepository.com" title="http://www.mvnrepository.com" >http://www.mvnrepository.com</a> (ou google, ou le plugin m2eclipse) lorsque l&#8217;on partait à la recherche de son jar favori, Sonatype (dont le fondateur et CTO est Jason Van Zyl, le père de Maven) a <a
href="http://blogs.sonatype.com/people/book/2008/11/19/use-repositorysonatypeorg-to-search-central-maven-repository/" title="mis à disposition" >mis à disposition</a> une instance publique de <a
href="http://nexus.sonatype.org/" title="Nexus" >Nexus</a>, son manager de repository Maven : <a
href="http://repository.sonatype.org" title="http://repository.sonatype.org" >http://repository.sonatype.org</a>.</p><p>L&#8217;interface est propre, facile à utiliser, et est développée à l&#8217;aide du <a
href="http://extjs.com/" title="framework Ext JS" >framework Ext JS</a>.</p><h4><a
name="DistribuezvostestsJUnitavecGri"></a>Distribuez vos tests JUnit avec GridGain</h4><p>Tester une application déployée sur plusieurs machines : quelle galère ! N&#8217;avez-vous jamais eu besoin d&#8217;effectuer des tests en environnement distribué ? Comment effectuez-vous vos tests d&#8217;intégration impliquant des communications clients-serveur ? <a
href="http://www.theserverlabs.com/blog/2008/11/24/distributed-junit-testing-with-gridgain/" title="Cet article nous propose une solution originale" >Cet article nous propose une solution originale</a> pour effectuer ce type de tests multi-jvm utilisant certaines fonctionnalités de <a
href="http://www.gridgain.com/" title="GridGain" >GridGain</a>, framework Open Source permettant la création d&#8217;applications distribuées de type grid computing. L&#8217;auteur de l&#8217;article n&#8217;utilise pour faire ses tests qu&#8217;une des fonctionnalités offertes par ce framework : la distribution des tests sur plusieurs nœuds.</p><p>Pour ce faire, vous aurez besoin, en plus de vos tests, de 3 &#8216;TestSuite&#8217; configurées avec des <em>annotations</em> et <em>runners</em> GridGain :</p><ul><li>Une première &#8216;Remote TestSuite&#8217; chargée de lancer les tests sur le serveur. Les tests de cette suite seront exécutés sur la grille.</li><li>Une seconde &#8216;Local TestSuite&#8217; pour lancer les tests sur le client local.</li><li>Une troisième et dernière &#8216;Distributed TestSuite&#8217; servant de point d&#8217;entrée unique au lancement de deux premières séries de tests.</li></ul><p>Cela vous déplaît certainement d&#8217;utiliser un tel framework uniquement pour une de ses plus petites fonctionnalités, et vous avez probablement raison. Maintenant quelles autres options aussi puissantes et rapides à mettre en place proposeriez-vous en remplacement ?</p><h4><a
name="TomcatTrucsetastucesdesprosdeS"></a>Tomcat : Trucs et astuces des pros de SpringSource</h4><p>SpringSource continue sa série de webinars sur Tomcat avec <a
href="http://www.springsource.com/webinars" title="Apache Tomcat Tips and Tricks from the Pros" >Apache Tomcat Tips and Tricks from the Pros</a> (cf. <a
href="http://blog.xebia.fr/2008/08/25/revue-de-presse-xebia-71/#TuningetoptimisationdeTomcatmo" title="Tuning et optimisation de Tomcat : mod_jk est mort ! Longue vie à mod_proxy_http !" >Tuning et optimisation de Tomcat : mod_jk est mort ! Longue vie à mod_proxy_http !</a> et <a
href="http://blog.xebia.fr/2008/09/22/revue-de-presse-xebia-75/#AmliorerlesperformancesdeTomca" title="Améliorer les performances de Tomcat en production" >Améliorer les performances de Tomcat en production</a>). Nous avons cette fois retenu :</p><ul><li><code>setEnv(.sh|.bat)</code> est le fichier à utiliser pour configurer le lancement de Tomcat (afin de préciser le JDK, les options de la JVM, etc). <code>startup.sh</code> et <code>catalina.sh</code> peuvent le plus souvent rester inchangés.</li></ul><pre class="brush: java; title: ; notranslate">
JAVA_HOME=/usr/local/jdk_1.6.0.10/
CATALINA_OPTS=-Xmx512m
CATALINA_HOME=/usr/local/apache-tomcat-6.0.18
CATALINA_BASE=/usr/local/tomcat-instance-01
CATALINA_PID=$CATALINA_BASE/logs/tomcat.pid
</pre><p>Dans cet exemple, un JDK 1.6.0.10 avec 512 Mo de Heap démarre un Tomcat 6.0.18 avec une configuration située sous <code>/usr/local/tomcat-instance-01</code> ; le pid sera stocké sous <code>/logs/tomcat.pid</code>.</p><ul><li>Le port de shutdown de Tomcat existe pour des raisons historiques [1] et présente une faille inutile de sécurité. Il doit être désactivé en précisant le port &laquo;&nbsp;-1&#8243;. On remplacera alors <code>shutdown.sh</code> et <code>catalina.sh stop</code> par le classique <a
href="http://en.wikipedia.org/wiki/Kill_(Unix)" title="kill unix" >kill unix</a>.</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Server port=&quot;-1&quot; shutdown=&quot;SHUTDOWN&quot; &gt;
</pre><ul><li>L&#8217;<a
href="http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html" title="Access Log Valve" >Access Log Valve</a> permet de générer des logs d&#8217;accès similaires à celles d&#8217;Apache. Ces informations sont très importantes pour la supervision et le <em>troubleshooting</em>. L&#8217;<a
href="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/valves/ExtendedAccessLogValve.html" title="ExtendedAccessLogValve" >ExtendedAccessLogValve</a> supporte le <a
href="http://www.w3.org/TR/WD-logfile.html" title="W3C Extended Log File Format" >W3C Extended Log File Format</a> et surtout facilite le <em>troubleshooting</em> en permettant d&#8217;afficher les paramètres et les attributs de requête (même en POST).</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Valve className=&quot;org.apache.catalina.valves.AccessLogValve&quot;
    pattern=&quot;combined&quot; directory=&quot;${catalina.base}/logs&quot; prefix=&quot;tomcat_access_&quot; suffix=&quot;.log&quot; /&gt;
</pre><ul><li>Le fichier <code>catalina.properties</code> permet d&#8217;utiliser des variables de substitution. Exemple avec une variable <code>engine.jvm-route</code> :</li></ul><pre class="brush: java; title: ; notranslate">
&lt;Engine ... jvmRoute=&quot;${engine.jvm-route}&quot;&gt;
</pre><ul><li>Tomcat offre plusieurs méthodes pour déployer les applications (définition de <code>&lt;context&gt;</code> dans server.xml, auto deploy de .war/répertoires/context.xml, déploiement scripté). Si toutes ces options sont utilisables en production, il est important de n&#8217;en utiliser qu&#8217;une seule pour éviter les collisions.</li></ul><p>[1] Les JDK 1.0, 1.1 et 1.2 n&#8217;offraient pas de graceful shutdown. Depuis, le <a
href="http://java.sun.com/developer/TechTips/2000/tt0711.html" title="mécanisme de Shutdown Hook" >mécanisme de Shutdown Hook</a> des JVM permet un arrêt élégant de Tomcat sur commande <code>kill</code>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SachaLaboureyauParisJUGmardipo"></a>Sacha Labourey au Paris JUG mardi pour une soirée JBoss</h4><p><a
href="http://www.linkedin.com/ppl/webprofile?action=vmi&#038;id=282026&#038;authToken=Xs-J&#038;authType=name&#038;trk=ppro_viewmore&#038;lnk=vw_pprofile" title="Sacha Labourey" >Sacha Labourey</a>, CTO de JBoss et General Manager de JBoss Europe, présentera JBoss AS 5.0 à la <a
href="http://parisjug.org/xwiki/bin/view/Meeting/20081202" title="soirée JBoss du Paris JUG" >soirée JBoss du Paris JUG</a> mardi 2 décembre. <a
href="http://parisjug.org/xwiki/bin/view/Speaker/SahebMalik" title="Saheb Malik" >Saheb Malik</a>, JBoss France, présentera ensuite JBoss Seam.<br
/> C&#8217;est l&#8217;occasion rêvée de mieux comprendre l&#8217;agenda de JBoss. Nous avons notamment en tête les questions suivantes :</p><ul><li><a
href="http://www.jboss.org/jbossmc/" title="JBoss MicroContainer" >JBoss MicroContainer</a> et OSGi : quel positionnement tenir quand Sun a mis en retrait <a
href="https://hk2.dev.java.net/" title="HK2" >HK2</a> au profit d&#8217;<a
href="http://felix.apache.org/site/index.html" title="Apache Felix" >Apache Felix</a>.</li><li><a
href="http://www.jboss.org/jbossmessaging/" title="JBoss Messaging" >JBoss Messaging</a> vs. <a
href="http://www.redhat.com/mrg/messaging/" title="RedHat MRG" >RedHat MRG</a> : quelles synergies ? Interopérables à l&#8217;instar de <a
href="http://www-01.ibm.com/software/integration/wmq/" title="Websphere MQ" >Websphere MQ</a> (aka MQ Series) et Websphere Embedded Messaging Engine ? <a
href="http://amqp.org/" title="AMQP" >AMQP</a> plaît à RedHat, JBoss est-il aussi intéressé ?</li><li><a
href="http://www.jboss.org/jbossas/" title="JBoss AS 5" >JBoss AS 5</a> : comment le précurseur des implémentations EJB 3 et JPA se retrouve t&#8217;il parmi les retardataires des <a
href="http://java.sun.com/javaee/overview/compatibility.jsp" title="certifiés Java EE 5" >certifiés Java EE 5</a> ? Le chantier de refonte a-t-il été trop ambitieux ?</li><li>Data Grids : pourquoi <a
href="http://www.jgroups.org" title="JGroups" >JGroups</a>, le coeur de communication de <a
href="http://www.jboss.org/jbosscache/" title="JBoss Cache" >JBoss Cache</a> est-il un projet extérieur à JBoss ? Les Data Grids font-elles parties des priorités de JBoss ?</li><li>JBoss, Fondation Apache et brique HTTP de JBoss AS : JBoss semble moins impliqué qu&#8217;auparavant dans Tomcat et vient de lancer son <a
href="http://www.jboss.org/mod_cluster/" title="mod_cluster" >mod_cluster</a> à l&#8217;extérieur du projet <a
href="http://httpd.apache.org/" title="Apache HTTP Server" >Apache HTTP Server</a> et de son <a
href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html" title="mod_proxy_balancer" >mod_proxy_balancer</a>. À l&#8217;heure où les <a
href="http://en.wikipedia.org/wiki/Comet_(programming)" title="architectures Comet" >architectures Comet</a> imposent des évolutions importantes des moteurs de Servlet, JBoss compte-t-il s&#8217;éloigner de Tomcat ?</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>2009 : 6 raisons d’aimer la crise</title><link>http://blog.xebia.fr/2008/11/26/2009-6-raisons-d%e2%80%99aimer-la-crise/</link> <comments>http://blog.xebia.fr/2008/11/26/2009-6-raisons-d%e2%80%99aimer-la-crise/#comments</comments> <pubDate>Wed, 26 Nov 2008 12:27:32 +0000</pubDate> <dc:creator>Luc Legardeur</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Mot du président]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1011</guid> <description><![CDATA[Nous le savons tous, l&#8217;horizon s&#8217;assombrit pour nous tous et 2009 s&#8217;annonce comme une année difficile pour particuliers et entreprises. L&#8217;argent dette, monnaie virtuelle, créée à profusion par les banquiers, sous la bénédiction des états complices, a servi à accélérer artificiellement nos économies, à soutenir un rythme de croissance plus que déraisonnable. Tant pis, c&#8217;est [...]]]></description> <content:encoded><![CDATA[<p>Nous le savons tous, l&#8217;horizon s&#8217;assombrit pour nous tous et 2009 s&#8217;annonce comme une année difficile pour particuliers et entreprises.</p><p>L&#8217;argent dette, monnaie virtuelle, créée à profusion par les banquiers, sous la bénédiction des états complices, a servi à accélérer artificiellement nos économies, à soutenir un rythme de croissance plus que déraisonnable. Tant pis, c&#8217;est fait. Nous devons désormais payer un lourd tribut à cette hallucination collective.</p><p>Le 2 janvier 2009, nous aurons donc tous la gueule de bois ; non pas à cause des abus d&#8217;alcool et de bonne chère dans lesquels nous ne pouvons nous empêcher de sombrer pendant la trêve des confiseurs mais plutôt parce que cette hypothétique crise dont nous ne voyons pas encore les effets <em>(au point des fois de mettre en doute son existence)</em> sera bel et bien là.<br
/> Par voie de conséquence, 2009 sera une année difficile pour les prestataires de services puisque nos clients seront tous contraints, nous le savons, à réduire leurs investissements informatiques.</p><p>Nous avons mangé notre pain blanc, nous allons manger notre pain noir. Les agapes finies, la période de vaches maigres va commencer.</p><p>Et bien tant mieux !</p><p>Tant mieux car c&#8217;est en période de manque que nous prenons les décisions les plus judicieuses, celles qui ne sont destinées qu&#8217;à assurer la survie de nos entreprises, c&#8217;est en période de difficultés que nous nous surpassons, que nous devenons créatifs, que nous sommes efficaces, que nous affûtons nos meilleures décisions.</p><p>En 2009, les DSI s&#8217;interrogeront certainement sur le meilleur moyen d&#8217;utiliser un budget réduit.<br
/> Elles stopperont, quand cela sera possible, les chantiers pharaoniques de type refonte en SOA à l&#8217;échelle de l&#8217;entreprise pour ne se concentrer que sur le ROI, le Quick Win, bref la suppression du gaspillage.</p><p>Dans ce contexte, les méthodes agiles que nous prônons tombent à point nommé. Basées sur le principe de <strong>travail itératif et incrémental</strong>, sur le principe de la <strong>priorisation par la valeur</strong>, sur la <strong>qualité plutôt que la quantité</strong>, elles seront, nous en sommes sûrs, le nouvel eldorado de l&#8217;ingénierie logicielle.<br
/> Nous avons d&#8217;ailleurs d&#8217;ores et déjà constaté un réel engouement pour les méthodes agiles <em>(nous avons cette année, <a
href="http://blog.xebia.fr/2008/10/16/certification-scrummaster-par-jeff-sutherland-session-des-1er-et-2-decembre/">certifié 100 ScrumMasters</a>, participé à 10 projets agiles et accueilli dans <a
href="http://blog.xebia.fr/2008/09/22/ateliers-agiles-xebia/">nos ateliers agiles du mercredi</a> plusieurs dizaines d&#8217;entreprises)</em>.</p><p>Alors y aura-t-il une relation de cause à effet ? La crise sera t&#8217;elle le <em>&laquo;&nbsp;compelling event&nbsp;&raquo;</em> de l&#8217;adoption des méthodes agiles ?</p><p>Posons-nous la question : que pourront apporter <a
href="http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/">Scrum et XP</a> à nos clients en période de crise ?</p><p>Voici une liste <em>(certainement incomplète)</em>, de 6 facteurs améliorant la rentabilité des projets informatique :</p><ul><li>La <strong>disparition des fonctionnalités inutiles</strong> grâce à une meilleure utilisation des efforts de développement, ce qui engendrera une économie substantielle <em>(au moins 20%)</em> dans les coûts des projets.</li><li>La <strong>suppression de la documentation à outrance</strong>, finissant dans un placard électronique appelé référentiel, les réunions interminables, finalisées par le sacro-saint compte rendu de réunion qui ne donnera lieu à aucune décision ou bien les reporting fallacieux destinés à se donner l&#8217;illusion que tout est under-control.</li><li>L&#8217;<strong>augmentation de la productivité des équipes de développement</strong> <em>(par deux, par trois, et même par dix !)</em> grâce à un nouveau paradigme de management basé sur la confiance, la motivation, l&#8217;amélioration continue <em>(voir nos <a
href="http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/">comparaisons de productivité de développement constatées dans le cadre du projet Prorail mené par Xebia</a>)</em>.</li><li>La <strong>baisse faramineuse des coûts de maintenance</strong> grâce à l&#8217;élimination de la dette technologique accumulée à cause du manque de compétence des équipes ; ce n&#8217;est d&#8217;ailleurs pas de leur faute, un développeur à 350-400 Euros est forcément un débutant, un quart d&#8217;architecte partagé entre plusieurs projets est forcément insuffisant.</li><li>La <strong>suppression de la perte financière sèche liée à l&#8217;arrêt brutal de projets</strong> pour cause de manque de maîtrise des risques inhérents aux projets menés en cascade <em>(le phénomène du puit sans fond si souvent constaté)</em>.</li><li>L&#8217;<strong>avantage concurrentiel</strong>, traduit en monnaie sonnante et trébuchante, apporté à l&#8217;entreprise par un logiciel qui, pour une fois, sera conforme aux besoins des utilisateurs, qui sera capable d&#8217;intégrer au fil de l&#8217;eau les changements de contexte commercial, juridique ou légal plutôt que de les décaler à la prochaine release.</li></ul><p>Nous nous devons de faire une nécessaire mise en garde : Les bénéfices <em>(ou les droits)</em> apportés par les méthodes agiles sont contrebalancés par de réels devoirs auxquels on ne peut pas se soustraire.<br
/> Ne pas les respecter revient à sombrer dans la <a
href="http://blog.xebia.fr/2007/11/22/le-wannabisme-agile/">Wanabisme agile</a>, c&#8217;est-à-dire le pire des mondes.</p><p>Nous vous le promettons, 2009 sera une année très faste pour ceux, qui comme nous, croient fondamentalement au bien fondé intellectuel des méthodes agiles et qui les mettent en place, <strong>une année comme une autre, une année passionnante</strong>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/26/2009-6-raisons-d%e2%80%99aimer-la-crise/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/</link> <comments>http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#comments</comments> <pubDate>Mon, 24 Nov 2008 17:58:29 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Seam]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[SoapUI]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1050</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ? Agilité La fin de l&#8217;Agilité ? SOA SOA : de la crise de doute à la désillusion ? Le coin de la technique Seam 3 : les futures orientations de [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OSGiSpringdmServerstandardispo">OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ?</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#LafindelAgilit">La fin de l&#8217;Agilité ?</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SOAdelacrisededouteladsillusio">SOA : de la crise de doute à la désillusion ?</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SeamlesfuturesorientationsdeSe">Seam 3 : les futures orientations de Seam</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SortiedeNetbeans">Sortie de Netbeans 6.5</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SortiedeSOAPUI">Sortie de SOAP UI 2.5</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#SurvoldelarchitectureMySpace">Survol de l&#8217;architecture MySpace</a></li><li><a
href="http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/#OraclesortsonIncubateurCoheren">Oracle sort son Incubateur Coherence</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="OSGiSpringdmServerstandardispo"></a>OSGi : Spring dm Server standardisé pour l&#8217;été 2009 ?</h4><p>Eric Newcommer, <em>OSGi Enterprise Expert Group <em>(EEG)</em> co-chair</em>, présente dans &laquo;&nbsp;<a
href="http://blogs.iona.com/newcomer/archives/000578.html" title="OSGi for the Enterprise Gets a Bit Closer &#038; LinkedIn Too" >OSGi for the Enterprise Gets a Bit Closer &#038; LinkedIn Too</a>&nbsp;&raquo; l&#8217;avancement de l&#8217;EEG qui a pour ambition de faire coïncider la fin de ses travaux avec la sortie d&#8217;OSGi R4.2 annoncée pour Juin 2009.</p><p>On y apprend que la &laquo;&nbsp;RFC 124 / Blueprint Component Model&nbsp;&raquo; est quasiment finalisée, son implémentation de référence <em>(RI)</em> est <a
href="http://www.springsource.com/products/suite/dmserver" title="SpringSource dm Server" >SpringSource dm Server</a> dont elle a repris les principes ; le Test Compatibility Kit <em>(TCK)</em> est développé par le projet <a
href="http://geronimo.apache.org/" title="Apache Geronimo" >Apache Geronimo</a>. Souhaitons que cette standardisation de dm Server permette à SpringSource de reverser le contenu de son <a
href="http://www.springsource.com/repository/app/" title="Enterprise Bundle Repository" >Enterprise Bundle Repository</a> dans l&#8217;officiel <a
href="http://www.osgi.org/Repository/HomePage" title="OSGi Bundle Repository" >OSGi Bundle Repository</a> de l&#8217;OSGi Alliance et que la prolifération de bundles customisés par les grands acteurs de l&#8217;OSGi prenne fin.</p><p>Par ailleurs, &laquo;&nbsp;RFC 119 / Distributed OSGi&nbsp;&raquo; serait elle aussi prête. <a
href="http://cxf.apache.org/" title="Apache CXF" >Apache CXF</a> est en charge de la Reference Implementation <em>(Cf. <a
href="http://blogs.iona.com/newcomer/archives/000569.html" title="First Ever Demo of Distributed OSGi" >First Ever Demo of Distributed OSGi</a>)</em> et Tibco s&#8217;occupe du Test Compatibility Kit. Nous remarquerons que Distributed OSGi reprend certains principes de <a
href="http://blog.xebia.fr/2007/04/11/introduction-a-sca-service-component-architecture/" title="Service Component Architecture (SCA)" >Service Component Architecture (SCA)</a> et que le positionnement des deux technologies manque encore de clarté. De plus, à la différence de &laquo;&nbsp;Blueprint Component Model&nbsp;&raquo; avec Spring dm Server, Distributed OSGi ne connaît pas encore de <em>&laquo;&nbsp;vraie&nbsp;&raquo;</em> implémentation.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LafindelAgilit"></a>La fin de l&#8217;Agilité ?</h4><p>Le prix du buzz de la semaine revient incontestablement à James Shore pour son article <a
href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html" title="The Decline and Fall of Agile" >The Decline and Fall of Agile</a>. &laquo;&nbsp;Jim&nbsp;&raquo; raconte qu&#8217;il a noté un changement dans son métier : avant on l&#8217;appelait pour introduire les méthodes agiles sur les projets, aujourd&#8217;hui on l&#8217;appelle pour secourir des projets soi-disant &laquo;&nbsp;agiles&nbsp;&raquo;.<br
/> Et par &laquo;&nbsp;agile&nbsp;&raquo; la plupart des clients entendent Scrum, la méthode la plus répandue. Il reproche à Scrum son silence sur les pratiques d&#8217;ingénierie logicielle à mettre en place <em>(contrairement à XP)</em>, pourtant indispensables à la viabilité d&#8217;un projet. Il critique également la <a
href="http://www.scrumalliance.org/" title="Scrum Alliance" >Scrum Alliance</a> et son système de certification ScrumMaster qui donnent l&#8217;impression que l&#8217;agilité est facile. La nature humaine nous incite à ne choisir que les côtés agréables <em>(les sprints et les daily scrums)</em> mais nous ignorons les côtés plus difficiles, qui sont aussi les plus importants : équipe co-localisée, auto-organisée, produit livrable à chaque fin d&#8217;itération, élimination des obstacles.</p><p>Cet article a déclenché de vives réactions dans la communauté agile, certaines un peu <a
href="http://blog.objectmentor.com/articles/2008/11/16/dirty-rotten-scrumdrels" title="puériles" >puériles</a>, d&#8217;autres plus constructives. Sur <a
href="http://www.infoq.com/news/2008/11/decline-of-agile" title="InfoQ" >InfoQ</a> par exemple, le <a
href="http://en.wikipedia.org/wiki/Hype_cycle" title="Gartner Hype Cycle" >Gartner Hype Cycle</a> est évoqué pour expliquer ce déclin. Après un pic d&#8217;attentes irréalistes concernant une technologie, celle-ci traverse un creux de désillusion avant de remonter pour atteindre son plateau de productivité. Les méthodes agiles traverseraient-elles actuellement ce creux ?</p><p>Le <a
href="http://www.touilleur-express.fr/2008/11/17/mda-scrum/" title="Touilleur" >Touilleur</a> cite <a
href="http://blog.robbowley.net/2008/11/15/lean-scrum/" title="Rob Bowley" >Rob Bowley</a> qui fait le rapprochement entre la déception de Scrum et l&#8217;engouement récent pour le <a
href="http://en.wikipedia.org/wiki/Lean_software_development" title="Lean Software Development" >Lean Software Development</a>. Il prédit pourtant que le Lean subira le même sort que Scrum, pour les mêmes raisons. Selon lui peu importe la méthode, il y a toujours des personnes qui se concentrent sur les outils plutôt que sur les vrais problèmes. Ces personnes, qui échouent avec Scrum aujourd&#8217;hui, échoueront avec le Lean demain.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="SOAdelacrisededouteladsillusio"></a>SOA : de la crise de doute à la désillusion ?</h4><p>Nous évoquions en Mars dernier dans <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/03/03/revue-de-presse-xebia-46/#annusHorribilis" title="2008, annus horribilis de la la SOA ?" >2008, annus horribilis de la la SOA ?</a>&laquo;&nbsp;</em> la crise de doute qui s&#8217;emparait du Burton Group, grand chantre de la SOA. La crise s&#8217;accentue aujourd&#8217;hui avec l&#8217;autre évangéliste de SOA, le Gartner Group, qui nous gratifie de <a
href="http://blogs.gartner.com/frank_kenney/2008/11/12/ahh-shucks-soa-is-a-failure/" title="Ahh Shucks, SOA Is A Failure (Frank Kenney)" >Ahh Shucks, SOA Is A Failure (Frank Kenney)</a>. À croire que le Gartner Group s&#8217;applique son célèbre <a
href="http://en.wikipedia.org/wiki/Hype_cycle" title="Hype cycle" >Hype cycle</a> et, après avoir loué SOA, tombe en pleine phase de désillusion.</p><p>Est-ce pour autant la fin de SOA ? Certainement pas, des ouvrages comme <a
href="http://www.enterpriseintegrationpatterns.com/" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a> ou <a
href="http://www.enterpriseintegrationpatterns.com/docs/hohpe_developing_in_soa_world.pdf" title="Developing in a Service-oriented World" >Developing in a Service-oriented World</a> <em>(Gregor Hohpe, Google)</em> ont beaucoup apporté à l&#8217;intégration des Systèmes d&#8217;Information.</p><p>Quant aux cabinets de conseils qui ont parfois <em>manqué de pragmatisme</em>, ils ont trouvé des nouvelles marottes avec les architectures du moment : <a
href="http://en.wikipedia.org/wiki/Representational_State_Transfer" title="Representational State Transfer (REST)" >Representational State Transfer (REST)</a> et <a
href="http://en.wikipedia.org/wiki/Web_Oriented_Architecture" title="Web Oriented Architecture (WOA)" >Web Oriented Architecture (WOA)</a> <em>(Cf. <a
href="http://blogs.gartner.com/nick_gall/2008/11/19/woa-putting-the-web-back-in-web-services/" title="Gartner - WOA: Putting the Web Back in Web Services" >Gartner &#8211; WOA: Putting the Web Back in Web Services</a> ou <a
href="http://apsblog.burtongroup.com/2008/09/the-toa-of-rest.html" title="Burton Group : The Tao Of REST" >Burton Group : The Tao Of REST</a>)</em>, sans oublier les promesses mirobolantes du <a
href="http://en.wikipedia.org/wiki/Software_as_a_service" title="Software As A Service (SaaS)" >Software As A Service (SaaS)</a> et du <a
href="http://en.wikipedia.org/wiki/Cloud_computing" title="Cloud Computing" >Cloud Computing</a> !</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SeamlesfuturesorientationsdeSe"></a>Seam 3 : les futures orientations de Seam</h4><p>Gavin King, créateur d&#8217;Hibernate et Seam, présente les futures orientations de <a
href="http://in.relation.to/Bloggers/Seam3" title="Seam3" >Seam3</a>.</p><p>Il indique que Seam 2 était une première couche. Cette couche a pour responsabilité de gérer des composants à état, configurables et injectables pour le développement d&#8217;applications Web riches. Il permet de s&#8217;abstraire du code &laquo;&nbsp;glue&nbsp;&raquo; que l&#8217;on doit faire pour intégrer différentes technologies <em>(JSF, JPA, &#8230;)</em>. Cette première couche est focalisée sur l&#8217;intégration de services à état côté serveur et sur la réalisation d&#8217;interface graphique <em>(par défaut avec JSF)</em>.</p><p>Seam 3 ajoutera une seconde couche, qui aura pour responsabilité de faire de WebBeans le coeur de Seam, d&#8217;améliorer l&#8217;intégration de la sécurité, de <a
href="http://www.jboss.org/drools/" title="Drools" >Drools</a> et <a
href="http://www.jboss.com/fr/products/jbpm" title="jBPM" >jBPM</a>. L&#8217;idée est de faire de Seam 3 un framework d&#8217;infrastructure basé sur Web Beans. Seam 3 permettra donc l&#8217;intégration de moteur de workflow et de moteur de règles qui devrait apporter de nouveaux outils pour la conception et la réalisation d&#8217;applications.</p><p>Seam 3 pourrait conduire à une réécriture de Seam 2 afin d&#8217;intégrer Web Beans.</p><p>A noter que le 2 décembre 2008 se tiendra une <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081202" title="soirée JBoss au Paris JUG" >soirée JBoss au Paris JUG</a>, dont la deuxième partie sera entièrement consacrée au framework Seam.</p><h4><a
name="SortiedeNetbeans"></a>Sortie de Netbeans 6.5</h4><p>Netbeans.org annonce la sortie de son IDE NetBeans 6.5 : <a
href="http://www.netbeans.org/servlets/NewsItemView?newsItemID=1313" title="NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!" >NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!</a>.</p><p>Cette nouvelle version met à disposition des développeurs :</p><ul><li>le debug Javascript dans Internet Explorer et Firefox,</li><li>le développement JavaFX <em>(compilation, déploiement, prévisualisation, édition, &#8230;)</em>,</li><li>l&#8217;intégration de Glassfish V3 Prelude <em>(possibilité de scripter en JRuby)</em>,</li><li>un plugin pour le développement en python : <a
href="http://dlc.sun.com.edgesuite.net/netbeans/6.5/python/ea/" title="NetBeans IDE for Python EA Download" >NetBeans IDE for Python EA Download</a>,</li><li>l&#8217;amélioration et l&#8217;intégration de nouvelles technologies de développement : PHP, Groovy / <a
href="http://grail.sourceforge.net/" title="GRails" >GRails</a>, Ruby <em>(<a
href="http://www.rubyonrails.org/" title="RoR - Ruby On Rails" >RoR &#8211; Ruby On Rails</a>, <a
href="http://rake.rubyforge.org/" title="rake" >rake</a>)</em>,</li><li>et bien d&#8217;autres : <a
href="http://www.netbeans.org/community/releases/65/" title="NetBeans IDE 6.5 Release Information" >NetBeans IDE 6.5 Release Information</a>, <a
href="http://wiki.netbeans.org/NewAndNoteWorthyNB65" title="NewAndNoteWorthyNB65" >NewAndNoteWorthyNB65</a>.</li></ul><p>Netbeans s&#8217;avère une alternative de plus en plus crédible à Eclipse. Il possède des avantages non négligeables par rapport à ce dernier : meilleur support Javascript <em>(et du développement Web avec PHP)</em>, support de Python, JavaFx, etc.</p><p>Pour plus d&#8217;informations, voici quelques screencasts qui montrent le fonctionnement de Netbeans : <a
href="http://cld.blog-city.com/netbeans_ide_65_released_introductory_screencast_released.htm" title="NetBeans IDE 6.5 Released; Introductory Screencast Released" >NetBeans IDE 6.5 Released; Introductory Screencast Released</a>.</p><h4><a
name="SortiedeSOAPUI"></a>Sortie de SOAP UI 2.5</h4><p>SoapUI est un outil graphique pour tester les services web. Il permet d&#8217;inspecter, invoquer, développer, créer des tests de charges et des tests fonctionnels sur des services web. Il apporte aussi des plugins pour Eclipse, IntelliJ IDEA et NetBeans.</p><p>SoapUI 2.5 apporte un grand nombre de fonctionnalités :</p><ul><li><strong>Inspection</strong> et <strong>invocation</strong> :<ul><li
style="font-size:1.0em;">Importation et analyse de fichiers WSDL.</li><li
style="font-size:1.0em;">Appel des différentes opérations d&#8217;un service web.</li><li
style="font-size:1.0em;">SSL / authentification / sécurité WS.</li></ul></li><li><strong>Développement</strong> et <strong>validation</strong> :<ul><li
style="font-size:1.0em;">Génération de stubs client et serveur pour les frameworks les plus populaires : Axis 1.x/2.x, XFire / CXF, JWSDP, Oracle, .NET, GSoap, JBossWS.</li><li
style="font-size:1.0em;">Génération de XML bindings pour JAXB et XMLB.</li></ul></li><li><strong>Tests fonctionnels</strong> :<ul><li
style="font-size:1.0em;">Génération de séries de tests et de testcases sur la base du WSDL.</li><li
style="font-size:1.0em;">Utilisation de scripts « Groovy » pour l&#8217;exécution de tests.</li></ul></li><li><strong>Tests de charge</strong> :<ul><li
style="font-size:1.0em;">Établissement de tests de charge à partir de testcases fonctionnels.</li><li
style="font-size:1.0em;">Établissement d&#8217;assertions, tant au niveau de la performance que de la fonctionnalité.</li><li
style="font-size:1.0em;">Analyse de performance pour des scénarios variés..</li></ul></li></ul><p>Pour voir la liste complète des fonctionnalités, rendez-vous sur <a
href="http://www.soapui.org/features.html" title="le site du projet" >le site du projet</a>.</p><p>Très facile d&#8217;utilisation, SoapUI devient de plus en plus un leader incontournable dans le test des services web en open source. Il existe en version gratuite et open source et en version payante appelée &laquo;&nbsp;SoapUI Pro&nbsp;&raquo;.</p><p>Vous pouvez <a
href="http://sourceforge.net/project/showfiles.php?group_id=136013&#038;package_id=163662&#038;release_id=568878" title="télécharger" >télécharger</a> l&#8217;outil, ou l&#8217;utiliser directement avec le déploiement Java Web Start. Java 1.5 est indispensable à son utilisation.</p><h4><a
name="SurvoldelarchitectureMySpace"></a>Survol de l&#8217;architecture MySpace</h4><p><a
href="http://www.infoq.com/interviews/MySpace-Architecture-Dan-Farino" title="InfoQ poursuit sa série sur les architectures des grands du Web 2.0" >InfoQ poursuit sa série sur les architectures des grands du Web 2.0</a>, avec l&#8217;interview de Dan Farino, architecte principal du site communautaire <a
href="http://www.myspace.com/" title="MySpace" >MySpace</a>.</p><p>Nous entrerons probablement moins dans les détails de cette architecture pour la bonne et simple raison que MySpace est l&#8217;un des seuls site internet de cette taille à tourner sous .Net. Cependant, les grands principes de performances qui permettent au site communautaire de gérer plusieurs millions de visiteurs par jour, et un contenu en constante augmentation, s&#8217;appliquent à n&#8217;importe quelle technologie.</p><ul><li>Mettre l&#8217;accent sur l&#8217;automatisation : avec des fermes comportant plusieurs centaines de serveurs <em>(300 serveurs web IIS frontaux par exemple)</em>, il est vital que toutes les opérations d&#8217;administration des serveurs soient automatisées à une large échelle.</li><li>La détection des anomalies est la première étape nécessaire à l&#8217;amélioration des performances : à cette fin, Dan Farino a dû écrire un outil de supervision sur mesure permettant de &#8216;tracer&#8217; chaque requête à travers les centaines de serveurs de l&#8217;architecture. Cette problématique est relativement courante.</li><li>Pour chaque problème de performance ou de scalling détecté, l&#8217;équipe d&#8217;architectes de MySpace a favorisé la solution sur mesure aux nombreux outils &#8216;génériques&#8217; proposés par Microsoft. On notera en particulier :<ul><li
style="font-size:1.0em;">Le développement d&#8217;un système de cache spécifique, afin de s&#8217;affranchir des problèmes <em>(connus)</em> de GarbageCollection en .Net, et afin d&#8217;alléger la charge pesant sur les serveurs de DB.</li><li
style="font-size:1.0em;">Le développement d&#8217;un serveur de fichiers, en Linux, permettant d&#8217;adresser les fichiers aux utilisateurs finaux directement en HTTP, et gérant la redondance des fichiers audio, video <em>(qui sont la vraie valeur ajoutée de MySpace)</em>.</li><li
style="font-size:1.0em;">Le développement d&#8217;un système d&#8217;introspection du code .Net en temps réel <em>(mesure des temps d&#8217;appels, des allocations mémoire, levée d&#8217;exception, &#8230;)</em> écrit en C++ <em>(afin de monitorer le code .Net de la manière la plus indépendante possible)</em>.</li><li
style="font-size:1.0em;">La création d&#8217;un système de &#8216;load balancing&#8217; spécifique, permettant de rapidement isoler un serveur défaillant et de n&#8217;impacter qu&#8217;un minimum d&#8217;utilisateurs.</li></ul></li></ul><p>Et bien sûr, MySpace respecte un principe que nous avons maintenant rencontré dans tous les sites gérant un trafic ou un contenu important, le partitionnement horizontal et vertical des bases de données, en fixant une limite d&#8217;un million d&#8217;utilisateurs par DB.</p><p>Les autres épisodes de la série disponibles sur notre blog :</p><ul><li><a
href="http://blog.xebia.fr/2008/06/02/revue-de-presse-xebia-59/#eBayexposelesgrandsprincipesdu" title="Ebay" >Ebay</a></li><li><a
href="http://blog.xebia.fr/2008/06/09/revue-de-presse-xebia-60/#LesprincipesarchitecturauxdeLi" title="LinkedIn" >LinkedIn</a></li><li><a
href="http://blog.xebia.fr/2008/10/06/revue-de-presse-xebia-77/#LesdessousdInfoQ" title="InfoQ" >InfoQ</a></li></ul><h4><a
name="OraclesortsonIncubateurCoheren"></a>Oracle sort son Incubateur Coherence</h4><p>Oracle tente d&#8217;élargir la communauté &#8216;Coherence&#8217; après l&#8217;ouverture du mois dernier de son nouveau site web <a
href="http://coherence.oracle.com/display/INCUBATOR/" title="Coherence Incubator" >Coherence Incubator</a>. Veillez à ne pas comparer celui-ci à l&#8217;incubateur Apache, son fonctionnement est tout autre. &#8216;Coherence Incubator&#8217; a été créé dans le but de regrouper un ensemble de projets d&#8217;exemples, chacun d&#8217;entre eux proposant une implémentation de référence pour un cas d&#8217;utilisation standard de l&#8217;outil. Il s&#8217;agit donc d&#8217;un ensemble de bonnes pratiques validées par Oracle. Oracle espère par ce biais faciliter l&#8217;accès à son outil.</p><p>Pour mémoire, <a
href="http://www.oracle.com/technology/products/coherence/index.html" title="Oracle Coherence" >Oracle Coherence</a> se positionne comme l&#8217;une des solutions les plus complètes de grilles de données distribuées. Il  permet de clusteriser vos applications sur un environnement hardware évolutif. Par exemple, l&#8217;ajout et la suppression de machine s&#8217;effectuent sans contrarier la réplication, la distribution et le cache de données au sein du cluster.</p><p>Un mois après sa sortie, l&#8217;incubateur Coherence contient les projets suivants :</p><ul><li><a
href="http://coherence.oracle.com/display/INCUBATOR/Coherence+Common" title="coherence common" >coherence common</a> : un regroupement de classes utilitaires et bonnes pratiques. Utilisés par les autres projets de l&#8217;incubateur.</li><li>Implémentation distribuée du <a
href="http://coherence.oracle.com/display/INCUBATOR/Command+Pattern" title="command pattern" >command pattern</a>.</li><li>Implémentation du <a
href="http://coherence.oracle.com/display/INCUBATOR/Functor+Pattern" title="functor pattern" >functor pattern</a>. Il s&#8217;agit d&#8217;une extension au &#8216;command pattern&#8217; qui permet de renvoyer à l&#8217;appelant des valeurs de retour et des exceptions.</li><li>Implémentation partielle du pattern <a
href="http://coherence.oracle.com/display/INCUBATOR/Messaging+Pattern" title="messaging" >messaging</a>. Messages non persistés, managés en mémoire par Coherence.</li><li>Implémentation du pattern <a
href="http://coherence.oracle.com/display/INCUBATOR/Push+Replication+Pattern" title="Push Replication" >Push Replication</a>. Propagation des modifications des données, réplication.</li></ul><p>Si le contenu de cet incubateur n&#8217;est pas encore très impressionnant, il aura le mérite de servir de bon point de départ aux futurs nouveaux utilisateurs de Coherence. Le nombre de cas d&#8217;utilisation est encore très faible ; reste à savoir à quelle vitesse Oracle enrichira-t-il celui-ci. Après un mois d&#8217;utilisation, seul un nouveau projet a été créé.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/11/24/revue-de-presse-xebia-84/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Scrum distribué : recettes pour avoir des équipes de développement Offshore hyper productives</title><link>http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/</link> <comments>http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/#comments</comments> <pubDate>Thu, 10 Jul 2008 16:09:36 +0000</pubDate> <dc:creator>Luc Legardeur</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/</guid> <description><![CDATA[Scrum a été conçue pour atteindre une productivité de 5 à 10 fois supérieure à celle traditionnellement constatée dans l&#8217;industrie et de nombreuses équipes co-localisées (c.a.d localisées physiquement au même endroit) ont réussi à atteindre cet objectif. La question qui est posée dans cet article est de savoir si des équipes Offshore et distribuées sont [...]]]></description> <content:encoded><![CDATA[<p>Scrum a été conçue pour atteindre une productivité de 5 à 10 fois supérieure à celle traditionnellement constatée dans l&#8217;industrie et de nombreuses équipes co-localisées (c.a.d localisées physiquement au même endroit) ont réussi à atteindre cet objectif. La question qui est posée dans cet article est de savoir si des équipes Offshore et distribuées sont capables d&#8217;atteindre de manière durable de telles performances.</p><p>En particulier, la vélocité d&#8217;une équipe locale peut elle être maintenue voire même augmentée si elle est distribuée au travers de plusieurs continents ?</p><p>Xebia mène depuis mi 2006 des projets agiles distribués entre l&#8217;Europe et l&#8217;Inde. Après avoir atteint le stade de l&#8217;hyper productivité en Europe, les membres indiens de l&#8217;équipe ont été réinstallés dans leur pays d&#8217;origine. Dans le cadre de cette distribution, nous avons constaté que la vélocité de l&#8217;équipe a même augmenté. L&#8217;utilisation des pratiques d&#8217;ingénierie de XP (eXtreme Programming) au sein de projets Scrum a permis à Xebia de répliquer de manière durable un modèle de développement Offshore distribué de grande qualité identique à celui de SirsiDynix <a
href="http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/#1">[1]</a>.</p><h3>Introduction</h3><p>Le but de cet article est donc de décrire un modèle de développement dont la productivité augmente linéairement avec la distribution des équipes sur plusieurs continents et dont la vélocité est comparable à celle d&#8217;équipes co- localisées.<br
/> Ce modèle est reproductible, éprouvé et est particulièrement recommandé aux équipes aguerries, maîtrisant Scrum et XP.<br
/> Les méthodes agiles héritent des meilleures pratiques de sociétés comme Fuji, Xerox, Canon, Honda et Toyota. Combiner Scrum à XP a permis d&#8217;atteindre des niveaux de productivité de 5 à 10 fois supérieurs à la moyenne de notre industrie <a
href="#3">[3]</a> <a
href="#5">[5]</a>. En 2005, deux sociétés agiles, SirsiDynix (E.U) et Exigen Services (Russie) ont utilisé des équipes Scrum distribuées afin d&#8217;atteindre des performances linéaires dans le cadre d&#8217;un grand projet de plus d&#8217;un million de lignes de code. L&#8217;équipe distribuée entre les Etats Unis et la Russie a atteint une vélocité équivalente à celle d&#8217;une équipe co-localisée et a réussi à construire une liste de fonctionnalités équivalente à celle d&#8217;une équipe de 350 personnes d&#8217;un projet mené traditionnellement en cascade (Waterfall).<br
/> De 2006 à 2008, Xebia a mis en place des équipes distribuées pour moitié en Europe et pour moitié en Inde dans le cadre de différents projets. Ces équipes ont utilisé le processus de développement de Scrum avec les pratiques d&#8217;ingénierie de XP.<br
/> Nous aborderons donc au cours de cet article les stratégies Offshore à adopter pour lever les obstacles géographiques, linguistiques et  culturels traditionnellement rencontrés dans les projets Offshore et les techniques permettant de les mettre sur la voie de la réussite.<br
/> La distribution des équipes Scrum au travers de plusieurs continents élimine les problèmes de communication, les pratiques XP résolvent les problèmes d&#8217;intégration et les réunions quotidiennes (Daily Scrum Meetings) maintiennent l&#8217;emphase sur les priorités du client.<br
/> Les expériences menées dans d&#8217;autres sociétés ont démontré que la proximité géographique peut doubler  la productivité des équipes agiles <a
href="#8">[8]</a>. Ici, le modèle Agile distribué rend transparent l&#8217;éloignement géographique pour atteindre des performances équivalentes ou supérieures aux équipes agiles co-localisées.</p><h3>Les challenges de l&#8217;Outsourcing Offshore</h3><p>Que ce soit aux Etats Unis,  en Europe et au Japon, de plus en plus d&#8217;entreprises font appel au développement logiciel Offshore dans des pays d&#8217;Europe de l&#8217;Est et en Asie. Pour autant, les équipes opèrent localement et les problèmes de communication altèrent le niveau de productivité de celles-ci.<br
/> La plupart des organisations Offshore exigent des spécifications détaillées avant le démarrage des projets. Il est prouvé que ces méthodes de planification atteignent des niveaux élevés d&#8217;échecs.<br
/> Les coûts cachés du développement Offshore sont significatifs et cela dès le début.<br
/> Barthelemy <a
href="#8">[8]</a> a mené une étude auprès de 50 sociétés et a démontré que 14% des opérations menées en Offshore sont des échecs. Son rapport démontre que les coûts de transition liés à l&#8217;établissement de relations avec un nouveau fournisseur engloutissent souvent l&#8217;intégralité des  économies attendues par le faible coût de la main d&#8217;œuvre. Le temps moyen entre l&#8217;étude d&#8217;opportunité de l&#8217;Offshore et l&#8217;atteinte de la vitesse de croisière chez le fournisseur est de 18 mois pour des petits projets.<br
/> Par conséquence, la MIT Sloan Management Review conseille à ses lecteurs de ne pas outsourcer les projets critiques.<br
/> Les trois objectifs que poursuivent les projets Offshore sont les suivants:</p><ol><li>faible coût de la main d&#8217;œuvre</li><li>recherche de compétences locales</li><li>accroissement ou au contraire la diminution des projets sans avoir à licencier son propre personnel</li></ol><p>Le premier objectif n&#8217;est pas facilement atteignable. Chez PatientKeeper (une société du MIT, fondée en 2000 où travaille Jeff Sutherland), entre 2004 et 2007, le point mort des projets Outsourcés n&#8217;était atteint que lorsque les développeurs indiens ne coûtaient que 10%  du prix de leurs homologues américains. Le comité de Direction de PatientKeeper décida alors de stopper définitivement  les projets Offshore.<br
/> Attirer les compétences locales peut aussi s&#8217;avérer être un problème. Jack Blunt, Président de Dynix et ancien Directeur des Opérations de Borland refusa d&#8217;outsourcer ses projets en Inde ou en Chine lorsqu&#8217;il découvrit que le Turn Over dans ces pays était entre 30% et 50% <a
href="#9">[9]</a>.<br
/> Tenir les promesses du développement Offshore requiert de faire de vraies économies, d&#8217;avoir des équipes Offshore stables et d&#8217;élaborer une stratégie destinée à  la connaissance en interne.<br
/> Cela n&#8217;est possible que si les équipes Offshore ont atteint le même niveau de productivité que les équipes internes et si les équipes internes et les équipes  Offshore maintiennent le même niveau de connaissance.</p><h3>Les modèles de distribution de Scrum</h3><p>Considérons les trois modèles d&#8217;équipes  Scrum  suivants :</p><ul><li><strong>Equipes Scrum isolées</strong> : Les équipes Scrum sont isolées les unes des autres géographiquement.</li><li><strong>Les Scrum de Scrum distribuées</strong> : Les équipes Scrum sont isolées les unes des autres et intégrées par un Scrum de Scrum <a
href="#6">[6]</a> qui se réunit régulièrement.</li><li><strong>Equipes Scrum  distribuées</strong> : Les équipes Scrum sont cross fonctionnelles et distribuées au travers des continents.</li></ul><p>Les équipes Scrum isolées du projet Google AdWords ont exprimé le besoin de meilleures pratiques de communication. La bonne pratique recommandée par la Scrum Alliance est le modèle Scrum de Scrum distribué. Ce modèle divise le travail au travers d&#8217;équipes Scrum isolées cross fonctionnelles tout en éliminant la plupart des dépendances entre celles-ci. Les équipes Scrum sont reliées par des Scrum de Scrum où les ScrumMasters des différentes localisations se rencontrent régulièrement.<br
/> Le modèle Scrum  distribué, comme le montre le modèle OneTeam de Xebia, distribue intégralement toutes les équipes et chaque équipe Scrum a des membres à plusieurs endroits.<br
/> Même si, de prime abord, cela semble alourdir le processus de communication et de synchronisation,  les Daily Scrum aident à supprimer les barrières culturelles et à  lisser les disparités dans le mode de travail tout en améliorant l&#8217;emphase sur les besoins clients et leur compréhension par les équipes Offshore.<br
/> A l&#8217;échelle d&#8217;une entreprise, ce modèle organise le projet autour d&#8217;une seule base de code intégrée.<br
/> Le maximum de valeur métier est délivré  par Scrum en implémentant les fonctionnalités du  Product Backlog dans l&#8217;ordre des valeurs métier.<br
/> Les fonctionnalités du produit sont représentées par Xebia en User Stories et la taille d&#8217;une User Story est évaluée en Story Points <a
href="#5">[5]</a>.<br
/> Les équipes de Xebia mesurent le coût en Euro par User Story.<br
/> La valeur de la fonctionnalité divisée par le coût est l&#8217;indicateur principal de la valeur métier ainsi délivrée et est directement proportionnelle à la vélocité de l&#8217;équipe, calculée en Story Points par itération.<br
/> Xebia contrôle sans cesse que la vélocité d&#8217;une équipe distribuée équivaut à celle d&#8217;une équipe co-localisée.<br
/> Le modèle Scrum  distribué n&#8217;est conseillé qu&#8217;aux équipes agiles expérimentées.<br
/> Il s&#8217;avère que les équipes  distribuées ont un meilleur focus que les équipes co-localisées.<br
/> La métrique la plus communément admise pour comparer la productivité entre projets est le Function Point puisqu&#8217;il représente directement les fonctionnalités délivrées.<br
/> Capers Jones démontra  il y a quelques années que le nombre de fonctionnalités délivrées par les Function Points peut être estimé par le &laquo;&nbsp;sacro saint&nbsp;&raquo; nombre de lignes de code.<br
/> Même si la mesure de la valeur métier est moins directe, c&#8217;est la meilleure manière de mesurer des équipes à l&#8217;échelle de l&#8217;industrie informatique.<br
/> On peut toujours argumenter du fait qu&#8217;écrire un grand nombre de lignes de code ne garantit pas de produire de la valeur métier. Les équipes Scrum  utilisent également les pratiques d&#8217;ingénierie xP produisent plus de lignes de code qu&#8217;une équipe standard de l&#8217;industrie car :</p><ul><li>Scrum priorise le Product Backlog en fonction de la valeur métier, garantissant ainsi que les lignes de code produites optimisent la valeur métier délivrée.</li><li>La pratique XP consistant à refactorer élimine des milliers de lignes de code qui seraient restées statiques dans un projet en cascade.</li></ul><p>Le message de ce document est donc que les équipes Scrum/XP de Xebia délivrent les Function Points sept fois plus vite qu&#8217;une équipe standard dans un projet en cascade.</p><h3>Le cas ProRail de Xebia</h3><p>Le meilleur moyen d&#8217;illustrer le modèle  distribué est de prendre un cas réel : le projet ProRail mené par Xebia.<br
/> ProRail , la branche infrastructure et logistique des chemins de fer néerlandais devait développer un nouveau système d&#8217;informations voyageurs.<br
/> Les informations sur les horaires des trains sont centralisées et mises à jour par le réseau ferroviaire lui même.<br
/> Quand un train est en retard ou en avance, l&#8217;information est collectée par des capteurs disséminés dans l&#8217;infrastructure ou dans certains cas, manuellement.<br
/> Xebia a donc mené le projet d&#8217;affichage de ces informations aux voyageurs pour l&#8217;ensemble des Pays Bas.<br
/> Les développements portaient sur  la construction du système d&#8217;agrégation et de distribution de l&#8217;information (incluant le routage d&#8217;informations ad&#8217;hoc pour chaque gare pour l&#8217;ensemble des trains la concernant), le client d&#8217;affichage, le système audio ainsi que le contrôle et le monitoring des interfaces.<br
/> Dans ce type de projet très visible et très sensible et nécessitant une très haute disponibilité, les besoins non fonctionnels sont nombreux.<br
/> Le temps était le critère majeur car des projets antérieurs, menés en cascade, n&#8217;avaient pas respecté leurs engagements.<br
/> La transparence et la recherche de l&#8217;amélioration continue ont été des critères déterminants pour le client dans le choix de Xebia.<br
/> Le choix du développement Offshore a été guidé par les coûts et la capacité à monter en charge rapidement.</p><h4><a
title="4.1" name="4.1"></a>Structure projet et montée en charge</h4><p>Xebia a initialisé le projet par une courte phase de construction du Product Backlog, une conception sommaire de l&#8217;Architecture ainsi qu&#8217;un plan qualité. La recette et les spécifications étaient laissées à la charge du client.<br
/> Après 3 semaines d&#8217;initialisation de projet, une équipe co-localisée mena deux itérations.<br
/> La longueur d&#8217;une itération avait été fixée à 2 semaines pour l&#8217;ensemble du projet.<br
/> Les équipes indiennes furent introduites sur site dès la troisième itération.<br
/> Les membres de l&#8217;équipe néerlandaise et ceux de l&#8217;équipe indienne furent regroupés au sein d&#8217;une même équipe, co-localisée, partageant un seul et même Product Backlog et des pratiques d&#8217;ingénierie d&#8217;XP.<br
/> Durant les itérations co-localisées, les membres de l&#8217;équipe ont scellé des relations interpersonnelles qui ont perdurées jusqu&#8217;à la fin du projet et les équipes indiennes ont pu ainsi s&#8217;approprier pleinement  le contexte du client.<br
/> Cela a aussi permis d&#8217;aligner tout le monde sur des pratiques, des standards, des rôles et des outils communs.<br
/> Après 3 itérations, l&#8217;équipe indienne retourna en Inde. Force est de constater qu&#8217;en 5 itérations (10 semaines), l&#8217;équipe  avait atteint le niveau de l&#8217;hyper-productivité.<br
/> Le projet est ensuite monté en charge après le retour des indiens chez eux.<br
/> Des développeurs furent ajoutés au dispositif pour ainsi former deux équipes supplémentaires, chacune avec des membres distribués dans les deux pays.<br
/> Une attention toute particulière fût portée au partage de l&#8217;expérience avec les  nouveaux au sein des équipes  et des pratiques comme le Pair Programming furent largement  utilisées pour accélérer leur apprentissage.<br
/> La division cellulaire fut ainsi répétée jusqu&#8217;à atteindre la taille désirée.<br
/> Le projet grossit donc jusqu&#8217;à atteindre 3 équipes distribuées et une équipe Scrum locale, avec au total 25 personnes. Les équipes partagèrent le même Product Backlog mais chacune avait son propre Sprint Backlog.<br
/> A la fin du projet, les équipes furent peu à peu réduites et fusionnées entre elles.<br
/> Comme le client préféra que la maintenance soit prise en charge par des ingénieurs néerlandais, les équipes indiennes furent les premières à disparaitre du dispositif.<br
/> La taille totale du projet fût de 20 années/homme, 100.000 lignes de code sur une période de 11 mois.</p><h4>Les avantages de la démarche constatés</h4><p>L&#8217;approche OneTeam prônée par Xebia dans le cadre de développements Offshore Agiles  distribués atteint les mêmes résultats qu&#8217;une équipe co-localisée.<br
/> Les différents aspects du projet sont décrits ci-dessous :</p><p><strong>Productivité</strong><br
/> Durant le projet, la vélocité fut déterminée par le nombre de Story Points qu&#8217;une équipe pouvait réaliser dans le cadre d&#8217;une itération.<br
/> Comme les Story Points ne peuvent pas être convertis d&#8217;un projet à l&#8217;autre, le projet fut estimé en Function Points.<br
/> Cette estimation fut faite pour l&#8217;ancienne implémentation et la nouvelle implémentation, et les chiffres correspondent.<br
/> Même si cette mesure de la valeur métier n&#8217;était qu&#8217;approximative, elle fut le seul moyen de faire des comparaisons entre projets.</p><p>Schéma 1 : Productivité d&#8217;équipes Scrum co-localisées, équipes projet classique, d&#8217;équipes SirsiDynix distribuées, et Xebia One Team.</p><p
align="center"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/07/fig1.png" alt="fig1.png" /></p><p>Le Schéma 1 montre aisément que les équipes Scrum surperforment les équipes de projet classique.</p><p>Les résultats d&#8217;une équipe Scrum distribuée Xebia sont équivalents  à ceux d&#8217;une équipe Scrum co-localisée et les performances de Xebia et SirsiDyniax sont équivalentes.<br
/> Ce schéma montre que la performance d&#8217;une approche Scrum  distribuée est reproductible et non spécifique à SirsiDynix.<br
/> Afin d&#8217;évaluer l&#8217;effet de la distribution des équipes sur la productivité, nous pouvons examiner le coût de la réalisation par Story Point tout au long du projet.</p><p
align="center"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/07/fig2.png" alt="fig2.png" /></p><p>Il est important de noter qu&#8217;il y a une augmentation graduelle du coût de réalisation d&#8217;un Story Point dans la plupart des projets classiques dès que complexité grandit et que le code devient important, ce qui n&#8217;est pas le cas dans le diagramme ci-dessus.<br
/> La transition d&#8217;une équipe co-localisée à une équipe distribuée survint à la 6ème itération.<br
/> Nous pouvons voir sur le schéma que le nombre d&#8217;heures nécessaires à l&#8217;implémentation d&#8217;un Story Point n&#8217;a pas été affecté par cette transition.<br
/> Les estimations des Story Point ont été faites en début de projet pour l&#8217;ensemble du Product Backlog et au fil de l&#8217;eau quand ils naissaient.<br
/> Les itérations 18 et 19 montrent une augmentation significative du nombre d&#8217;heures nécessaires par Story Point : une dette technique s&#8217;était formée dans lors des itérations précédentes.<br
/> A partir de l&#8217;itération 20, cette dette fut systématiquement réduite pour aboutir finalement à augmentation constante de la productivité.</p><p><strong>Une communication claire au travers de Scrum.</strong><br
/> Les Scrum Meetings facilitent grandement la communication. Cela est rendu possible dans une équipe Scrum distribuée par le fait que les objectifs sont complètement partagés.<br
/> Toutes les cérémonies de Scrum furent tenues en mode distribué en utilisant le système de vidéo conférence de Skype à l&#8217;exception des démos.<br
/> Des salles de réunion séparées furent créées avec l&#8217;équipement de conférence ad&#8217;hoc. Un outil de planification utilisant une version électronique du Burn Down Chart permettait d&#8217;avoir une vision partagée du statut du Sprint en cours pour l&#8217;ensemble de l&#8217;équipe. Un microphone passait de main en main pour des raisons d&#8217;audibilité. Nous avons découvert que les face à face visuels accroissaient l&#8217;efficacité de la communication et permettaient d&#8217;améliorer les relations interpersonnelles.<br
/> Les Sprint Planning impliquaient tous les membres de l&#8217;équipe, utilisant les Planning Poker Cards afin que les équipiers des deux continents participent aux estimations.<br
/> Planifier un Sprint prenait environ 4 heures.<br
/> Les Daily Stand Up meetings démarraient quand les européens arrivaient au travail. Un Stand Up meeting ne durait pas plus de 15 minutes.<br
/> Le Retrospective Meeting  était mené comme le Sprint Planning Meeting et durait environ 2 heures.<br
/> La démonstration, elle, n&#8217;était pas partagée afin de garder un maximum d&#8217;emphase et de réactivité face au client. Les Européens briefaient les indiens après la démo.<br
/> Les meetings Scrum de Scrum avaient lieu juste après les Daily Scrum afin de synchroniser les éventuelles dépendances entre les équipes, et d&#8217;identifier les obstacles ou les points techniques.<br
/> L&#8217;ensemble de ces meetings étaient donc conformes au cycle officiel. Les face à face étaient aussi tenus si nécessaires ainsi que les revues de conception.<br
/> Il n&#8217;y avait donc rien de différent par rapport à l&#8217;utilisation de Scrum co-localisée si ce n&#8217;est l&#8217;outillage.</p><p><strong>Consistance et qualité</strong><br
/> Durant tout le projet, une attention toute particulière a été portée à la qualité.<br
/> La notion Scrum de &nbsp;&raquo; done &nbsp;&raquo; sur ce projet était la suivante : couverture à 80% des tests unitaires, chaine de tests fonctionnels complètement automatisée, tests de non régression complets,  tests de charge et de performance mis en place pour toutes les User Stories et production de la documentation nécessaire.<br
/> Pour chaque fonctionnalité, l&#8217;intégralité de l&#8217;équipe était impliquée afin de débattre de la conception et de refactorer si nécessaire.<br
/> En complément à cette propriété collective de la conception, chaque équipe employait un &nbsp;&raquo; Gardien de la Qualité &laquo;&nbsp;. Il s&#8217;agissait d&#8217;un membre de l&#8217;équipe responsable de la qualité et de la consistance des travaux menés. Chaque fois qu&#8217;il soulevait un problème, il était traité par l&#8217;intégralité de l&#8217;équipe.<br
/> Tous les membres de l&#8217;équipe partageaient la même pièce et des membres d&#8217;une équipe participaient systématiquement aux phases de conception des autres équipes afin de maintenir une consistance architecturale de l&#8217;ensemble.<br
/> Le Pair Programming et la rotation entre les équipes servaient à éviter l&#8217;appropriation du code et maintenir la polyvalence.</p><p
align="center"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/07/fig3.png" alt="fig3.png" /></p><p>Tous les bugs détectés et  leur résolution ont été scrupuleusement comptabilisés tout au long du projet.<br
/> Le Schéma ci-dessus montre que le nombre de bugs est resté constant tout au long du projet (environ 50) évitant ainsi à l&#8217;équipe de constituer ce que l&#8217;on appelle une dette technique.<br
/> Le nombre de bug par KLOC (KiloLineOfCode) a même décru au fur et à mesure de l&#8217;avancée du projet.<br
/> Nous avons aussi constaté que 90% des bugs étaient résolus au sein même de l&#8217;itération où ils avaient été produits.<br
/> En nous basant sur ces chiffres, nous pouvons en conclure que le processus de vérification et de validation isolait 6 bugs par KLOC avant les phases de recette, laissant environ un bug par KLOC.</p><p>Ces résultats sont bien meilleurs que la moyenne de l&#8217;industrie qui est de 5 bugs par KLOC <a
href="#10">[10]</a>.<br
/> Une équipe Scrum distribuée, utilisant les pratiques xP  délivre donc un travail d&#8217;excellente qualité.</p><p><strong>Transparence et contrôle</strong><br
/> L&#8217;équipe projet put donner des estimations pertinentes sur le temps et le budget nécessaires au projet grâce à l&#8217;utilisation du Backlog et un calcul précis de la vélocité de l&#8217;équipe <a
href="#11">[11]</a>.<br
/> Cela permit de mettre à disposition du client toute les informations nécessaires au contrôle total du projet. La transparence et la production d&#8217;un logiciel &#8216;fini&#8217; à la fin de chaque itération permettaient de donner de la visibilité et de construire ainsi une totale relation de confiance.</p><h4>Les problèmes rencontrés</h4><p>Même si Scrum est facile à comprendre, l&#8217;implémenter l&#8217;est beaucoup moins.<br
/> Le développement distribué ajoute une couche de complexité et le projet, comme tout projet, rencontra un certain nombre de difficultés dans ce domaine.</p><p><strong>Les différences culturelles</strong><br
/> Les équipes européennes et indiennes ont des parcours et des cultures très différents.<br
/> Cela est particulièrement vrai dans le domaine de la communication.<br
/> Prenons un exemple : un européen est bruyant et direct alors qu&#8217;un indien est précautionneux et discret.<br
/> Les indiens sont plus hiérarchisés que les européens.<br
/> La meilleure arme pour outrepasser ces différences consiste à travailler sur les relations entre les individus. Les échanges qui ont été maintenus tout au long du projet, le contact visuel quotidien à l&#8217;occasion des Daily Scrum et l&#8217;appartenance à une seule et même équipe sont autant de facteurs qui ont permis de construire des relations interpersonnelles très fortes.<br
/> Ensuite une culture de la communication franche et ouverte a été instaurée par les ScrumMasters ce qui a permis d&#8217;adresser tous les problèmes lors des Retrospectives et de supprimer les barrières culturelles.<br
/> Enfin, le partage d&#8217;une culture d&#8217;entreprise  commune, de part et d&#8217;autre a grandement facilité la construction d&#8217;une équipe soudée.</p><p><strong>Partage du contexte et des priorités</strong><br
/> Dans un contexte de développement distribué, il est parfois difficile de communiquer à l&#8217;équipe Offshore les nuances du contexte et des priorités du client. Afin de distribuer activement une telle connaissance du contexte client, nous avons prévu des voyages réguliers dans les deux sens, des connections Skype permanentes, la mise en place d&#8217;une &nbsp;&raquo; gazette projet &nbsp;&raquo; envoyée à la fin de chaque itération et des contacts informels avec le Product Owner.</p><p><strong>Gérer un client qui fait de l&#8217;agile pour la première fois</strong><br
/> Même si Scrum ne nécessite pas la présence d&#8217;un chef de projet, Xebia ajoute un tel rôle au sein du projet.<br
/> Ce chef de projet est responsable de la négociation financière avec le client. Il gère ses attentes et  fait tout ce qui est possible pour que Scrum fonctionne.<br
/> Comme le client n&#8217;avait aucune expérience Agile, le chef de projet agit comme un coach responsable de mener l&#8217;organisation du client sur la voie de l&#8217;Agilité et servit aussi de Proxy Product owner.<br
/> Cela permit à l&#8217;équipe et aux ScrumMasters d&#8217;avoir, dès le premier jour, un Product Backlog clair et d&#8217;avoir quelqu&#8217;un faisant l&#8217;interface avec le client.<br
/> Le Proxy Product Owner /Chef de Projet s&#8217;assurait de la pertinence du planning Agile et était en contact permanent avec le client pour discuter des jalons, du périmètre et opérer le suivi du projet.<br
/> Les ScrumMasters étaient donc en charge des Sprints, des processus agiles et de la qualité.</p><p><strong>Une partie du travail doit se faire localement</strong><br
/> Même si l&#8217;ensemble des développements peuvent être distribués, certaines tâches du projet ne peuvent l&#8217;être aisément et doivent être traitées localement.<br
/> La 4ème équipe Scrum (<a
href="#4.1">cf 4.1</a>) était purement locale, constituée d&#8217;européens et dédiée à certaines activités impliquant des interactions physiques avec le client. Des exemples de tâches locales sont : écrire de la documentation en néerlandais, se coordonner avec les Responsables de l&#8217;Architecture du client,  discuter des spécifications techniques avec la MOE du client ou bien encore établir la liste des dépendances techniques.</p><p><strong>Les outils nécessaires à la communication et aux processus</strong><br
/> Sur le projet, ScrumWorks a été utilisé pour gérer le Product Backlog et le Sprint Backlog au format électronique.<br
/> Les Burndown Charts étaient imprimés quotidiennement et accrochés aux murs des pièces où travaillaient les équipes.<br
/> Afin d&#8217;obtenir un partage global de l&#8217;information, un Wiki fut utilisé de manière intensive.<br
/> Les discussions d&#8217;Architecture étaient tenues autour de WhiteBoard électroniques.<br
/> Parmi quelques uns des outils accessibles par l&#8217;ensemble des équipes (co localisées et distantes) nous pouvons énumérer un référentiel de code unique, un système d&#8217;intégration continue, des serveurs  et des mailing lists.</p><h3>Conclusion</h3><p>En résumé, nous pensons qu&#8217;il est possible de faire du Scrum distribué avec la même vélocité et la même qualité qu&#8217;en situation co-localisée et cela dans la majorité des projets.<br
/> La stratégie OneTeam abaisse les coûts,  utilise au mieux les talents des membres Offshore tout en permettant une augmentation (ou une diminution) de la taille de l&#8217;équipe sans perte de la connaissance.<br
/> Nous recommandons cette stratégie aux équipes agiles aguerries.</p><h3>Références</h3><ul><li><a
title="1" name="1"></a>[1] Sutherland J., Viktorov, A. and Blount J.: <em>&laquo;&nbsp;Adaptive Engineering of Large Software Projetcs with Distributed/Outsourced Teams&nbsp;&raquo;</em>. Proc. International.  Conférence  Complex Systems, Boston, MA, USA, 25-30 Juin 2006.</li><li><a
title="2" name="2"></a>[2] Sutherland J.: <em>&laquo;&nbsp;Future of Scrum&nbsp;&raquo;</em>: Parallel Pipelining of Sprints in Complex Projects&#8217;. Proc. AGILE 2005, Conférence de Denver, CO, 24-29 Juillet 2005.</li><li><a
title="3" name="3"></a>[3] Beck, K.: <em>&laquo;&nbsp;Extreme Programming Explained: Embrace Change&nbsp;&raquo;</em>, Addison-Welsley, Boston, 1999.</li><li><a
title="4" name="4"></a>[4] Takeuchi, H. et Nokata, I. <em>&laquo;&nbsp;The New New Product Development Game&nbsp;&raquo;</em>, Harvard Business Review, 1986 (Janvier-Février).</li><li><a
title="5" name="5"></a>[5] Cohn, M.: <em>&laquo;&nbsp;User Stories Applied : For Agile Software Development&nbsp;&raquo;</em>, Addison-Wesley, 2004</li><li><a
title="6" name="6"></a>[6] Sutherland, J., et Schwaber, K.: <em>&laquo;&nbsp;The Scrum Papers: Nots, Bolts, and Origins of an Agile Method&nbsp;&raquo;</em>, Scrum Inc, Boston, 2007</li><li><a
title="7" name="7"></a>[7] Jones, C.: <em>&laquo;&nbsp;Software assessments, benchmarks, and best practices&nbsp;&raquo;</em>, Addison Wesley, Boston Mass, 2000</li><li><a
title="8" name="8"></a>[8] Teasley, S. Covi, L., Krishnan, M.S., and Olson I.S.: <em>&laquo;&nbsp;How does radical collocation help a team succeed?&nbsp;&raquo;</em>, Proc CSCW&#8217;00, Philadelphie, PA, 2000, pp. 339-346.</li><li><a
title="9" name="9"></a>[9] Sutherland J, Viktorov, A. Blount J., et Puntikov, N.: <em>&laquo;&nbsp;Distributed Scrum: Agile Project Management with Outsourced Develoment Teams&nbsp;&raquo;</em>. Proc HICSS&#8217;40, Conférence International d&#8217;Hawaii, 2007.</li><li><a
title="10" name="10"></a>[10] Humphrey, W.S.: <em>&laquo;&nbsp;Introduction to the Personal Software Process&nbsp;&raquo;</em>, Addison Wesley, 1996</li><li><a
title="11" name="11"></a>[11] Cohn, M.: <em>&laquo;&nbsp;Agile Estimation and Planning&nbsp;&raquo;</em>, Adison Wesley, 2005</li></ul><hr
/> <em>Traduction libre de l&#8217;article &laquo;&nbsp;<a
href="http://submissions.agile2008.org/node/1442">Fully Distributed Scrum : The Secret Sauce for Hyperproductive Offshored Development Teams</a>&nbsp;&raquo; co écrit par: <a
href="http://jeffsutherland.com/scrum/">Jeff Sutherland</a> Ph. D. (Scrum Inc), Guido Schoonheim (Xebia), Eelco Rustenburg (Xebia) et Maurits Rijk (Xebia).</em></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/07/10/scrum-distribue-recettes-pour-avoir-des-equipes-de-developpement-offshore-hyper-productives/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/</link> <comments>http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#comments</comments> <pubDate>Mon, 07 Apr 2008 17:27:10 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[AIR]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Websphere]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Microsoft se rapproche de la fondation Eclipse Eclispe 4, une refonte du socle ? SpringSource Application Management Suite (AMS) Agilité Polémique : Scrum aliène-t-il XP ? RIA Adobe AIR pour Linux Le coin de la technique SCA Java EE Integration [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#MicrosoftEclipse">Microsoft se rapproche de la fondation Eclipse</a></li><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#Eclispe4">Eclispe 4, une refonte du socle ?</a></li><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#AMS">SpringSource Application Management Suite (AMS)</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#ScrumXP">Polémique : Scrum aliène-t-il XP ?</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#AdobeAIRpourLinux">Adobe AIR pour Linux</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#SCA">SCA Java EE Integration specification : v0.9</a></li><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#WebsphereMQV7">IBM annonce Websphere MQ V7 pour Juin</a></li><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#Cyclomatique">Complexité cyclomatique optimale : 11 selon Enerjy !</a></li><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#JavaModuleSystemOSGI">Java Module System (JSR-277) et OSGI, un silence pesant</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/#avril">Poissons d&#8217;avril</a></li></ul><hr/><h3>Actualité éditeurs / SSII</h3><h4><a
name="MicrosoftEclipse"></a>Microsoft se rapproche de la fondation Eclipse</h4><p>A l&#8217;occasion d&#8217;EclipseCon 08, Sam Ramji, leader de la <a
href="http://port25.technet.com/">communauté Open Source</a> chez Microsoft, a <a
href="http://port25.technet.com/archive/2008/03/19/supernova.aspx">annoncé</a> le début d&#8217;une collaboration entre La fondation Eclipse et Microsoft.<br
/> Le principal but de ce rapprochement concerne une meilleure intégration du toolkit graphique d&#8217;Eclipse <a
href="http://www.eclipse.org/swt/">SWT</a> avec <a
href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">Windows Presentation Foundation (WPF)</a>.</p><h4><a
name="Eclispe4"></a>Eclispe 4, une refonte du socle ?</h4><p>Voulant conquérir de nouveaux horizons, notamment côté serveur, la fondation Eclipse <a
href="http://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00504.html">annonce</a> la création d&#8217;un nouveau composant appelé e4. Le but principal de ce projet est de poser les bases du futur Eclipse 4.0. Partant de zéro, son rôle sera de simplifier la plateforme Eclipse et d&#8217;être résolument tourné vers le web.<br
/> Prévu au mieux pour fin 2009, Eclipse 4 sera développé en parallèle d&#8217;Eclipse 3.4 (Ganymede) et devrait assurer le compatibilité des plugins existants.</p><h4><a
name="AMS"></a>SpringSource Application Management Suite (AMS)</h4><p>SpringSource <a
href="http://blog.springsource.com/main/2008/03/31/springsource-application-management-suite-ams-released/">vient de livrer</a> une solution de monitoring des applications basée sur Spring. Voyons ici un système concurrent de <a
href="http://www.glassbox.com/">Glassbox</a>. Cependant, cet outil tire partie des nouvelles possibilités de configuration par annotation offertes par Spring 2.5. Il comprend automatiquement les annotations @Controller, @Repository, @Transactional, @Component et @Service. L&#8217;avantage donc par rapport à Glassbox finalement c&#8217;est la prise en compte automatique des beans gérés par Spring dans le monitoring.</p><p>SpringSource AMS est basé sur Hyperic&#8217;s HQ Enterprise Edition, fruit du récent partenariat entre les deux sociétés.</p><p>Un outil résolument à suivre &#8230;.</p><h3>Agilité</h3><h4><a
name="ScrumXP"></a>Polémique : Scrum aliène-t-il XP ?</h4><p>Notre collègue <a
href="http://vikashazrati.wordpress.com/about/">Vikas Hazrati</a> a résumé sur <a
href="http://www.infoq.com/news/2008/04/scrum-alienating-xp">InfoQ: Do Extreme Programming Folks Care about Scrum?</a> une discussion très &laquo;&nbsp;animée&nbsp;&raquo; initiée par <a
href="http://www.danube.com/blog/michaeljames">Michael James</a> à propos de Scrum vue par les praticiens d&#8217;XP (eXtreme Programming). Ce dernier pense que Scrum et XP sont des alliés, mais ce n&#8217;est pas l&#8217;avis de tout le monde.</p><p>Comme Guillaume Bodet l&#8217;expliquait dans <a
href="http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/">Scrum ou XP ? Scrum et XP !</a>, nous pensons que Scrum et XP sont complémentaires, Scrum se positionne au niveau de la gestion/organisation de projet tandis que XP concerne les activités de développement.<br
/> Mais comme le dit Bruce Robinson, XP n&#8217;est pas la seule méthode de développement et elle n&#8217;est pas forcément la plus adaptée dans tous les cas, on peut par exemple préférer la revue de code au pair programming.</p><p><a
href="http://alistair.cockburn.us/index.php/Main_Page">Alistair Cockburn</a> répète que les pratiques préconisées par XP sont utiles mais pas nécessaires, des projets fonctionnent très bien sans XP.<br
/> Peu importe la méthode, mais tous sont d&#8217;accord qu&#8217;un projet nécessite des pratiques de développement pour réussir. Effectivement Scrum fournit un cadre méthodologique mais elle nécessite d&#8217;être complétée, &laquo;&nbsp;implémentée&nbsp;&raquo; par des pratiques de développement.</p><p>Wayne Mack propose l&#8217;approche du menu chinois : apprenez les 2 méthodes, choisissez ensuite les éléments qui vous semble intéressants parmi le menu.<br
/> Attention toutefois, Vikas Hazrati nous rappelle à travers le <a
href="http://vikashazrati.wordpress.com/2008/01/27/so-your-agile-adoption-failed-ever-heard-of-shu-ha-ri/">ShuHaRi</a> que choisir les éléments du menu et créer sa propre méthode demande de la maturité, il conseille de commencer par expérimenter une méthode telle que préconisée, et seulement une fois à l&#8217;aise avec la méthode vous pouvez essayer de la personnaliser.</p><p>Pour en revenir aux valeurs de l&#8217;agilité, la méthode n&#8217;est pas le principal, les personnes et leurs interactions sont plus importantes. Car même si vous appliquez de bonnes pratiques, cela ne vous protège pas contre une &laquo;&nbsp;mauvaise&nbsp;&raquo; équipe (manque de compétences techniques, mauvais relationnel, esprit compliqué&#8230;). Quelle que soit la méthode il faut des gens talentueux et motivés pour mener à bien un projet selon <a
href="http://c2.com/cgi/wiki?JbRainsberger">J. B. Rainsberger</a>, cependant un processus peut aider et XP semble le mieux adapté pour compléter Scrum.</p><p>Même si le groupe n&#8217;a pu se mettre d&#8217;accord au final, certains ont mentionné avoir utilisé Scrum et XP ensemble avec succès !</p><p>La discussion originale est sur <a
href="http://tech.groups.yahoo.com/group/extremeprogramming/message/139415">Yahoo! Extreme Programming: How is Scrum alienating the eXtreme Programming folks?</a>.</p><h3>RIA</h3><h4><a
name="AdobeAIRpourLinux"></a>Adobe AIR pour Linux</h4><p><a
href="http://labs.adobe.com/technologies/air/">Adobe AIR</a> est enfin disponible pour la plateforme Linux. Seul bémol, celui-ci est une version alpha. Néanmoins, cette version contient le runtime, un exemple d&#8217;application et le AIR SDK. Par ailleurs, <a
href="http://labs.adobe.com/downloads/flexbuilder_linux.html">Flex Builder 3</a> a aussi été mis à jour afin de supporter la mise en place d&#8217;applications AIR sous Linux.<br
/> Adobe continue son ascension et remporte de plus en plus de succès et d&#8217;adhésion. Va t-on vers une ère Adobe ?</p><h3>Le coin de la technique</h3><h4><a
name="SCA"></a>SCA Java EE Integration specification : v0.9</h4><p>Pendant que le Java Community Process tarde à statuer sur le modèle de composants de bas niveau OSGI, la communauté <a
href="http://en.wikipedia.org/wiki/Service_component_architecture">SCA </a> continue à avancer les pions de son standard d&#8217;assemblage de composants de haut niveau avec la publication d&#8217;une première ébauche de la <a
href="http://www.infoq.com/news/2008/04/sca-java-ee">SCA Java EE Integration specification</a>. Cette spécification a le mérite d&#8217;apaiser le monde Java EE après la tonitruante déclaration de Michael Rowley (BEA) : <em>&laquo;&nbsp;EJB session beans, MDBs, JAX-WS and even JMS aren&#8217;t usually necessary in an SCA universe&nbsp;&raquo;</em> dans <a
href="http://dev2dev.bea.com/blog/mrowley/archive/2007/05/does_sca_define.html">Does SCA define a new programming model for Java?</a>.</p><p>Quel impact pour le quotidien des développeurs Java ? Quasiment aucun pour le moment ; SCA est une spécification à l&#8217;utilisation encore confidentielle (SCA est principalement présent dans Websphere ESB et Process Server).</p><h4><a
name="WebsphereMQV7"></a>IBM annonce Websphere MQ V7 pour Juin</h4><p>Le marché des middlewares de messages est lui aussi modifié par l&#8217;émergence d&#8217;offres open source matures (<a
href="http://activemq.apache.org">Apache ActiveMQ</a>, etc ). Dans cette atmosphère dynamisée, IBM Websphere MQ, le leader du marché, tourne la page de trois ans de V6.0 avec <a
href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=an&amp;subtype=ca&amp;appname=GPA&amp;htmlfid=897/ENUS208-068">l&#8217;annonce de WMQ V7.0 pour Juin 2008</a>.<br
/> Les principales améliorations :</p><ul><li>Amélioration des performances (particulièrement publish/subscribe, réception sur selector et messages non persistents).</li><li>Simplification de l&#8217;administration du mode publish/subscribe et des ressources JMS.</li><li><a
href="http://www-306.ibm.com/software/integration/wmq/httpbridge/">Bridge HTTP</a> pour directement exposer les queues à des clients Web 2.0/Ajax.</li><li>Intégration native du mode publish/subscribe  au Queue Manager [1].</li></ul><p>Nous aurions espéré :</p><ul><li>Un mécanisme de relivraison différé des messages équivalent à la <a
href="http://activemq.apache.org/redelivery-policy.html">redelivery policy d&#8217;ActiveMQ</a>.</li><li>Une amélioration des performances des temporary queues similaire à celle apportée aux selectors. L&#8217;utilisation de files temporaires est un modèle encore plus simple que les selectors pour réaliser des invocations synchrones avec un middleware de messages (cf <a
href="http://enterpriseintegrationpatterns.com/RequestReply.html">pattern request/reply</a>).</li></ul><p>Plus d&#8217;informations dans <a
href="ftp://ftp.software.ibm.com/software/websphere/pdf/DRAFT_WebSphere_MQ_V7_Redbook.pdf">Redbook: WebSphere MQ V7.0 Features and Enhancements (Draft)</a>.</p><p>[1] En v6.0, un broker périphérique était utilisé.</p><h4><a
name="Cyclomatique"></a>Complexité cyclomatique optimale : 11 selon Enerjy !</h4><p>Les outils d&#8217;analyse statique de code fleurissent avec l&#8217;essor des serveur d&#8217;intégration continue. L&#8217;éditeur <a
href="http://www.enerjy.com/">Enerjy</a>, après avoir étudié des projets open source réputés à la loupe de son analyseur, <a
href="http://www.infoq.com/news/2008/03/cyclomaticcomplexity">révise la valeur optimale de la complexité </a> à 11. On notera que cette valeur est légèrement supérieure à celle retenue par CheckStyle, le leader de l&#8217;analyse statique, qui estime que <a
href="http://checkstyle.sourceforge.net/config_metrics.html#CyclomaticComplexity">10 est déjà excessif</a>.</p><p>Si la valeur exacte est sujette à débat, c&#8217;est l&#8217;occasion de se rappeler que la complexité cyclomatique est un indicateur pertinent de qualité du code et que les environnements de développement et serveurs d&#8217;intégration continue rendent aujourd&#8217;hui facile le suivi de ces indicateurs.</p><h4><a
name="JavaModuleSystemOSGI"></a>Java Module System (JSR-277) et OSGI, un silence pesant</h4><p>Nouveau rebondissement dans le feuilleton &laquo;&nbsp;<a
href="http://jcp.org/en/jsr/detail?id=277">JSR-277 : Java Modules System</a> versus OSGI&nbsp;&raquo;.</p><p>La JSR d&#8217;assemblage des composants menée par Sun prenait un retard inquiétant pour être intégrée à la version 7 de Java (Dolphin). Un petit répit s&#8217;annonce avec le décalage de la sortie de Dolphin désormais planifiée pour Janvier 2009.</p><p>Si cette prolongation donne une chance à la JSR-277 de figurer dans la prochaine version de Java, il reste néanmoins un problème de gouvernance de fond sur cette spécification. Peter Kriens (OSGI Alliance) expliquait en Septembre dernier qu&#8217;il a été <a
href="http://www.infoq.com/interviews/osgi-peter-kriens">refoulé de l&#8217;expert group sans raison convaincante</a>. Dalibor Topic (kaffe.org) a <a
href="http://mail.openjdk.java.net/pipermail/modules-dev/2008-January/000463.html">demandé en Janvier l&#8217;éviction de 9 membres de ce même expert group</a> sur une mailing list du projet Open JDK. Les déclarations fusent et l&#8217;expert group de la JSR 277 qui ne communique toujours rien de concret sur la position du très important OSGI, laissant la place à la rumeur et au mécontentement &#8230;</p><h3>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="avril"></a>Poissons d&#8217;avril</h4><p>Premier jour d&#8217;avril oblige, certains ont annoncé de fausses nouvelles, surprenantes ou amusantes. Voici une liste des poissons d&#8217;avril que nous avons recensés :</p><ul><li><a
href="http://www.infoq.com/news/2008/04/microsoft-springsource-purchase">Microsoft rachète SpringSource</a></li><li><a
href="http://www.theserverside.com/news/thread.tss?thread_id=18635">Microsoft rachète TheServerSide.com</a> (décidément Microsoft est en forme)</li><li><a
href="http://www.google.com/virgle/">Google et Richard Branson (Virgin) s&#8217;associent pour lancer la 1ère colonie sur Mars</a></li><li><a
href="http://blog.catchpole.net/2008/04/strange-imagery-found-in-java-class.html">De l&#8217;ASCII Art dans le bytecode Java</a></li><li><a
href="http://www.zeroturnaround.com/blog/javarebel-goes-ai/">Le projet JavaRebel</a> intègre une Intelligence Artificielle qui code à votre place pendant vos pauses-cafés</li><li>Cédric Beust lance le projet Toledo : <a
href="http://beust.com/weblog/archives/000480.html">un générateur de code multi-langage</a></li><li><a
href="http://www.eclipse.org/org/press-release/20080401_nextgen.php">Eclipse e4 déjà disponible</a></li><li><a
href="http://www.theserverside.com/news/thread.tss?thread_id=48904">TSS devient multilingue</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/04/07/revue-de-presse-xebia-51/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>XP Day France 2008</title><link>http://blog.xebia.fr/2008/04/04/xp-day-france-2008/</link> <comments>http://blog.xebia.fr/2008/04/04/xp-day-france-2008/#comments</comments> <pubDate>Fri, 04 Apr 2008 12:53:30 +0000</pubDate> <dc:creator>Guillaume Carre</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Tests unitaires]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/04/04/xp-day-france-2008/</guid> <description><![CDATA[XP Day France 2008 Paris, les 5 et 6 mai 2008 La conférence agile sur les méthodes Agiles ! http://www.xpday.fr Vous êtes en quête d&#8217;idées neuves pour rendre plus efficaces vos projets de développement logiciels&#8230; Vous souhaitez en savoir plus sur les méthodes agiles, leurs bénéfices, leurs limites&#8230; Vous avez mis en place des pratiques [...]]]></description> <content:encoded><![CDATA[<p>XP Day France 2008<br
/> Paris, les 5 et 6 mai 2008</p><p>La conférence agile sur les méthodes Agiles ! <a
href="http://www.xpday.fr">http://www.xpday.fr</a></p><p>Vous êtes en quête d&#8217;idées neuves pour rendre plus efficaces vos projets de développement logiciels&#8230;<br
/> Vous souhaitez en savoir plus sur les méthodes agiles, leurs bénéfices, leurs limites&#8230;<br
/> Vous avez mis en place des pratiques agiles au sein de vos projets et vous souhaitez confronter vos retours d&#8217;expérience à ceux d&#8217;autres praticiens&#8230;</p><p>La conférence XP Day s&#8217;adresse à tous les intervenants des projets logiciels: chefs de projet, clients, décideurs, développeurs&#8230; Loin des conférences &laquo;&nbsp;académiques&nbsp;&raquo; ou des événements commerciaux, le succès du format XP Day, déjà présenté au Royaume-Uni, Benelux, Allemagne, Italie, etc. s&#8217;explique par son orientation pragmatique. XP Day vous apporte des réponses concrètes, des idées que vous pouvez immédiatement mettre en pratique, des sessions interactives, démonstrations et débats sur les sujets suivants et bien d&#8217;autres encore:</p><ul><li>débuter avec <a
href="http://fr.wikipedia.org/wiki/Extreme_programming">Extreme Programming</a></li><li>débuter avec l&#8217;intégration continue</li><li>le TDD avec des frameworks: Spring, etc.</li><li>contractualiser les projets agiles</li><li>mieux communiquer avec les clients</li><li>outils et langages favorables à l&#8217;agilité: Erlang, Javascript&#8230;</li><li>comment aborder l&#8217;analyse en XP</li><li>retours d&#8217;expérience sur Scrum, XP, etc&#8230;</li></ul><p><strong>Xebia </strong>est partenaire et sera présent, <a
href="http://xp-france.net/index.php?option=com_content&#038;task=view&#038;id=48&#038;Itemid=120#S836">je présenterai une session le 6 Mai</a> sur l&#8217;utilisation des librairies de Mock dans les tests unitaires:</p><ul><li>tour d&#8217;horizon des différents frameworks</li><li>exemples concrets d&#8217;utilisation avec le framework <a
href="http://www.easymock.org">EasyMock</a>,</li><li>utilisation dans le cadre d&#8217;une approche TDD.</li></ul><p>XP Day est organisé avec le concours de l&#8217;Association Extreme Programming France (loi 1901). La conférence est à but non lucratif, votre participation aux frais permet de financer d&#8217;autres événements du même type. Elle est fixée pour 2008 à 120€, pour les adhérents de l&#8217;association au 31/12/2007 le tarif appliqué est de 90€. L&#8217;inscription au dîner est fixée à 20€ supplémentaires.</p><p>Pour vous inscrire ou consulter le programme : <a
href="http://www.xpday.fr">http://www.xpday.fr</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/04/04/xp-day-france-2008/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Ce que vous avez peut-être raté au premier trimestre 2008</title><link>http://blog.xebia.fr/2008/04/03/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2008/</link> <comments>http://blog.xebia.fr/2008/04/03/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2008/#comments</comments> <pubDate>Thu, 03 Apr 2008 16:12:35 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Agent]]></category> <category><![CDATA[développement]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[TDD]]></category> <category><![CDATA[Test-Driven-Development]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/04/03/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2008/</guid> <description><![CDATA[Voici la liste des billets les plus lus sur ce blog en janvier, février et mars : Scrum ou XP ? Scrum ET XP ! Lors des Rencontres Agiles, que nous avons co-organisées en décembre dernier &#8211; et qui, soit dit en passant, ont rencontré un fort et encourageant succès -, plusieurs personnes m&#8217;ont demandé [...]]]></description> <content:encoded><![CDATA[<p>Voici la liste des billets les plus lus sur ce blog en janvier, février et mars :</p><h4><a
href="http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/">Scrum ou XP ? Scrum ET XP !</a></h4><p>Lors des <a
href="http://www.rencontresagiles2007.com/">Rencontres Agiles</a>, que nous avons co-organisées en décembre dernier &#8211; et qui, soit dit en passant, ont rencontré un fort et encourageant succès -, plusieurs personnes m&#8217;ont demandé si, pour démarrer un projet agile, il était préférable de choisir eXtreme Programming (XP) ou Scrum. La réponse est simple : il faut adopter les deux !<br
/> La complémentarité de Scrum et XP est communément admise. Scrum se positionne au niveau de la gestion et de l’organisation de projet là où XP se positionne au niveau des activités de développement. C’est la raison pour laquelle ces deux approches fonctionnent si bien ensemble : elles adressent des problématiques différentes et se complètent mutuellement.</p><p>Cet article propose une présentation sommaire de Scrum et de la façon dont elle (il? non, allez, c&#8217;est plutôt une fille) s&#8217;articule avec eXtreme Programming&#8230; Bonne lecture !</p><p><a
href="http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2008/02/07/lanalyse-de-couverture-de-code-en-java/">L’analyse de couverture de code en Java</a></h4><p>Il ne reste plus grand&#8217;monde pour soutenir que l&#8217;écriture de tests unitaires automatisés est une perte de temps sur un projet logiciel &#8211; la notion de dette technique entre dans les moeurs. Cette prise de conscience salutaire se heurte pourtant souvent à deux grandes catégories de difficultés :</p><ul><li>Le conservatisme &#8211; pour ne pas dire la stupidité &#8211; de certains chefs de projet, qui persistent à voir dans l&#8217;écriture des tests une activité contre-productive, qui servira de variable d&#8217;ajustement au moindre coup de grisou</li><li>L&#8217;existant : quand le projet n&#8217;a pas systématisé la pratique du test dès son origine et que la multiplication des anomalies tardives le pousse à la réintroduire. Par où commencer&nbsp;?</li></ul><p>Pour le premier point, la solution passe par un effort pédagogique, ou, pour les cas désespérés, par une reconversion imposée ou un congé sabbatique.<br
/> Pour le second, il faut un peu de bon sens, et un peu d&#8217;outillage.</p><p>C&#8217;est sur le deuxième aspect qu&#8217;interviennent les outils d&#8217;analyse de <strong>couverture de code</strong> (ou &laquo;&nbsp;<strong>code coverage</strong>&nbsp;&raquo; en anglais). Dans la suite, nous verrons que ces outils ne permettent pas d&#8217;évaluer les tests unitaires d&#8217;un point de vue qualitatif, mais qu&#8217;ils peuvent en revanche apporter au bon sens un précieux appui en répondant aux questions suivantes :</p><ul><li>Quels sont les tests unitaires déjà en place&nbsp;?</li><li>Les tests sont-ils en phase (à jour) avec le code qu&#8217;ils testent&nbsp;?</li><li>Les fonctions critiques de l&#8217;application sont-elles couvertes par les tests&nbsp;?</li></ul><p><a
href="http://blog.xebia.fr/2008/02/07/lanalyse-de-couverture-de-code-en-java/">Lire cet article »</a></p><h4><a
href="http://blog.xebia.fr/2008/05/02/java-agent-instrumentez-vos-classes/">Un nouveau type d’architecte: l’Architecte Agile</a></h4><p>On observe ces derniers temps de multiples débats sur le fait de savoir si une équipe agile a besoin d&#8217;un architecte en son sein, et sur la valeur ajoutée de ce dernier sur un projet agile alors que l&#8217;architecture évolue à chaque itération.<br
/> Les architectes « Tour d&#8217;Ivoire » se révèlent petit à petit être le maillon faible des projets agiles. Les responsabilités des architectes traditionnels sont distribuées ci et là au sein des équipes agiles, leur supprimant au passage des tâches qui leur étaient auparavant attribuées.<br
/> Une nouveau genre est en train d&#8217;apparaître et de sortir du lot comme le prédit la théorie de l&#8217;évolution de Charles Darwin &#8211; question d&#8217;adaptation. Le rôle d&#8217;un Architecte Agile ne doit pas susciter de questions et tout membre d&#8217;une équipe agile vous le confirmera: ce sont des équipiers qui apportent l&#8217;une des plus grandes valeurs ajoutées.</p><p>Alors qui est cet Architecte Agile ? Comment savoir si l&#8217;architecte de votre équipe est un Architecte Agile ?</p><p><a
href="http://blog.xebia.fr/2008/05/02/java-agent-instrumentez-vos-classes/">Lire cet article »</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/04/03/ce-que-vous-avez-peut-etre-rate-au-premier-trimestre-2008/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/</link> <comments>http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#comments</comments> <pubDate>Mon, 04 Feb 2008 17:01:12 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Maven]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Microsoft et Yahoo! : quels impacts pour l&#8217;écosystème Java ? Consolidation des stacks open source Java : Spring Source rachète Covalent MySQL sort un nouveau moteur de stockage Spring Security supporte OpenID Agilité 10 façons de se planter malgré Scrum [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#MicrosoftYahoo">Microsoft et Yahoo! : quels impacts pour l&#8217;écosystème Java ?</a></li><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#SpringSourcerCovalent">Consolidation des stacks open source Java : Spring Source rachète Covalent</a></li><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#MySQL">MySQL sort un nouveau moteur de stockage</a></li><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#SpringSecurityOpenID">Spring Security supporte OpenID</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#SePlanter">10 façons de se planter malgré Scrum et XP</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#FlexYahoo">Librairie de composants Flash/Flex par Yahoo!</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#Maven">Debate: Is Maven the right tool for builds?</a></li></ul><hr/><h3>Actualité éditeurs / SSII</h3><h4><a
name="MicrosoftYahoo"></a>Microsoft et Yahoo! : quels impacts pour l&#8217;écosystème Java ?</h4><p>La proposition de <a
href="http://www.zdnet.fr/actualites/internet/0,39020774,39378076,00.htm">rachat de Yahoo! par Microsoft pour 44 milliards de dollars</a> concerne avant tout les aspects médias et publicité des deux entreprises.</p><p>L&#8217;absorption du portail par la firme de Redmond aurait des effets limités sur l&#8217;écosystème Java auquel <a
href="http://natishalom.typepad.com/nati_shaloms_blog/2007/11/architecture-yo.html">Yahoo! préfère LAMP</a> (excepté <a
href="http://bix.yahoo.com/">Yahoo! Bix</a> qui utilise massivement Java).<br
/> On notera qu&#8217;un doute plane sur l&#8217;avenir de <a
href="http://developer.yahoo.com/yui/">Yahoo! UI</a>, framework Ajax que Yahoo! met à disposition sous la conciliante <a
href="http://developer.yahoo.com/yui/license.html">licence open source BSD</a> mais dont il conserve la gouvernance exclusive (<em>&laquo;&nbsp;Copyright (c) 2008, Yahoo! Inc. All rights reserved.&nbsp;&raquo;</em>). La gouvernance partagée des projets Open Source à la Apache ou Eclipse a parfois du bon pour les utilisateurs <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><p>Par ailleurs, Yahoo est le <a
href="http://www.apache.org/foundation/thanks.html">premier sponsor ex-aequo avec Google de la Fondation Apache</a>. La fondation Open Source devra peut être chercher un soutien financier ailleurs.</p><p>Enfin, ce rachat est encore très hypothétique et l&#8217;irruption de <a
href="http://www.zdnet.fr/actualites/internet/0,39020774,39378113,00.htm?xtor=RSS-1">Google en chevalier blanc de Yahoo!</a> ajoute au suspens.</p><h4><a
name="SpringSourcerCovalent"></a>Consolidation des stacks open source Java : Spring Source rachète Covalent</h4><p>Les stacks open source Apache et Spring Framework convergent avec le <a
href="http://blog.springsource.com/main/2008/01/29/some-decisions-are-easy-%e2%80%93-like-springsource-acquiring-covalent/">rachat par SpringSource de Covalent</a>, le leader du support et des services sur les projets de la Fondation Apache. Covalent est notamment un acteur clef du projet Tomcat.</p><p>C&#8217;est pour les clients la perspective d&#8217;une meilleure intégration de Tomcat à Spring et d&#8217;offres de support tout-en-un. A plus long terme, on peut, entre autre, espérer l&#8217;apparition d&#8217;OSGI dans Tomcat comme le <a
href="http://www.theserverside.com/news/thread.tss?thread_id=48259#246336">sous-entend Rod Jonhson</a> (le fondateur de Spring).</p><p>On regrettera que cette annonce ait été marquée par des réactions agressives de la communauté JBoss. Marc Fleury a débuté avec <a
href="http://marcf.blogspot.com/2008/01/spring-source-merges-with-covalent.html">une critique très acerbe sur son blog</a> et les employés JBoss secondés par quelques zélotes ont inondé <a
href="http://www.theserverside.com/news/thread.tss?thread_id=48259">l&#8217;annonce sur The Server Side</a> de commentaires aussi virulents que discutables sur le fond.<br
/> Cette attitude rappelle une période que l&#8217;on croyait révolue après le rachat de JBoss par le très sérieux et professionnel RedHat. C&#8217;est vraiment dommage pour la qualité du portfolio JBoss (Hibernate, JBoss AS, Drools, etc) qui risque de creuser son isolement.</p><h4><a
name="MySQL"></a>MySQL sort un nouveau moteur de stockage</h4><p>Michael Widenius, CTO de MySQL, <a
href="http://monty-says.blogspot.com/2008/01/maria-engine-is-released.html">annonce la sortie de Maria</a>, un nouveau moteur de stockage pour MySQL [1]  visant directement le remplacement du moteur <a
href="http://www.innodb.com/">InnoDB</a>.<br
/> Si la version 1 de Maria ne remplace fonctionnellement que le moteur MyIsam, la <a
href="http://monty-says.blogspot.com/2008/01/maria-engine-is-released.html">version 2 supportera les transactions (commit/rollback et ACIDité)</a> et sera alors une alternative à InnoDB.</p><p>On peut y voir le souhait d&#8217;indépendance de MySQL face à Oracle qui a <a
href="http://www.oracle.com/corporate/press/2005_oct/inno.html">racheté InnoDB en octobre 2005</a>.</p><p>[1] Ressources complémentaires : <a
href="http://solutions.mysql.com/engines.html">MySQL docs : MySQL Pluggable Storage Engine Architecture</a>, <a
href="http://www.softwareprojects.com/resources/programming/t-mysql-storage-engines-1470.html">Mike Peters : MySQL Storage Engines</a></p><h4><a
name="SpringSecurityOpenID"></a>Spring Security supporte OpenID</h4><p>L&#8217;offre grand public autour d&#8217;OpenID continue sa progression (cf <a
href="http://fr.techcrunch.com/2008/01/17/yahoo-integre-openid-une-grande-nouvelle-pour-le-projet">Techcrunch</a>). Après Microsoft, récemment <a
href="http://www.lemondeinformatique.fr/actualites/lire-yahoo-teste-open-id-25029.html">Yahoo</a>, c&#8217;est maintenant au tour du secteur des entreprises de voir arriver une offre autour d&#8217;OpenID : Spring Security.</p><p><a
href="http://sourceforge.net/mailarchive/message.php?msg_name=5b2d38840801270904w45f1c9efsc182d0038da0158f%40mail.gmail.com">Allez voir l&#8217;annonce sur la mailing list</a> ou l&#8217;<a
href="http://raykrueger.blogspot.com/2008/01/acegi-openid-support-update.html">annonce de Ray Krueger, mainteneur du projet</a></p><p>Avec le support de Spring, OpenID va-t-il conquérir les entreprises ?</p><h3>Agilité</h3><h4><a
name="SePlanter"></a>10 façons de se planter malgré Scrum et XP</h4><p><a
href="http://blog.crisp.se/henrikkniberg/">Henrik Kniberg</a> liste les principales erreurs à éviter dans un projet Scrum et XP dans <a
href="http://www.crisp.se/henrik.kniberg/presentations/jfokus-2008/10-ways-to-screw-up-with-Scrum-and-XP.pdf">10 ways to screw up with Scrum and XP</a>, qu&#8217;il a présenté lors de la conférence Suédoise <a
href="http://www.jfokus.se/jfokus/english.jsp">JFokus</a>.<br
/> Il a également publié une <a
href="http://www.crisp.se/henrik.kniberg/scrum/checklist/Scrum-checklist-all.pdf">Scrum checklist</a> qui donne une vision synthétique des pratiques à mettre en oeuvre dans Scrum, classées selon 3 niveaux d&#8217;importance.</p><p>En recoupant les 2 documents, vous pouvez porter un regard critique sur votre projet Scrum afin de vous améliorer.<br
/> A lire avant votre prochaine rétrospective !</p><h3>RIA</h3><h4><a
name="FlexYahoo"></a>Librairie de composants Flash/Flex par Yahoo!</h4><p>Yahoo! <a
href="http://www.yswfblog.com/blog/2008/01/30/astra-galore-new-flash-and-flex-components/">met à disposition de la communauté un ensemble de composants Flash et Flex</a>, <a
href="http://developer.yahoo.com/flash/">ASTRA</a> destiné à étendre la liste (déjà bien riche) de composants de base de Flash et Flex. Yahoo! continue sa politique de générosité, l&#8217;excellente librairie AJAX <a
href="http://developer.yahoo.com/yui/">Yahoo! UI</a> a récemment <a
href="http://yuiblog.com/blog/2008/01/24/2nd-birthday/">fêté ses 2 ans</a>, et se positionne intelligemment sur les deux fronts RIA, AJAX ET Flex, en attendant la prise de parts de marché du bulldozer <a
href="http://www.microsoft.com/silverlight">SilverLight</a> (Microsoft dispose d&#8217;un <a
href="http://update.microsoft.com">outil</a> qui devrait lui permettre de déployer assez aisément des dizaines de millions de plugins SilverLight&#8230;).</p><h3>Le coin de la technique</h3><h4><a
name="Maven"></a><a
href="http://www.infoq.com/news/2008/01/maven-debate">Debate: Is Maven the right tool for builds?</a></h4><p>Dans cet article <a
href="http://www.infoq.com/">d&#8217;infoQ</a>, l&#8217;utilisation et l&#8217;utilité de Maven fait débat. D&#8217;un côté, il en ressort que beaucoup de projets n&#8217;arrivent pas à mettre en place cet outil car jugé trop complexe, ou bien que certains plugins du repository central de Maven sont buggés&#8230; D&#8217;un autre côté, nous voyons que d&#8217;autres projets sont très satisfaits de cet outil, et préfèrent Maven à Ant par exemple. Bien entendu parmi ceux qui sont pour Maven, tout n&#8217;est pas rose&#8230; <a
href="http://raibledesigns.com/rd/entry/re_why_grails_doesn_t">Matt Raible</a> explique pourquoi le projet Grail n&#8217;utilise pas Maven en soulignant certains problèmes et propose même des pistes de solutions.<br
/> Enfin il en ressort que beaucoup de personnes ne savent pas utiliser Maven d&#8217;où une certaine reticence. Pour finir, nous pouvons dire que certes Maven requiert un certain coût d&#8217;entrée, mais une fois celui-ci passé il devient vraiment très simple de mettre en place cet outil avec tout les bénéfices que l&#8217;on peut en tirer !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Un nouveau type d&#8217;architecte: l&#8217;Architecte Agile</title><link>http://blog.xebia.fr/2008/01/29/un-nouveau-type-darchitecte-larchitecte-agile/</link> <comments>http://blog.xebia.fr/2008/01/29/un-nouveau-type-darchitecte-larchitecte-agile/#comments</comments> <pubDate>Tue, 29 Jan 2008 21:21:01 +0000</pubDate> <dc:creator>Guillaume Carre</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Test-Driven-Development]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/01/29/un-nouveau-type-darchitecte-larchitecte-agile/</guid> <description><![CDATA[Ce billet est une libre traduction de l&#8217;article posté par notre collègue Vikas Hazrati sur le site Agile Journal. On observe ces derniers temps de multiples débats sur le fait de savoir si une équipe agile a besoin d&#8217;un architecte en son sein, et sur la valeur ajoutée de ce dernier sur un projet agile [...]]]></description> <content:encoded><![CDATA[<p><em>Ce billet est une libre traduction de <a
href="http://www.agilejournal.com/articles/articles/the-shiny-new-agile-architect.html">l&#8217;article posté par notre collègue Vikas Hazrati</a> sur le site Agile Journal.</em></p><p>On observe ces derniers temps de multiples débats sur le fait de savoir si une équipe agile a besoin d&#8217;un architecte en son sein, et sur la valeur ajoutée de ce dernier sur un projet agile alors que l&#8217;architecture évolue à chaque itération.<br
/> Les architectes « Tour d&#8217;Ivoire » se révèlent petit à petit être le maillon faible des projets agiles. Les responsabilités des architectes traditionnels sont distribuées ci et là au sein des équipes agiles, leur supprimant au passage des tâches qui leur étaient auparavant attribuées.<br
/> Une nouveau genre est en train d&#8217;apparaître et de sortir du lot comme le prédit la théorie de l&#8217;évolution de Charles Darwin &#8211; question d&#8217;adaptation. Le rôle d&#8217;un Architecte Agile ne doit pas susciter de questions et tout membre d&#8217;une équipe agile vous le confirmera: ce sont des équipiers qui apportent l&#8217;une des plus grandes valeurs ajoutées.</p><p>Alors qui est cet Architecte Agile ? Comment savoir si l&#8217;architecte de votre équipe est un Architecte Agile ?</p><p>La réponse n&#8217;est pas aisée ; néanmoins l&#8217;Architecte Agile présente des signes distinctifs, des aptitudes qu&#8217;il exercera au quotidien. Un Architecte Agile doit savoir jongler entre ces différentes caractéristiques. Si l&#8217;architecte de votre équipe possède la plupart des caractéristiques qui suivent, et que vous le voyez jongler entre celles ci, c&#8217;est certainement un bon Architecte Agile.</p><p>Petit avertissement, la description faite ci-dessous peut certes paraître un peu idéaliste, mais elle donne sans aucun doute la direction qu&#8217;un Architecte Agile doit prendre.</p><h3>Le but premier d&#8217;un Architecte Agile : délivrer une solution qui fonctionne avec une qualité optimale</h3><p>Il y a deux aspects à aborder ici. Premièrement, la solution doit être de <em>qualité optimale</em>. Idéalement, sur un projet agile, les exigences de qualité (souvent appelées exigences non fonctionnelles) doivent faire partie intégrante de chaque itération. Les aspects tels que la sécurité, la performance, la qualité du code, etc. font partie intégrante d&#8217;une User Story <a
href="#userstory">[1]</a> existante dans le backlog ou forment une user story distincte. Cependant, force est de constater que l&#8217;équipe agile, impliquée dans l&#8217;implémentation des fonctionnalités oublie bien souvent ces exigences de qualité. L&#8217;Architecte Agile doit alors s&#8217;assurer que le serveur d&#8217;intégration continue communique bien, à tous les membres de l&#8217;équipe à la fin de chaque cycle de build, différentes métriques, telles que des statistiques sur la qualité du code, la performance du système, les anomalies dans le code détectées par les tests unitaires&#8230; Il doit garder un œil sur ces données et attirer inlassablement l&#8217;attention de l&#8217;équipe agile sur celles-ci.</p><p>Le deuxième but est de délivrer une <em>solution qui fonctionne</em>. L&#8217;Architecte Agile évalue différentes options d&#8217;implémentation avec l&#8217;équipe afin de parvenir à une solution qui fonctionne et qui génère de la valeur métier pour le client. Il s&#8217;assure non seulement que la solution fonctionne de manière isolée mais également qu&#8217;elle s&#8217;intègre également parfaitement dans l&#8217;architecture de l&#8217;entreprise déjà en place, et qu&#8217;elle est suffisamment robuste pour être modifiée et étendue dans le futur. Il se concentre sur la solution qui fonctionne, non sur des documents et des livrables qui ne contribueraient pas directement à la mise en place de la solution.</p><h3>L&#8217;Architecte Agile est garant de l&#8217;intégrité conceptuelle</h3><p>Il s&#8217;assure que, dans le coeur de l&#8217;action, personne n&#8217;oublie la mission initiale. Sous la pression du calendrier et des obstacles techniques, les développeurs prennent parfois des décisions qui éloignent le projet de ses objectifs métiers. L&#8217;Architecte Agile maintient dans un esprit collectif les objectifs de la mission.<br
/> L&#8217;intégrité conceptuelle est atteinte lorsque le système développé démontre consistance et uniformité de ses éléments ainsi que la fluidité de leur intégration.<br
/> Prenons pour exemple la métaphore du Drag and Drop présente dans tous les systèmes d&#8217;exploitation modernes. Si le système d&#8217;exploitation a été bâti avec une bonne intégrité conceptuelle, le Drag and Drop devrait fonctionner partout. Ainsi, pour ouvrir un fichier on doit pouvoir le prendre et à le glisser sur l&#8217;application adéquate, et supprimer un fichier doit être aussi simple que de le prendre et de le glisser/déposer dans la corbeille.  En résumé, l&#8217;intégrité conceptuelle consiste à créer un système sans surprise.</p><h3>Un Architecte Agile travaille réellement au sein de l&#8217;équipe</h3><p>Il est impliqué durant la totalité du projet. Des tâches de programmation lui sont affectées, et il implémente des User Stories, comme n&#8217;importe quel autre développeur. L&#8217;implémentation des User Stories ne constitue pas son unique tâche dans la journée, mais représente une part non négligeable de son travail.<br
/> Il fait profiter le projet de son expérience, et donne les grandes directions sur les différents choix d&#8217;architecture effectués tout au long de la vie du projet. L&#8217;architecture n&#8217;est pas figée durant les premières itérations, et continue à évoluer lors de chaque itération, ce qui signifie que contrairement aux architectes « traditionnels », il ne quitte pas le projet pour en rejoindre un nouveau après la traditionnelle phase projet de « mise en place de l&#8217;architecture ».</p><h3>Un Architecte Agile écrit les tests systèmes qui permettent de tester les performances de l&#8217;architecture</h3><p>Il écrit les tests d&#8217;infrastructure qui permettent de tester l&#8217;architecture du système. Si un mauvais choix d&#8217;architecture provoque un problème de performance, celui-ci doit être détecté par le test d&#8217;infrastructure. Puisque les méthodes agiles recommandent d&#8217;écrire les tests en premier lieu (<a
href="http://fr.wikipedia.org/wiki/Test_Driven_Development">Test Driven Development</a>), il écrit les tests qui prouvent que le système n&#8217;offre pas la qualité de service attendue, puis effectue ensuite les modifications nécessaires afin de faire passer ce test. Dans les cas les plus rares où l&#8217;écriture d&#8217;un test peut s&#8217;avérée être difficile, il réfléchit à d&#8217;autres manières de tester l&#8217;architecture.<br
/> Tout ceci permet de s&#8217;assurer que des efforts ne sont pas vains, donnant lieu à un design non éprouvé. Le test confirme la viabilité d&#8217;un bon design dans lequel les efforts de développement vont êtres portés. N&#8217;importe quelle décision d&#8217;architecture, qu&#8217;elle soit majeure ou mineure, doit donc être précédée par un test.<br
/> Par exemple, si le système est supposé supporter une charge de 10 000 utilisateurs simultanés, l&#8217;Architecte Agile écrit des <a
href="http://jakarta.apache.org/jmeter">scénarios JMeter</a> (ou à l&#8217;aide de n&#8217;importe quel autre injecteur) qui vont générer la charge adéquate sur le système, afin de s&#8217;assurer que tout fonctionne normalement en charge. Si le test échoue, il convient ensuite de modifier l&#8217;architecture pour faire en sorte que le test passe (<em>NDT: ou de corriger les anomalies de développement qui ont fait échouer le test</em>). Après ces modifications, le test est à nouveau exécuté cette fois ci avec succès.</p><h3>Un Architecte Agile participe et travaille en équipe, avant tout</h3><p>Il n&#8217;effectue pas seul les choix techniques et de conception: ces décisions doivent être prises de manière collégiale par l&#8217;équipe. Il a l&#8217;esprit ouvert, est totalement conscient du fait qu&#8217;il n&#8217;est pas omniscient, et n&#8217;est jamais obtus et fermé à propos de ses propres idées.<br
/> Les meilleures idées viennent de l&#8217;équipe, lorsque ses membres réfléchissent tous ensemble; n&#8217;importe qui est capable d&#8217;avoir une bonne idée ou de donner un point de vue intéressant. Une communication ouverte et honnête permet aux gens de prendre de meilleures décisions basées sur une information plus précise. L&#8217;Architecte Agile doit faire preuve d&#8217;empathie, doit traiter les gens avec respect, et montre qu&#8217;on apprend en permanence les uns des autres. Il favorise le consensus et permet à tous les membres de l&#8217;équipe de contribuer à l&#8217;élaboration de la solution, et par la même de tous les responsabiliser.<br
/> Si le client présente la problématique du projet et que l&#8217;architecte propose seul dans la foulée une unique solution, vous ne travaillez probablement pas avec un véritable architecte&#8230;</p><h3>Un Architecte Agile est un mentor sur lequel on peut se reposer</h3><p>C&#8217;est une des caractéristiques les plus importantes. Il travaille en permanence avec l&#8217;équipe afin d&#8217;améliorer sa capacité à prendre des décisions. Ce travail pédagogique est évidemment également une corde supplémentaire à son arc. Il utilise au mieux les capacités de l&#8217;équipe en la guidant sur les nouvelles technologies, en lui apportant son soutien sur les frameworks techniques. Il s&#8217;assure par exemple qu&#8217;elle ne va pas rejeter un choix de design par facilité, manque de motivation ou d&#8217;expérience sur certaines techniques ou technologies. Si tel est le cas, il comble le déficit technique de l&#8217;équipe afin de lui permettre de prendre les décisions en toute connaissance de cause.<br
/> Comme Martin Fowler <a
href="http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf">le dit</a>, &laquo;&nbsp;Ceci établit la règle empirique que la valeur d&#8217;un architecte est inversement proportionnelle au nombre de décisions qu&#8217;il ou elle prend&nbsp;&raquo;.</p><h3>Un Architecte Agile est un habile médiateur</h3><p>Une équipe agile comprend des membres qualifiés et passionnés. On observe fréquemment des divergences d&#8217;opinion sur certains choix de design, sur la meilleure manière d&#8217;implémenter une fonctionnalité, sur les façons d&#8217;améliorer le processus de développement, etc. Ces différences d&#8217;opinion, si elles ne sont pas prises en compte rapidement et de manière efficace, peuvent mener à de houleux échanges et de sérieux différents au sein de l&#8217;équipe. Dans ces cas précis, l&#8217;équipe a besoin d&#8217;un médiateur mature et plus expérimenté, qui saura aider l&#8217;équipe et régler ces différents. L&#8217;Architecte Agile convient parfaitement par son niveau de maturité et d&#8217;expérience.</p><h3><a
name="BMUF"></a>Un Architecte Agile ne fait jamais de « Big Modeling Up Front » (BMUF)</h3><p>La plupart du temps il n&#8217;utilise pas les outils de génération de code qui permettent de modéliser les grandes décisions d&#8217;architecture. A la place, il ne modélise juste « ce qu&#8217;il faut », généralement sur un tableau. Le premier modèle simple imaginé grandit et s&#8217;enrichit ensuite à chaque itération. L&#8217;Architecte Agile suit les concepts du <a
href="http://www.agilemodeling.com">Agile Modeling</a>, et pour lui &laquo;&nbsp;le modèle, c&#8217;est le code&nbsp;&raquo;. S&#8217;il est nécessaire de générer le modèle à des fins documentaires, il peut par exemple être généré par un outil de reverse engineering.<br
/> Les modèles, les documents, le contenu, et la manière de communiquer doivent être les plus simples et concis possibles. L&#8217;idée est de se concentrer sur le contenu, et non sa représentation ou sa « mise en forme » qui ajoutent peu de valeur métier.</p><h3>Un Architecte Agile cherche à faire du refactoring à grande échelle</h3><p>Il est en permanence à la recherche de problèmes qui pourraient s&#8217;avérer par la suite être de sérieux obstacles techniques, et nuire à l&#8217;architecture du projet. Au fur et à mesure que le système s&#8217;étend, il s&#8217;assure que l&#8217;architecture suit le rythme. Il est en permanence à l&#8217;affût de changements importants qui pourraient avoir un plus fort impact que prévu. Par exemple, si l&#8217;application n&#8217;utilise pas assez de CPU, et que les performances globales ne sont pas ce qu&#8217;elles devraient être, il va introduire du multi-threading dans l&#8217;application afin qu&#8217;elle utilise ces ressources disponibles, afin de délivrer de meilleures performances. Il démarre par la solution la plus simple possible, et refactor ensuite en permanence la solution afin de garder le niveau de qualité requis tout en implémentant les nouvelles fonctionnalités.<br
/> L&#8217;Architecte Agile aide également à rendre le système modulaire. Au lieu de l&#8217;approche « Diviser pour mieux régner », il recommande de « Régner pour mieux diviser ». Au démarrage du projet, un système le plus simple possible qui fonctionne va être implémenté par une petite équipe. Par la suite, grâce à l&#8217;expérience de l&#8217;Architecte, l&#8217;équipe divisera le système en sous composants naturels, en gardant la vision globale, et on ajoutera si nécessaire de nouveaux membres à l&#8217;équipe pour le développement de chaque nouveau sous composant.</p><h3>Un Architecte Agile est une « super glue »</h3><p>Il se comporte comme une « super glue » entre l&#8217;équipe, les différents fournisseurs et les clients en leur communiquant les différentes décisions prises sur l&#8217;évolution de l&#8217;architecture et du design, les obstacles techniques rencontrés, etc. C&#8217;est l&#8217;intermédiaire entre les mondes métier et technique (<em>NDT : dans la méthode SCRUM, c&#8217;est plutôt le ScrumMaster qui prend en charge ce rôle de suppression des obstacles rencontrés</em>).<br
/> Il a la capacité de voir les obstacles métiers d&#8217;un point de vue technique, et les problèmes techniques à travers un contexte métier. Il sait expliquer la valeur métier de tel ou tel choix technique au client. Par exemple, s&#8217;il s&#8217;agit de choisir une technologie par rapport à une autre, il doit être capable d&#8217;expliquer au client la valeur métier ajoutée en terme d&#8217;utilisation des ressources, de capacité de changement, d&#8217;économies réalisées, etc. Il pense au « comment » mais aussi au « pourquoi » lorsqu&#8217;il travaille sur un projet où il faut répondre à la fois à des problématiques métiers et techniques.<br
/> La plupart des architectes traditionnels vont se concentrer sur la manière d&#8217;implémenter une solution, sans prendre le recul nécessaire qui permettrait de se demander si la solution est la meilleure possible. L&#8217;Architecte Agile s&#8217;efforce de travailler avec le client et cherche à savoir pourquoi une solution donnée est nécessaire, s&#8217;il y aurait une manière plus simple et plus efficace de répondre au besoin exprimé que la solution proposée par le client.</p><h3>Dernier signe, mais pas des moindres, l&#8217;Architecte Agile embrasse le changement</h3><p>Il embrasse le changement à la fois pour l&#8217;architecture et pour son propre rôle. La vraie architecture agile consiste à supporter le changement rapidement et facilement sans la dégrader, et avec le minimum d&#8217;impact sur les systèmes externes. Afin de s&#8217;en assurer, l&#8217;Architecte Agile démarre avec un design correct, et le fait évoluer constamment tout au long du cycle de vie du projet. Il implémente de façon modulaire les composants communs, masque derrière des interfaces ceux qui sont susceptibles de changer le plus souvent afin de minimiser les impacts lorsqu&#8217;ils évoluent.<br
/> Enfin, un vrai rôle agile consiste à pouvoir jouer de multiples rôles. Il prend les rôles de programmeur, de testeur de performance, de mentor, de médiateur, de membre de l&#8217;équipe, de « glue », et potentiellement celui de manager, tout ceci peut-être dans une seule journée de travail.</p><h3>Conclusion</h3><p>Les fondations de la tour d&#8217;ivoire des architectes sont ébranlées. Le nouveau type d&#8217;architecte appelé Architecte Agile grandit, s&#8217;affirme, travaille, et contribue aux équipes. Elle adhère totalement au <a
href="http://en.wikipedia.org/wiki/The_Toyota_Way">principe numéro 12 de Toyota</a> : « <em>Allez et voyez par vous-mêmes afin de totalement embrasser la situation</em> ». Ils sont des membres de premier ordre de l&#8217;équipe de développement et ne travaillent pas pour l&#8217;équipe mais dans l&#8217;équipe. Pour pouvoir prétendre au rôle d&#8217;Architecte Agile, il convient ainsi de faire preuve de maturité, d&#8217;expérience, et par-dessus tout d&#8217;être capable de jongler entre différents rôles et caractéristiques au sein de l&#8217;équipe de développement.</p><p><strong><em>Alors, possédez-vous déjà un Architecte Agile au sein de votre équipe?</em></strong></p><p><a
name="userstory"></a><br
/> [1] Une &laquo;&nbsp;<a
href="http://www.agilemodeling.com/artifacts/userStory.htm">User Story</a>&nbsp;&raquo; est une exigence définie par le &laquo;&nbsp;Product Owner&nbsp;&raquo; (dans le &laquo;&nbsp;Backlog&nbsp;&raquo; avec la méthode SCRUM)</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/01/29/un-nouveau-type-darchitecte-larchitecte-agile/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Scrum ou XP ? Scrum ET XP !</title><link>http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/</link> <comments>http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/#comments</comments> <pubDate>Thu, 10 Jan 2008 15:56:47 +0000</pubDate> <dc:creator>Guillaume Bodet</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[eXtreme-Programming]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[XP]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/</guid> <description><![CDATA[Lors des Rencontres Agiles, que nous avons co-organisées en décembre dernier &#8211; et qui, soit dit en passant, ont rencontré un fort et encourageant succès -, plusieurs personnes m&#8217;ont demandé si, pour démarrer un projet agile, il était préférable de choisir eXtreme Programming (XP) ou Scrum. La réponse est simple : il faut adopter les [...]]]></description> <content:encoded><![CDATA[<p>Lors des <a
href="http://www.rencontresagiles2007.com/">Rencontres Agiles</a>, que nous avons co-organisées en décembre dernier &#8211; et qui, soit dit en passant, ont rencontré un fort et encourageant succès -, plusieurs personnes m&#8217;ont demandé si, pour démarrer un projet agile, il était préférable de choisir eXtreme Programming (XP) ou Scrum. La réponse est simple : il faut adopter les deux !</p><p>La complémentarité de Scrum et XP est communément admise. Scrum se positionne au niveau de la gestion et de l’organisation de projet là où XP se positionne au niveau des activités de développement. C’est la raison pour laquelle ces deux approches fonctionnent si bien ensemble : elles adressent des problématiques différentes et se complètent mutuellement.</p><p>Je vous propose, dans cet article, une présentation sommaire de Scrum et de la façon dont elle (il? non, allez, c&#8217;est plutôt une fille) s&#8217;articule avec eXtreme Programming&#8230; Bonne lecture !</p><h3>Scrum</h3><p>Davantage qu&#8217;une méthode formelle, Scrum peut être vu comme un framework méthodologique &#8211; ses fondateurs parlent d&#8217;<em>organisationnal pattern</em> &#8211; dont l&#8217;implémentation doit être ajustée en fonction des caractéristiques techniques, organisationnelles et culturelles des projets qui souhaitent la mettre en oeuvre (Scrum, au demeurant, ne limite pas son champ d&#8217;application aux seuls projets informatiques : ses principes sont applicables pour toute activité visant à produire un résultat).</p><p>Dans ses grandes lignes, Scrum définit un jeu minimal d&#8217;acteurs, de cérémonies et d&#8217;artefacts qui permettent de relever les défis principaux du développement incrémental : la planification, la gestion du temps et la gestion des obstacles. Scrum est entièrement piloté par la Valeur Métier – la gestion des risques, en particulier, est réalisée au travers de ce prisme.  Scrum identifie trois acteurs :</p><ul><li>le <strong>Product Owner</strong> (Directeur de Produit), qui possède l&#8217;expertise fonctionnelle et est à même de réaliser les arbitrages nécessaires à la priorisation des développements. Son rôle est absolument essentiel, et son respect des règles du jeu est la pierre angulaire du succès d&#8217;un projet agile.</li><li>le <strong>Scrum Master</strong>, membre de l&#8217;Equipe, et dont la tâche principale est d&#8217;optimiser la capacité de production de l&#8217;Equipe en l&#8217;aidant à travailler de façon autonome et à s&#8217;améliorer constamment. Il est également le garant de la bonne implémentation de Scrum.</li><li>l&#8217;<strong>Equipe</strong>, dont la taille doit être réduite (7 à 9 personnes est généralement admis comme une borne supérieure), et qui prend en charge le développement du produit (planification, conception, codage, tests, documentation) sans spécialisation des rôles. La particularité d&#8217;une Equipe Scrum est d&#8217;être « auto-organisée », et donc dépourvue de hiérarchie. Cet aspect constitue une rupture radicale avec les approches managériales traditionnelles, qui privilégient un contrôle centralisé généralement incarné par le Chef de Projet.</li></ul><p>L&#8217;unité de temps, dans Scrum, est le <strong>Sprint</strong>. Un sprint est une itération courte (de l&#8217;ordre de 2 à 4 semaines) dont le périmètre est garanti et défini lors d&#8217;une cérémonie de planification initiale.</p><p>Le schéma suivant décrit l&#8217;articulation générale de Scrum  :</p><p
align="center"><a
href="http://blog.xebia.fr/wp-content/uploads/2008/01/scrum_small.png" title="Scrum"><img
src="http://blog.xebia.fr/wp-content/uploads/2008/01/scrum_small.png" alt="Scrum" /></a></p><p>Scrum définit également trois artefacts (nous conservons les noms anglais pour rester consistant avec la littérature sur le sujet) :</p><ul><li>le <strong>Product Backlog</strong>, que nous décrivons plus loin</li><li>le <strong>Sprint Backlog</strong>, également décrit plus loin</li><li>le <strong>Burndown Chart</strong>, qui est une représentation graphique très simple de l&#8217;avancement du projet (un Burndown Chart est produit pour chaque Sprint, un autre pour la version du produit)</li></ul><p>Le Product Backlog est fondamental à Scrum – sans lui, rien n&#8217;est possible.</p><p>Le Product Backlog est la liste des fonctionnalités du logiciel. Les éléments du backlog sont rédigés sous forme de « User Stories » (une User Story est une forme simplifiée et faiblement détaillée de cas d&#8217;utilisation), et doivent se focaliser sur les objectifs métier du produit. A minima, un élément du backlog (ou une histoire) comporte typiquement les informations suivantes :</p><ul><li>un identifiant – unique, il permet de tracer l&#8217;élément quand on le renomme</li><li>un nom &#8211; court et descriptif, suffisamment clair pour que le Directeur de Produit et l&#8217;Equipe comprennent approximativement de quoi il est question</li><li>l&#8217;importance – un chiffre permettant de hiérarchiser l&#8217;importance de l&#8217;élément aux yeux du Directeur de Produit. Sa valeur absolue ne signifie rien, seule la valeur relative compte</li><li>l&#8217;estimation initiale – exprimée en points de complexité, et dont la valeur est déterminée par l&#8217;Equipe. Pour établir cette estimation, on utilise le plus souvent une technique issue de l&#8217;eXtreme Programming : le <a
href="http://en.wikipedia.org/wiki/Planning_poker">Planning Poker</a>.</li><li>comment faire la démo ? &#8211; cela correspond globalement à la spécification d&#8217;un test fonctionnel simple.</li><li>des notes – aussi brèves que possible, visant à clarifier certains points ou à renvoyer vers d&#8217;autres ressources</li></ul><p>Le Product Backlog peut également contenir des éléments techniques – mais il est indispensable alors qu&#8217;ils soient libellés selon un angle métier, afin que le Directeur de Produit puisse lui affecter une valeur.</p><p>Le Product Backlog peut être conservé sous différentes formes, la plus fréquente – et probablement la plus efficace &#8211; étant un simple tableau Excel partagé.</p><p>Le Product Backlog n&#8217;est pas un document figé : tout au long du projet, les histoires peuvent être modifiées, fusionnées ou segmentées (celles bien sûr qui ne sont pas encore achevées) ; de nouvelles histoires peuvent être ajoutées, d&#8217;autres supprimées ; l&#8217;importance et l&#8217;estimation initiale peuvent être revues, à la hausse ou à la baisse.Au début de chaque Sprint a lieu la cérémonie qui est probablement la plus importante de Scrum : le Sprint Planning (planification du Sprint). Le Sprint Planning réunit l&#8217;Equipe et le Directeur de Produit pour déterminer l&#8217;objectif et le contenu du Sprint à venir. C&#8217;est durant cette cérémonie que l&#8217;estimation fine de la charge de développement de chaque histoire est déterminée. Ces histoires sont découpées en tâches dont chacune fait l&#8217;objet d&#8217;une estimation de charge – exprimée en heures ou en jours. Il est important de noter que c&#8217;est l&#8217;Equipe qui détermine la charge afférente à chaque tâche. Le principal résultat de cette cérémonie est le Sprint Backlog, qui regroupe l&#8217;ensemble des fonctionnalités que l&#8217;Equipe s&#8217;engage à produire durant l&#8217;itération naissante, et liste les tâches correspondantes.</p><p>La charge totale du Sprint Backlog ne doit pas excéder la capacité de production de l&#8217;Equipe (il existe plusieurs techniques que nous n&#8217;aborderons pas ici pour établir cette capacité de production, ou vélocité estimée).</p><p>Au terme de chaque sprint, le produit partiel est livré avec le niveau de qualité attendu pour son exploitation en production – cette caractéristique est à l&#8217;origine du qualificatif « incrémental » souvent associé aux méthodes agiles. Les histoires implémentées font l&#8217;objet d&#8217;une démonstration publique.</p><p>Les méthodes agiles sont inspirées des pratiques industrielles de la production en flux tendus et du zéro-défaut – un ensemble de pratiques désignées dans l&#8217;industrie par le terme Lean. L&#8217;une des caractéristiques de cette approche est de ne jamais figer les méthodes de travail, mais d&#8217;intégrer dans l&#8217;activité une introspection permanente sous-tendue par la recherche systématique d&#8217;axes d&#8217;amélioration. Une autre caractéristique est de ne jamais utiliser la qualité comme variable d&#8217;ajustement. Dans Scrum (et d&#8217;une façon générale pour toutes les méthodes agiles), la qualité du produit est de la responsabilité de l&#8217;Equipe, et ne fait pas l&#8217;objet de négociations.</p><p>Afin de faciliter cette démarche, Scrum intègre un certain nombre de cérémonies additionnelles – une cérémonie est une réunion dont la durée est fixée et dont les produits en entrée et en sortie sont définis. La limite de temps pour chacune des cérémonies fait partie de l&#8217;ADN de Scrum (on parle de <em>time boxing</em>).</p><p>Voici les principales cérémonies préconisées par Scrum :</p><ul><li>le <strong>Sprint planning</strong>, que nous avons déjà abordé</li><li>la mêlée quotidienne (<strong>Daily Scrum</strong>), courte cérémonie (de l&#8217;ordre de 15 minutes) menée chaque jour avec les membres de l&#8217;Equipe et le Directeur de Produit, et dont l&#8217;objectif est de maintenir chacun au courant de l&#8217;activité de tous, de déterminer les tâches de la journée et d&#8217;identifier les éventuels obstacles qui ralentissent ou empêchent la progression du sprint</li><li>la revue de sprint (<strong>Sprint Review</strong>), qui consiste pour l&#8217;essentiel, au terme de chaque itération, à faire une démonstration publique du résultat du sprint ; cette cérémonie permet de garantir le caractère incrémental du développement (pour être démontré, le produit doit être utilisable) mais aussi de recueillir un retour régulier des commanditaires aux fins d&#8217;ajuster le contenu du backlog de produit</li><li>la rétrospective (au moins 1 heure), qui réunit l&#8217;équipe et le Product Owner au terme de chaque sprint afin d&#8217;identifier les erreurs commises lors du sprint précédent et de définir un plan d&#8217;actions (concret et affecté) en vue d&#8217;améliorer le processus ; la rétrospective est une cérémonie capitale qui incarne l&#8217;un des principes fondamentaux énoncés par le Manifeste Agile : « A intervalles réguliers, l&#8217;équipe réfléchit sur les moyens de devenir plus efficace, puis adapte et ajuste son comportement en conséquence ».</li></ul><p>Une dernière question peut se poser : quels outils utiliser pour assurer le suivi de projet ? Il existe un certain nombre d&#8217;offres logicielles dans ce domaine. Dans la pratique, nous préconisons de débuter avec l&#8217;outillage le plus élémentaire : une feuille Excel, des post-it et un mur. Avec l&#8217;expérience, et en adhérant aux principes généraux de la méthode (inspecter et s&#8217;adapter), le Scrum Master pourra choisir d&#8217;utiliser d&#8217;autres outils. Dans la pratique, une telle démarche n&#8217;est que rarement nécessaire.</p><p>Scrum, on le voit, adresse la problématique du processus de production du logiciel, l&#8217;organisation et la dynamique du projet. Le développement incrémental, néanmoins, suppose des pratiques d&#8217;ingénierie logicielle rigoureuses et efficicaces, que Scrum ne couvre pas &#8211; rappelons que Scrum est avant tout un style organisationnel. C&#8217;est précisément sur ce terrain des techniques de génie logiciel incrémental que l&#8217;eXtreme Programming trouve tout son sens, en proposant un certain nombre de pratiques reconnues aujourd&#8217;hui comme l&#8217;<em>état de l&#8217;art</em>.</p><h3>eXtreme Programming – XP</h3><p>La première des pratiques de l&#8217;eXtreme Programming, la plus fondamentale également, est le test automatisé.</p><p>L&#8217;approche incrémentale suppose une vision minimaliste – on aurait envie de dire zen &#8211; du développement : seules les fonctionnalités effectivement nécessaires sont développées, et le design adopté doit être le plus simple imaginable permettant d&#8217;implémenter intégralement la fonctionnalité (ce principe est souvent désigné sous l&#8217;acronyme KISS : Keep It Simple and Stupid). Le Manifeste Agile définit au demeurant la simplicité comme « l&#8217;art de maximiser le volume de ce qui ne doit pas être fait ». Conséquence de cette recherche de simplicité, certains choix de design, suffisants à un moment donné, peuvent s&#8217;avérer inadaptés lors de développements ultérieurs. L&#8217;ajustement se fait alors par refactoring (ou ré-ingénierie), qui consiste à modifier le design voire l&#8217;architecture d&#8217;un composant sans changer son comportement. Le refactoring – une opération techniquement triviale avec les environnements de développement java, plus délicate lorsqu&#8217;il s&#8217;agit de la base de données – comporte un risque de régression évident, risque couvert en principe par la pratique des tests unitaires. L&#8217;équation est alors simple : sans tests unitaires, le refactoring devient rapidement impossible ; sans refactroring, les choix d&#8217;implémentation ne peuvent plus être remis en question ; sans remise en question, le développement incrémental devient illusoire, et c&#8217;est tout l&#8217;édifice du développement agile qui s&#8217;écroule.</p><p>Le test automatisé n&#8217;est pas seulement une bonne pratique du développement agile : il en est l&#8217;épine dorsale.</p><p>XP inclut la systématisation des tests automatisés &#8211; unitaires, fonctionnels, d&#8217;intégration, de performance, le plus est le mieux. Poussée à l&#8217;extrême, cette pratique a donné naissance au principe du TDD (<em>Test Driven Development</em>). Le TDD modifie sensiblement la pratique du développement. Son principe est d&#8217;une redoutable simplicité, mais sa mise en oeuvre est un véritable défi. Voici comment Henrik Kniberg résume le TDD :</p><blockquote><p><em>Test-driven development means that you write an automated test, then you write just enough code to make that one test pass, then you refactor the code primarily to improve readability and remove duplication. Rinse and repeat.</em></p></blockquote><p>Traduction : le développeur écrit en premier lieu un test automatisé de la fonctionnalité qu&#8217;il souhaite implémenter, développe ensuite juste assez de code pour satisfaire le test et finalement remanie le code pour améliorer le design et supprimer la duplication.</p><p>Outre les bénéfices classiques des tests unitaires, le TDD possède deux vertus cardinales : il permet de maintenir le focus du développeur sur les fonctionnalités réellement utiles ; il a des effets spontanés et profonds sur la qualité du design.</p><p>Au delà du TDD, XP comprend un certain nombre de pratiques dont la mise en place est souvent associée à l&#8217;adoption des méthodes agiles – sans pour autant sue cette mise en place soit obligatoire.<br
/> Voici, sans exhaustive, les plus importantes de ces pratiques :</p><ul><li>le <strong>Refactoring</strong> ; nous l&#8217;avons déjà rapidement abordé, c&#8217;est une pratique intrinsèque du développement incrémental et qui mériterait un billet à part entière. Pour une bonne introduction aux technique de refactoring objet, je vous invite à consulter le site que Martin Fowler a consacré au sujet : <a
href="http://www.refactoring.com/">refactoring.com</a>.</li><li>l&#8217;<strong>Intégration Continue</strong> ; cette pratique consiste à déclencher de façon systématique le système de build – qui comprend notamment la compilation et l&#8217;exécution des tests automatisés – chaque fois qu&#8217;un membre de l&#8217;équipe valide des sources dans le référentiel projet ; c&#8217;est une pratique essentielle pour détecter et corriger au plus tôt les problèmes d&#8217;intégration des développements (principe de <em>fail fast</em>)</li><li>la <strong>Propriété Collective</strong> ; la propriété collective du code consiste à ne pas spécialiser certains membres de l&#8217;équipe sur certains composants – et donc à favoriser la polyvalence au sein de l&#8217;équipe. Elle est évidemment favorisée par des pratiques telles que la programmation en binôme qui favorise l’appropriation d’une base commune de code. Les équipes avec un haut niveau d’appropriation collective de code sont réputées pour être plus robustes : un sprint ne sera par exemple pas forcément menacé par l’absence ponctuelle d’un membre de l’équipe.</li><li> les <strong>Normes de développement</strong> ; sans être une particularité de l&#8217;eXtreme Programming, les normes de développement en sont un élément clé, facilitant les tests, l&#8217;intégration continue et l&#8217;appropriation collective de la base de code. Elles renforcent également la consistance des APIs.</li><li>la Programmation en binôme (<strong>Pair Programming</strong>), qui consiste à développer à deux sur un même poste ; cette pratique, souvent mal comprise, n&#8217;est que rarement systématisée. Il ne faut par contre pas s’interdire son utilisation ponctuelle, par exemple sur une nouvelle technologie, une problématique pointue, un fonctionnel plus complexe, ou plus simplement, si l’un des membres de l’équipe demande de l’assistance. C&#8217;est aussi une pratique utile lors des montée en charge de l&#8217;équipe : elle permet d&#8217;intégrer plus rapidement les nouveaux développeurs et de leur communiquer la culture de l&#8217;équipe.</li><li>un <strong>Rythme soutenable</strong> ; ce principe est commun à toutes les méthodes agiles, et directement issu du <em>heijunka</em> Lean ; il part du principe qu&#8217;il n’y a rien de plus contre-productif à moyen terme que de maintenir une équipe de développement sous la pression d’une charge de travail supérieure à sa capacité de production &#8211; cela revient à étrangler la poule aux œufs d’or et se traduit généralement par une baisse massive de la qualité et de la motivation.</li></ul><p>Certaines des pratiques de l&#8217;eXtreme Programming ont irrigué Scrum (ou le contraire, peu importe) : « une équipe », « une même pièce », la notion de « stories », le « rythme soutenable » ou encore le « planning game », raison pour laquelle ces deux approche sont très complémentaires.</p><p>Cet article vous a proposé un rapide aperçu de Scrum et XP et aura, je l&#8217;espère, contribué à mettre en exergue la complémentarité des deux approches. Beaucoup de notions ont été évoquées de façon trop brève, et je reviendrai dessus dans de prochains billets&#8230; N&#8217;hésitez pas à laisser vos commentaires et questions !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2008/01/10/scrum-ou-xp-scrum-et-xp/feed/</wfw:commentRss> <slash:comments>17</slash:comments> </item> </channel> </rss>
