<?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; SCRUM</title> <atom:link href="http://blog.xebia.fr/tag/scrum/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>Offre Promotionnelle : Formation Scrum Product Owner certifiante avec Arlen Bankston les 12 et 13 décembre 2011</title><link>http://blog.xebia.fr/2011/11/24/offre-promotionnelle-formation-scrum-product-owner-certifiante-avec-arlen-bankston-les-12-et-13-decembre-2011/</link> <comments>http://blog.xebia.fr/2011/11/24/offre-promotionnelle-formation-scrum-product-owner-certifiante-avec-arlen-bankston-les-12-et-13-decembre-2011/#comments</comments> <pubDate>Thu, 24 Nov 2011 09:19:20 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Product Owner]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=9451</guid> <description><![CDATA[Nous avons actuellement une offre promotionnelle en cours pour la formation suivante : Formation Scrum Product Owner certifiante animée par Arlen Bankston les 12 et 13 décembre 2011. Cette formation inclue les petits déjeuners, pauses cafés, déjeuners (restaurant La Cavalina), supports de cours, pokers cards, une copie de l’ouvrage &#171;&#160;Scrum en action&#160;&#187; de Guillaume bodet, [...]]]></description> <content:encoded><![CDATA[<p>Nous avons actuellement une offre promotionnelle en cours pour la formation suivante :</p><p><a
href="http://training.xebia.fr/formations-methodes-agiles/formation-product-owner-arlen-bankston/">Formation Scrum Product Owner certifiante animée par Arlen Bankston</a> les 12 et 13 décembre 2011.</p><p>Cette formation inclue les petits déjeuners, pauses cafés, déjeuners <em>(restaurant La Cavalina)</em>, supports de cours, pokers cards, une copie de l’ouvrage <em>&laquo;&nbsp;Scrum en action&nbsp;&raquo;</em> de Guillaume bodet, l’abonnement à la Scrum Alliance et la certification Scrum Product Owner bien entendu.</p><p>Si cette formation vous intéresse ou que vous souhaitez de plus amples informations, n&#8217;hésitez pas à nous contacter au 01&nbsp;53&nbsp;89&nbsp;99&nbsp;99 ou par courriel <em>(<a
href="mailto:info@xebia-training.fr">info@xebia-training.fr</a>)</em>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/11/24/offre-promotionnelle-formation-scrum-product-owner-certifiante-avec-arlen-bankston-les-12-et-13-decembre-2011/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/10/25/revue-de-presse-xebia-2011-44/</link> <comments>http://blog.xebia.fr/2011/10/25/revue-de-presse-xebia-2011-44/#comments</comments> <pubDate>Tue, 25 Oct 2011 09:11:31 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Continuous Deployment]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[SpringSource Tool Suite]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8895</guid> <description><![CDATA[La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia. Actualité éditeurs / SSII Spring Suite Tool (STS) 2.8.0 L&#8217;avenir des clients Java passera par JavaFX Agilité Estimations Les métriques du bonheur Le coin de la technique Continuous Deployment Actualité éditeurs / SSII Spring Suite Tool (STS) 2.8.0 SpringSource vient de sortir la dernière [...]]]></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 hebdomadaire des écosystèmes Java/JEE proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="#RevuedePresseXebia-SpringSuiteTool%28STS%292.8.0">Spring Suite Tool (STS) 2.8.0</a></li><li><a
href="#RevuedePresseXebia-L%27avenirdesclientsJavapasseraparJavaFX">L&#8217;avenir des clients Java passera par JavaFX</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="#RevuedePresseXebia-Estimations">Estimations</a></li><li><a
href="#RevuedePresseXebia-Lesm%C3%A9triquesdubonheur">Les métriques du bonheur</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="#RevuedePresseXebia-ContinuousDeployment">Continuous Deployment</a></li></ul><h3><a
name="RevuedePresseXebia-Actualit%C3%A9%C3%A9diteurs%2FSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="RevuedePresseXebia-SpringSuiteTool%28STS%292.8.0"></a>Spring Suite Tool (STS) 2.8.0</h4><p>SpringSource vient de sortir la dernière version de son IDE basé sur Eclipse : Spring Source Tool Suite (STS) 2.8.0. Il inclut désormais Eclipse Indigo SR1, avec le support de Java 7. Il ajoute également le support de Spring 3.1 pour la configuration des beans : profiles et c-namespace. De plus, l&#8217;intégration avec Maven s&#8217;améliore avec le passage de m2eclipse 0.12 à m2e 1.0 (attention tout de même, ce dernier introduit la notion de connectors qui sont requis pour lier les plugins à Eclipse mais n&#8217;existent pas pour tous les plugins Maven, certains <a
href="http://grumpyapache.blogspot.com/2011/08/mess-that-is-m2e-connectors.html" rel="nofollow">l&#8217;ont subi avec difficulté</a>).</p><p>Vous utilisez Spring mais pas STS? Vous devriez essayer! Tous les plugins pour Spring sont présents et le téléchargement inclut les dernières versions de Maven (3.0.3), Spring Roo (1.1.5) et tcServer (2.6.1).</p><h4><a
name="RevuedePresseXebia-L%27avenirdesclientsJavapasseraparJavaFX"></a>L&#8217;avenir des clients Java passera par JavaFX</h4><p>Durant la dernière conférence JavaOne 2011, Oracle a dévoilé <a
href="http://www.infoq.com/news/2011/10/oracle-client-java" rel="nofollow">sa stratégie</a> concernant les applications clientes Java. Sans surprise, Oracle mise sur <a
href="http://javafx.com" rel="nofollow">JavaFX</a>.<br
/> Pour rappel, JavaFX est une API pour développer des RIA (desktop ou mobile), apparue il y a quelques années, mais qui n&#8217;a pas rencontré le succès escompté. Face à cet échec, une nouvelle version 2.0 de JavaFX a été présentée à la conférence JavaOne 2010.<br
/> Parmi les nouveautés marquantes, on peut noter l&#8217;abandon du langage Fx Script pour une API full Java. Cela permet notamment l&#8217;utilisation d&#8217;autres langages compatibles avec la JVM, tels que Groovy ou Scala. On voit aussi apparaître un descripteur d&#8217;interface graphique au format FXML. Celui-ci sera accompagné d&#8217;un outil graphique (standalone pour le moment), Java Fx Scene Builder, facilitant la création des interfaces. Cet outil fera son apparition courant 2012. Enfin, JavaFX pourra embarquer des composants HTML5 et JavaScript via l&#8217;utilisation de <a
href="http://www.webkit.org/" rel="nofollow">WebKit</a>. <a
href="http://www.theserverside.com/feature/Project-Avatar-One-HTML5-Strategy-to-Rule-Them-All" rel="nofollow">Le projet Avatar</a> pousse même encore plus loin, en proposant des applications hybrides avec des interactions entre le monde JavaFx et HTML5.</p><p>Afin d&#8217;accélérer son développement, JavaFX va devenir open-source et sera intégré directement dans le projet OpenJDK. En parallèle, J2ME, l&#8217;API mobile historique de Java, va être unifié aussi dans le prochain JDK.</p><p>L&#8217;objectif d&#8217;Oracle est de diffuser JavaFx sur un maximum de périphériques possibles: desktops, mobiles et tablettes. Potentiellement, tous les périphériques compatibles avec la JVM pourront supporter JavaFX. Une version bêta est d&#8217;ores et déjà disponible pour Mac OS X. Une version pour Linux (Ubuntu) fera son apparition en 2012. Au final, JavaFx 3 sera intégré dans le JDK 8 prévu pour 2013 et sera compatible avec toutes les plateformes.</p><h3><a
name="RevuedePresseXebia-Agilit%C3%A9"></a>Agilité</h3><h4><a
name="RevuedePresseXebia-Estimations"></a>Estimations</h4><p>Un sujet revient régulièrement lorsque l&#8217;on parle d&#8217;agilité, c&#8217;est celui de la planification et de l&#8217;estimation de la durée d&#8217;un projet. InfoQ a d&#8217;ailleurs publié récemment 3 articles dédiés au sujet.</p><p><a
href="http://www.infoq.com/news/2011/09/how-long-to-build" rel="nofollow">Le 1er article</a> parle de la problématique d&#8217;estimer un projet dans sa globalité. Un tel problème fait toujours bondir les agilistes ! En fait, plus le contexte est connu et maîtrisé par l&#8217;équipe de développement, moins il est malhonnête de faire des estimations. Mais celles-ci sont généralement difficiles. Une idée évoquée est de démarrer avec un <em>scope</em> fixe permettant d&#8217;éduquer graduellement le client à l&#8217;Agile afin de lui ouvrir les yeux sur <a
href="http://martinfowler.com/bliki/FixedScopeMirage.html" rel="nofollow">le mirage du périmètre fixe</a>. Dans les commentaires, on trouve des avis contradictoires, mais tous valables. Adam Nemeth par exemple, <a
href="http://www.infoq.com/news/2011/09/how-long-to-build#view_75690" rel="nofollow">s&#8217;exclame</a> que les estimations sont inévitables: nous sommes payés pour résoudre les problèmes qu&#8217;ont d&#8217;autres et ils attendent les solutions pour une date donnée. Il est par exemple inconcevable de sortir le site internet des JO d&#8217;été de 2012 en hiver par la faute d&#8217;une erreur dans le chiffrage des tâches. Mais, plus loin dans son commentaire, on se rend compte que lui est capable de bien planifier car il a la chance de travailler dans un environnement stable avec des patterns de problèmes identiques pour lesquels il a pu mettre en place une solution qui s&#8217;applique à chaque fois. Dans un tel environnement &laquo;&nbsp;idéal&nbsp;&raquo;, il n&#8217;est pas inconcevable de pouvoir chiffrer aisément avec une bonne approximation.</p><p><a
href="http://www.infoq.com/news/2011/10/Time_to_Stop_Estimating_Stories" rel="nofollow">Le second article</a> se demande si le temps est venu d’arrêter d&#8217;estimer les <em>user stories</em>. On retrouve là aussi, en caricaturant, une distinction entre ceux qui pensent qu&#8217;il vaut mieux créer un produit de qualité et ceux qui pensent que les estimations sont, bien que science inexacte, un mal nécessaire. Les commentaires, une fois de plus, ne sont pas inintéressants. Josh Gough <a
href="http://www.infoq.com/news/2011/10/Time_to_Stop_Estimating_Stories#view_76024" rel="nofollow">y décrit</a> ce dans quoi certains se reconnaîtront: il parle des &laquo;&nbsp;guesstimates&nbsp;&raquo; (estimation basées sur rien de concret) et des &laquo;&nbsp;wishtimates&nbsp;&raquo; (lorsque la date prévisionnelle de fin de projet prise en compte est la date idéale) qui sont souvent utilisées en lieu et place d’estimations vraiment réalistes. Pour lui, elles sont généralement basées sur des aspects politiques ou des facteurs psychologiques qui donneront à la personne inexpérimentée qui est en charge une fausse sensation de contrôle. Que faire lorsque le management attend de vous non pas un intervalle de risque mais une date fixée dans le marbre ? Il préconise de manière pragmatique d&#8217;essayer de s&#8217;appuyer sur des données empiriques et factuelles ainsi que de sensibiliser les personnes à la complexité des projets, des tests et du risque. <a
href="http://www.infoq.com/news/2011/10/Time_to_Stop_Estimating_Stories#view_76026" rel="nofollow">Plus loin</a>, ce même Josh Goush utilise une analogie avec le travail d&#8217;un peintre. Confieriez-vous la peinture de votre maison à un peintre vous ayant fixé un prix sans même vous avoir demandé le nombre de pièces et leur taille ? En développement logiciel, c&#8217;est le même principe exception faite que la taille et le nombre des pièces est extrêmement dur à appréhender. Et nous revenons ici au principe de base de l&#8217;agilité qui est d&#8217;adapter le projet au fur et à mesure de son avancement aux besoins changeants du client. D&#8217;où l&#8217;impossibilité de déterminer une fois pour toutes un chiffrage en amont du développement.</p><p>Enfin, <a
href="http://www.infoq.com/news/2011/10/sustainable-pace-how" rel="nofollow">un troisième article</a> se demande ce que signifie le &laquo;&nbsp;rythme soutenable&nbsp;&raquo; évoqué dans <a
href="http://agilemanifesto.org/principles.html" rel="nofollow">le manifeste agile</a> et comment y parvenir. Le lien avec la difficulté d&#8217;estimer un projet est vite réalisé: il est fréquent que des estimations initiales prétendent tenir compte de tous les évènements imprévus (!). Dans ce cas, il n&#8217;y a plus que les heures sup&#8217; pour absorber les vrais évènements imprévus qui ne manquent pas de survenir. Au final il semble que tout le monde s&#8217;accorde à dire que les premières victimes d&#8217;un rythme élevé sont toujours la qualité et les bonnes pratiques.</p><h4><a
name="RevuedePresseXebia-Lesm%C3%A9triquesdubonheur"></a>Les métriques du bonheur</h4><p>Qui a dit que les métriques, si chères à notre gestion de projet, sont tristes et vous donnent le cafard le lundi matin en stand-up?  Que dire des courses à l&#8217;indicateur, pour atteindre l&#8217;objectif chiffré, quoi qu&#8217;il en coûte!<br
/> Anders Laestadius, coach agile suédois de son état, nous propose <a
href="http://blog.crisp.se/2011/10/19/anderslaestadius/the-happiness-metric-and-a-few-others" rel="nofollow">une liste</a> de quelques métriques que son expérience lui indique comme nécessaires:</p><ul><li>la mesure de bonheur ou de stress de l&#8217;équipe, pour la partie management</li><li>le pourcentage de duplication de code, ainsi que la couverture de tests, pour la partie conception de l&#8217;application</li><li>Le release burn down et lead time pour suivre l&#8217;engagement du projet envers le client.</li></ul><h5><a
name="RevuedePresseXebia-Avancementduprojet"></a>Avancement du projet</h5><p>L&#8217;un des incontournables de la méthode SCRUM est la mesure du Release Burn Down. Anders préconise le suivi de la Release plutôt que du sprint, ce qui est plus en accord avec la vision client.<br
/> Lors de l&#8217;utilisation de la méthode Kanban, il préfère utiliser le &laquo;&nbsp;Lead Time&nbsp;&raquo;. Il consiste à mesurer le temps que met une tâche pour sortir du système. Il permet de connaître le taux de &laquo;&nbsp;réactivité&nbsp;&raquo; de l&#8217;équipe et sa capacité à absorber une certaine charge de travail dans un intervalle de temps donné.</p><h5><a
name="RevuedePresseXebia-Sant%C3%A9techniquedel%27application"></a>Santé technique de l&#8217;application</h5><p>Selon l&#8217;auteur,le taux de duplication de code est le meilleur indicateur de qualité de code pour une application. Un code trop souvent dupliqué soulève un problème de conception avec du refactoring à prévoir. De plus, cela est source de bugs et d&#8217;effets de bord. Facile à détecter, et relativement facile à corriger.<br
/> Pour le taux de couverture de code, le Test Driven Development reste la solution numéro 1 pour l&#8217;améliorer efficacement. Les outils de couverture de code, comme Cobertura, permettent de rapidement voir les portions de code non testées, pour améliorer encore et toujours la robustesse de nos applications.</p><h5><a
name="RevuedePresseXebia-L%27%C3%A9quipe"></a>L&#8217;équipe</h5><p>L&#8217;indicateur de &laquo;&nbsp;bonne humeur&nbsp;&raquo; d&#8217;une équipe permet de voir d&#8217;un autre point de vue l&#8217;équipe. On ne parle plus d&#8217;effort, de vélocité ou de taux de progression. La bonne humeur est directement liée à la motivation de l&#8217;équipe à respecter l&#8217;engagement du sprint. On peut aussi utiliser l&#8217;indicateur de &laquo;&nbsp;Stress&nbsp;&raquo;. Cela permet aussi de détecter, lors des creux, des problèmes qui déstabilisent l&#8217;équipe, pour mieux les résoudre ensuite. Mais attention, stress et motivation ne sont pas forcément contradictoires. Le daily scrum meeting ou la séance de rétrospective de SCRUM sont les moments privilégiés pour mesurer cet indicateur.</p><h3><a
name="RevuedePresseXebia-Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="RevuedePresseXebia-ContinuousDeployment"></a>Continuous Deployment</h4><p>Pour ceux qui n&#8217;ont pas encore entendu parler du déploiement continu, Ranjan D. Sakalley nous propose une excellente <a
href="http://www.infoq.com/articles/test-automation-continuous-delivery" rel="nofollow">introduction</a> sur le sujet.<br
/> Ce processus n&#8217;est que la suite logique de l&#8217;intégration continue. Il consiste à déployer son application le plus rapidement, le plus sûrement et donc, le plus souvent possible. On est toujours dans l&#8217;esprit d&#8217;avoir un cycle de travail court avec un retour rapide sur ce qui a été développé, pour corriger au plus tôt et ainsi réduire le coût global de mise en oeuvre de l&#8217;application. De célèbres exemples, comme Flickr et Github sont capables de mettre en production leurs applications plusieurs fois par jour, oui par jour!<br
/> Pour arriver à un tel niveau de maturité, il faut se doter d&#8217;une couverture de tests exemplaire et surtout, cela impose la nécessité d&#8217;automatiser tous ces tests.<br
/> L&#8217;exemple donné révèle rapidement le besoin d&#8217;avoir une équipe de 50 testeurs pour arriver à recetter une application de taille moyenne en 2 heures. On précise aussi que l&#8217;investissement initial a été de deux développeurs pendant deux mois pour la création des scripts de tests.<br
/> Si on doit livrer son application plusieurs fois par jour, on voit tout de suite la nécessité de l&#8217;automate.<br
/> L&#8217;article souligne aussi que l&#8217;automatisation des tests simples et répétitifs libère du temps aux testeurs qui peuvent ainsi aller plus en profondeur sur le code existant, pour ainsi trouver des bugs plus profonds. Cela rend au passage leur journée de travail plus intéressante, ce qui n&#8217;est pas rien en ces jours d&#8217;hiver qui s&#8217;obscurcissent!<br
/> L&#8217;auteur nous rappelle aussi qu&#8217;il est autant nécessaire de tester les aspects fonctionnels que non-fonctionnels, comme la tenue de la charge ou la performance.</p><p>Ce sujet est un bon complément aux deux derniers ateliers organisés chez Xebia sur le déploiement continu, où l&#8217;on a vu comment le <a
href="http://tomcat.apache.org/maven-plugin.html" rel="nofollow">plugin Apache Tomcat Maven</a>, <a
href="http://rundeck.org/" rel="nofollow">Rundeck</a> et <a
href="http://www.xebialabs.com/features" rel="nofollow">DeployIt</a>, avec <a
href="http://jenkins-ci.org/" rel="nofollow">Jenkins</a>, nous aident à faire du déploiement en zéro clic après un git-push sur un repository de code. Nous publierons très prochainement un billet sur le sujet, ainsi que sur toute l&#8217;infrastructure mise en place sur Amazon EC2, avec notre stratégie d&#8217;Infrastructure as a code. Restez à l&#8217;écoute si ces sujets vous intéressent!</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/10/25/revue-de-presse-xebia-2011-44/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/</link> <comments>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#comments</comments> <pubDate>Tue, 11 Oct 2011 21:00:41 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[crowdsourcing]]></category> <category><![CDATA[Dart]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[JavaOne]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[TomEE]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8813</guid> <description><![CDATA[La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia. Actualité éditeurs / SSII JavaOne Google Dart Google Cloud SQL Apache TomEE Agilité SCRUM se met au crowdsourcing Actualité éditeurs / SSII JavaOne La conférence JavaOne 2011 s&#8217;est tenue la semaine passée à San Francisco. Comme chaque année, elle a été l&#8217;occasion d&#8217;un grand [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#JavaOne">JavaOne</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#GoogleDart">Google Dart</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#GoogleCloudSQL">Google Cloud SQL</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#ApacheTomEE">Apache TomEE</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#SCRUMsemetaucrowdsourcing">SCRUM se met au crowdsourcing</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JavaOne"></a>JavaOne</h4><p>La conférence <strong>JavaOne</strong> 2011 s&#8217;est tenue la semaine passée à San Francisco. Comme chaque année, elle a été l&#8217;occasion d&#8217;un grand nombre d&#8217;annonces, de <em>keynotes</em> et de plans sur le futur de Java. On notera après avoir pris la température auprès de la communauté, que celle-ci semble moins inquiète que dans un récent passé: Oracle est là depuis un moment maintenant, les choses semblent s’être stabilisées et clarifiées. La récente arrivée de Java 7 ne doit pas y être pour rien. Parmi les diverses annonces, on retiendra surtout :</p><ul><li>Java 8 est retardé à début 2013. Nous aurons le temps de vous reparler des nouveaux apports.</li><li>Java ME tend à se rapprocher de Java SE et vise à en devenir un sous ensemble. L’intérêt est d&#8217;unifier les communautés de ces 2 versions.</li><li>Java EE 7 est en préparation, orienté Cloud et <a
title="multitenancy" href="http://blog.loof.fr/2011/06/multi-tenancy.html">multi-tenancy</a></li><li>JavaFX n&#8217;est pas mort. Les mauvaises langues diront que le projet ressort du placard chaque année pour JavaOne. Mais Oracle semble décidé à le faire avancer: il devrait progressivement devenir complètement OpenSource et une version 3 est prévue, intégrée directement dans le JDK 8.</li><li>Pour rêver un peu, quelques pistes pour le JDK 9 ont été évoquées. On parle de VM s&#8217;adaptant toutes seules aux applications (plus de XmX et autres barbaries ?!), d&#8217;un nouveau Meta Object Protocol améliorant le support entre langages&#8230; Là encore, nous aurons laaaargement le temps d&#8217;en reparler !</li></ul><p>On regrettera encore malgré tout l&#8217;absence de <em>speakers</em> de Google, à cause du procès opposant celui-ci à Oracle et alors que la compagnie n&#8217;est pas la moins active dans l’écosystème Java.<br
/> Le <a
title="blog suivant" href="http://marxsoftware.blogspot.com/2011/10/javaone-2011-tremendous-success.html">blog suivant</a> recense nombre d&#8217;articles sur JavaOne et vous pourrez retrouver quelques <em>roadmaps</em> sur <a
title="le podcast JavaSpotlight" href="http://blogs.oracle.com/javaspotlight/entry/java_spotlight_episode_51_live">le podcast JavaSpotlight</a>.</p><p>Parmi les autres annonces intéressantes, on notera l&#8217;annonce du <strong>serveur Apache TomEE</strong> qui est maintenant certifié EE 6 Web Profile. C&#8217;est un serveur Java EE qui se veut léger, basé sur un Tomcat tout ce qu&#8217;il y a de plus standard avec utilisation d&#8217;une librairie Apache pour chacune des fonctionnalités requises par la norme Web Profile: on retrouvera ainsi Apache OpenWebBeans, Apache MyFaces, Apache ActiveMQ, Apache OpenJPA et Apache CXF.<br
/> Et pour finir, Oracle a annoncé une nouvelle solution <strong>NoSQL</strong>. Le géant des bases relationnelles compte donc se diversifier en élargissant son offre. Retrouvez tous les détails de cette solution basée sur Java <a
title="chez infoQ" href="http://www.infoq.com/news/2011/10/Oracle-NoSQL-Database">chez infoQ</a>.</p><h4><a
name="GoogleDart"></a>Google Dart</h4><p>A l&#8217;occasion de la <a
title="GotoCon" href="http://gotocon.com/">GotoCon</a>, Lars Bak le créateur de la machine JavaScript V8 de Chrome et Gilad Bracha auteur du langage <a
title="NewSpeak" href="http://newspeaklanguage.org/">NewSpeak</a> ont annoncé la naissance d&#8217;un nouveau langage de script pour les navigateurs nom de code Dart. L&#8217;annonce concerne le disponibilité de ce langage en Technology Preview, il n&#8217;est pour le moment pas supporté par Chrome.<br
/> Ce langage inspiré de la syntaxe JavaScript offre de plus le support de la concurrence de type acteurs. Notez de plus qu&#8217;il permet de créer des applications pour iPad.<br
/> Quelques caractéristiques du langage:</p><ul><li>Orienté objet avec classe, interface, et héritage</li><li>Typage optionnel</li><li>Mono-thread</li></ul><p>Selon le paradigme acteur, les pocessus dart sont isolés et ne peuvent communiquer entre eux que par une API de messaging.<br
/> Dart supporte différents type d’éxecutions:</p><ul><li>JavaScript &#8211; Avec le compilateur DartC les .dart sont compilés JavaScript.</li><li>DartVM &#8211; Une machine virtuelle permet d’éxecuter directement les scripts Dart.</li><li>Un utilitaire permet de créer et packager une image binaire de la heap qui pourra être exécutée par la suite.</li></ul><p>Côté outillage, Dart propose un éditeur basé sur Eclipse avec support de l’auto-complétion. Bref, avec Dart, Google semble vouloir proposer une alternative à JavaScript permettant enfin de structurer son code et probablement de réconcilier les Javaïstes avec la programmation côté navigateur. Une belle initiative à laquelle nous souhaitons un franc succès.<br
/> Pour plus d’information:</p><ul><li><a
title="Lannonce sur InfoQ" href="http://www.infoq.com/news/2011/10/google-dart-language">L’annonce sur InfoQ</a></li><li><a
title="Dartlangorg" href="http://www.dartlang.org/">Dartlang.org</a></li><li><a
title="Google code de Dart" href="http://code.google.com/p/dart/">Google code de Dart</a></li></ul><h4><a
name="GoogleCloudSQL"></a>Google Cloud SQL</h4><p>Google App Engine, la solution de cloud PaaS made in Google offre dorénavant la possibilité d&#8217;utiliser une base de données relationnelle de type MySql.<br
/> Ce service nommée <a
title="Google Cloud SQL" href="http://googleappengine.blogspot.com/2011/10/google-cloud-sql-your-database-in-cloud.html">Google Cloud SQL</a> répond à de nombreuses demandes d&#8217;utilisateurs, qui souhaitaient une manière plus simple de persister ses données que la solution <a
title="BigTable" href="http://labs.google.com/papers/bigtable.html">BigTable</a>.</p><p>Comme on pouvait s&#8217;y attendre, ce service ne nécessite aucune maintenance, ni administration. Une interface d&#8217;administration est néanmoins fournie. Vous avez la possibilité d&#8217;importer ou d&#8217;exporter votre base de données MySQL. De plus, il offre un mécanisme de réplication géolocalisé des données sur des centres de données.</p><p>Pour le moment, ce nouveau service est gratuit et mis à disposition d&#8217;un nombre limité d&#8217;utilisateurs. Par ailleurs, les quotas fixés sont plutôt modestes: 5 requêtes par seconde et la taille d&#8217;une requête est limitée à 15MO. Si vous êtes intéressé, c&#8217;est <a
title="ici" href="http://code.google.com/intl/fr/apis/sql/docs/before_you_begin.html#enroll">ici</a> pour s&#8217;inscrire.</p><h4><a
name="ApacheTomEE"></a>Apache TomEE</h4><p>Apache a profité de JavaOne pour annoncer la sortie de <a
title="TomEE" href="http://www.infoq.com/news/2011/10/apache-tomee">TomEE</a> en version Bêta. La particularité de ce serveur web est d&#8217;être certifié JEE 6 Web Profile.<br
/> Il s&#8217;ajoute à la liste des serveurs open source déjà existant compatibles JEE 6 Web Profile: GlassFish, JBoss et Apache Geronimo.</p><p>Ce serveur est assemblé à partir d&#8217;un simple Apache Tomcat, auquel ont été ajoutées différentes implémentations Apache pour fournir tous les services EE.<br
/> Voici les implémentations des différentes briques de la stack JEE embarquées dans TomEE:</p><ul><li>CDI: Apache OpenWebBeans</li><li>EJB: Apache OpenEJB</li><li>Javamail: Apache Geronimo JavaMail</li><li>JPA: Apache OpenJPA</li><li>JSF: Apache MyFaces</li><li>JTA: Apache Geronimo Transaction</li><li>Connector: Apache Geronimo Connector</li><li>JMS: Apache ActiveMQ</li><li>Web Services: Apache CXF</li></ul><p>La philosophie d&#8217;Apache TomEE est d&#8217;offrir une solution simple et légère pour faire du JEE. Ce serveur semble bien prédisposé pour les solutions de Cloud avec notamment sa faible taille mémoire (&lt; 24 Mo).<br
/> Toutes les informations et le téléchargement se trouvent <a
title="ici" href="http://openejb.apache.org/downloads.html">ici</a>.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="SCRUMsemetaucrowdsourcing"></a>SCRUM se met au crowdsourcing</h4><p>La plus populaire des méthodes agiles marque un tournant significatif dans son histoire. Les co-créateurs ont décidé de laisser la possibilité à chacun de proposer des modifications ou des extensions au cadre de base. <a
title="Cette annonce" href="http://www.scrum.org/news/2011/10/6/scrum-is-open-for-modification-and-extension.html">Cette annonce</a> intervenue peu avant le week-end serait presque passé inaperçue. Il y a quand même eu quelques réactions spontanées, notamment David Anderson, le meneur du mouvement Kanban, qui se demandait sur Twitter qui serait le premier à proposer une extension Kanban pour Scrum.</p><div
align="center"><a
href="http://blog.xebia.fr/wp-content/uploads/2011/10/SCRUM_crowdsourcing.png"><br
/> <img
class="size-full wp-image-8815" title="SCRUM_crowdsourcing" src="http://blog.xebia.fr/wp-content/uploads/2011/10/SCRUM_crowdsourcing.png" alt="" width="200" height="108" /><br
/> </a></div><p>De notre côté on se demande qui sera la première SSII française à proposer une extension de SCRUM pour remettre un rôle de chef de projet et de MOA dans tout ça ? Heureusement pour veiller aux dérives, il existe un comité de revue des propositions dont on connait au moins 2 personnes: James Coplien et David Starr. Ce comité est en charge de revoir les propositions et interagir avec leur auteur. L&#8217;histoire nous dira si ce comité, censé veiller au grain, adopte une ligne plutôt rigide ou permissive. Dans tous les cas le modèle pour proposer une modification ou une extension (c&#8217;est le même) demande de bien préciser le contexte dans lequel l&#8217;élément proposé est utile, à la façon d&#8217;une approche par pattern. Il faut également que la proposition soit appuyée par un sponsor et on nous promet une réaction sous 3 mois. Il est possible de voir en ligne <a
title="la liste" href="http://www.scrum.org/scrum-extensions/">la liste</a> des extension proposées. Pour l&#8217;instant on en trouve une seule qui émane de David Starr, du comité de revue. Elle traite, d&#8217;après le titre, du découpage en tâche dans le sprint planning. Ah, mais ce n&#8217;est pas ce qui avait été supprimé de SCRUM en Juillet ça ? D&#8217;ailleurs les <a
title="explications" href="http://www.scrum.org/scrum-guide-updates/#backlog">explications</a> sur les modifications du Sprint Backlog provenaient également de David Starr. Donc si j&#8217;ai bien compris, il explique pourquoi ça disparait de SCRUM et ensuite il propose une extension pour le réintroduire si l&#8217;on veut. Bon, j&#8217;espère juste que SCRUM ne va pas finir comme le RUP avec un site web qu&#8217;on peut configurer à partir d&#8217;une bibliothèque d&#8217;extensions&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/</link> <comments>http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/#comments</comments> <pubDate>Tue, 20 Sep 2011 05:21:35 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Betamax]]></category> <category><![CDATA[git]]></category> <category><![CDATA[Git-Flow]]></category> <category><![CDATA[Github]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[VCR]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8549</guid> <description><![CDATA[La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia. Agilité Modification du guide SCRUM Nouvelle certification Agile au PMI Le coin de la technique Betamax 1.0 refera t&#8217;il l&#8217;histoire ? Git: à chacun son flow Agilité Modification du guide SCRUM L&#8217;été est souvent le moment privilégié par nos élus pour faire passer en [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/#ModificationduguideSCRUM">Modification du guide SCRUM</a></li><li><a
href="http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/#NouvellecertificationAgileauPM">Nouvelle certification Agile au PMI</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/#Betamaxreferatillhistoire">Betamax 1.0 refera t&#8217;il l&#8217;histoire ?</a></li><li><a
href="http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/#Gitchacunsonflow">Git: à chacun son flow</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ModificationduguideSCRUM"></a>Modification du guide SCRUM</h4><p>L&#8217;été est souvent le moment privilégié par nos élus pour faire passer en douce des lois sans faire trop de bruit. Cela vous a peut être échappé mais cet été Jeff Sutherland et Ken Schwaber ont publié <a
title="une mise à jour de SCRUM en 6 points" href="http://www.scrum.org/storage/Scrum%20Update%202011.pdf">une mise à jour de SCRUM en 6 points</a>. Je ne sais pas s&#8217;ils avaient eux-aussi la volonté d&#8217;introduire ces changements sans trop faire de bruit (<a
title="un peu quand mme" href="http://14principles.com/agile/scrum-guide-2011/">un peu quand même</a>), mais certains sont assez marquants, nous vous les détaillons ci-dessous:</p><ul><li>l&#8217;équipe SCRUM est désormais nommée &laquo;&nbsp;équipe de développement&nbsp;&raquo;, fini la métaphore des poulets et des cochons. Ce changement de terminologie peut laisser quelque peu sceptique, car la notion d&#8217;équipe pluridisciplinaire ne transparaît pas très bien derrière le terme développeur. Dans la nouvelle Scrum Team donc, tout le monde sera développeur, que vous soyez programmeur, testeur, analyste, manager, ou quoique ce soit. Faut-il se réjouir de cette appellation ? Elle a en tout cas pour vertu de nous mettre face à l&#8217;objectif premier: développer un produit. Cela me fait penser à un célèbre dirigeant Américain qui n&#8217;avait pas hésité à déclarer &laquo;&nbsp;Ich bin ein Berliner&nbsp;&raquo; pour montrer sa solidarité. Chers cochons, quoique vous fassiez, aujourd&#8217;hui n&#8217;hésitez pas à clamer &laquo;&nbsp;Ich bin ein Developer&nbsp;&raquo;.</li><li>La notion d&#8217;engagement est supprimée: ce sont les SSII qui vont faire la grimace, nombre d&#8217;entre elles bâtissaient des forfaits agiles sur cette notion d&#8217;engagement en début d&#8217;itération (ça ne les empêchera de continuer cela dit). C&#8217;est peut-être ce qui a poussé les créateurs de SCRUM à supprimer cette notion à double tranchants, l&#8217;engagement étant la base du mécanisme de <a
title="soumission librement consentie" href="http://fr.wikipedia.org/wiki/Engagement_(psychologie_sociale)">soumission librement consentie</a>. Il est maintenant remplacé par la notion de &laquo;&nbsp;prévision de ce qui peut être réalisé dans le sprint, cette prévision étant affinée tout au long de l&#8217;itération&nbsp;&raquo;, c&#8217;est plus long à dire mais on risque moins de se faire manipuler</li><li>Le burndown d&#8217;itération n&#8217;est pas obligatoire: les créateurs de SCRUM nous rappellent que ce qui est important est le suivi du reste à faire et pas la façon dont on le suit</li><li>Le Release Planning n&#8217;est pas un élément de SCRUM: un changement en forme de précision, les auteurs signalent tout de même qu&#8217;il est utile de le faire, ouf !</li><li>Le backlog de sprint est supprimé: sans doute le changement le plus marquant, la corvée du découpage en tâches estimées en heures ne sera plus imputable à SCRUM. Les auteurs auraient pu ajouter une phrase du type &laquo;&nbsp;nous déclinons toute responsabilité si vous continuez à découper, estimer, et suivre des tâches&nbsp;&raquo; tellement cette pratique donne la migraine aux équipes qui débutent, et tellement les équipes familières avec SCRUM s&#8217;en débarrassent avec bonheur. Ce sont les éditeurs de logiciel de gestion de projet agile qui vont faire la grimace: si ça continue les équipes SCRUM n&#8217;auront plus besoin que de post-it.</li><li>Le product backlog n&#8217;est pas priorisé mais trié: là encore ce changement a le mérite de mettre l&#8217;accent sur le fond et pas sur la forme, même si la nuance est subtile. La priorisation amenait parfois des débats pas forcément constructifs entre l&#8217;équipe, qui a besoin d&#8217;éléments prêts à être réalisés (&laquo;&nbsp;ready&nbsp;&raquo;), et le Product Owner, pour qui tout est prioritaire même les points les plus flous. Ici on demande au Product Owner de classer, régulièrement et dans l&#8217;ordre qu&#8217;il souhaite, les éléments du haut de la liste devant être &laquo;&nbsp;ready&nbsp;&raquo;.</li></ul><p>Vous pouvez consulter le <a
title="guide SCRUM" href="http://www.scrum.org/storage/scrumguides/Scrum%20Guide%20-%202011.pdf">guide SCRUM</a> dans sa version 2011.</p><h4><a
name="NouvellecertificationAgileauPM"></a>Nouvelle certification Agile au PMI</h4><p>Le <a
title="PMI" href="http://www.pmi.org/">PMI</a> (Project Management Institute) est une association mondialement connue spécialisée dans les méthodologies de gestion de projet.<br
/> A travers son guide <a
title="PMBOK" href="http://www.pmi.org/PMBOK-Guide-and-Standards/Standards-Library-of-PMI-Global-Standards.aspx">PMBOK</a>, elle propose des bonnes pratiques et une méthodologie regroupant un ensemble de processus classés par domaines d&#8217;activités.</p><p>Face aux succès des méthodes agiles, une communauté agile s&#8217;est formé au sein du PMI et prépare une <a
title="version 5" href="http://leadinganswers.typepad.com/leading_answers/2011/04/pmi-agile-work.html">version 5</a> agilisée du PMBOK courant 2012.<br
/> En outre, le PMI va proposer sa propre certification agile nommée <a
title="ACP" href="http://www.pmi.org/Certification/New-PMI-Agile-Certification.aspx">ACP</a> (Agile Certified Practitioner) d&#8217;ici la fin de l&#8217;année.<br
/> Actuellement, les <a
title="certifications Scrum" href="http://www.scrumalliance.org/pages/scrum_certification">certifications Scrum</a> (proposées par la Scrum Alliance) consistent simplement à assister à une formation de 2 jours donnée par <a
title="un coach Scrum certifié" href="http://www.scrumalliance.org/pages/certified_scrum_coach">un coach Scrum certifié</a>. Ces certifications sont même <a
title="de plus en plus discrdites" href="http://www.aubryconseil.com/post/La-certification-Scrum-encore-plus-discreditee">de plus en plus discréditées</a>.<br
/> La formation ACP consistera en un examen sous la forme de 120 questions à réponses multiples. Il est d&#8217;ores et déjà possible de participer au <a
title="programme pilote" href="http://www.pmi.org/Certification/New-PMI-Agile-Certification/PMI-Agile-Certification-Pilot-Program.aspx">programme pilote</a>, si vous répondez aux critères d&#8217;éligibilité. Reste à voir si ce questionnaire sera suffisamment significatif pour avoir une réelle valeur.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Betamaxreferatillhistoire"></a>Betamax 1.0 refera t&#8217;il l&#8217;histoire ?</h4><p>Une nouvelle librairie vient de débarquer en version 1.0: <a
title="Betamax" href="http://robfletcher.github.com/betamax/">Betamax</a>. Similaire à <a
title="VCR" href="https://github.com/myronmarston/vcr">VCR</a> déjà connu des Rubyistes, Betamax est destiné à ouvrir de nouveaux horizons aux tests unitaires. Cette librairie agit en effet comme un proxy http à ceci près qu&#8217;elle enregistre les requêtes et les réponses afin de pouvoir rejouer ces dernières. On voit donc immédiatement l&#8217;intérêt: on peut écrire ses tests unitaires pour qu&#8217;ils aillent requêter un vrai serveur avec de bonnes données. Ensuite, lorsque le test sera rejoué sur un autre environnement ne disposant pas forcément d&#8217;un accès au serveur, c&#8217;est Betamax qui se substituera à celui-ci en renvoyant les données qu&#8217;il a précédemment enregistrées.<br
/> On voit tout de suite l&#8217;intérêt que l&#8217;on peut tirer d&#8217;une telle librairie qui permet de se passer d&#8217;écrire un énième mock pour faire ses tests. Par contre, ceux-ci ne sont alors plus si unitaires que ça et pourraient même devenir assez lourd (un serveur -Jetty- est démarré). Il faudra donc sans doutes faire attention à ne pas en abuser.</p><p>L&#8217;analogie avec le monde de la vidéo est prolongée assez loin: Betamax enregistre par exemple les requêtes dans des fichiers appelés &laquo;&nbsp;tape&nbsp;&raquo;. Espérons tout de même pour lui que Betamax parvienne <a
title="cette foisci" href="http://fr.wikipedia.org/wiki/Betamax#Betamax_contre_VHS">cette fois-ci</a> à s&#8217;imposer !</p><h4><a
name="Gitchacunsonflow"></a>Git: à chacun son flow</h4><p>Vous connaissez Git, le SCM du moment. peut être connaissez vous aussi <a
title="Git-Flow" href="http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow/">Git-Flow</a>, un <a
title="ensemble de raccourcis" href="https://github.com/nvie/gitflow">ensemble de raccourcis</a> destinés à donner un cadre à l&#8217;utilisation de Git. Scott Chacon, évangéliste chez <a
title="GitHub" href="http://www.github.com/">GitHub</a>, compare <a
title="sur son blog" href="http://scottchacon.com/2011/08/31/github-flow.html">sur son blog</a> l’expérience de Git et son l&#8217;utilisation qui en est faite chez GitHub par rapport au standard qu&#8217;est git-flow. Il s’avère que GitHub dispose d&#8217;un flow assez simple:</p><ul><li>Tout ce qui est dans la branche master doit est soit déjà déployé, soit va l’être sous peu. C&#8217;est LA règle principale.</li><li>Pour toute nouvelle fonctionnalité, une nouvelle branche est créée à partir de master. Pour peu que les branches aient un nom bien choisi, la page &laquo;&nbsp;branch list&nbsp;&raquo; de GitHub permet d&#8217;avoir rapidement une vue d&#8217;ensemble des nouveautés en cours de développement.</li><li>Les commit locaux ET les <em>push</em> vers le serveur sont encouragé. C&#8217;est une différence importante par rapport à git-flow. Les <em>push</em> réguliers participent à la volonté de transparence, pour savoir tout le temps ce qui se passe sur le projet et éventuellement pouvoir collaborer.</li><li>Le mécanisme de <em>pull request</em> est un outil inestimable. Il permet de faire des revues de code, des propositions, laisser des commentaires&#8230;</li><li>La branche n&#8217;est mergée dans <em>master</em> qu’après validation par une tierce personne.</li><li>Une fois la fonctionnalité <em>pushée</em> sur master, vous pouvez et DEVEZ immédiatement déployer. Si vous ne le faites pas, c&#8217;est la personne qui suivra qui prendra ce risque. Or, vous ne voulez pas que les problèmes de votre code tombent sur d&#8217;autres que vous. On voit donc dans l&#8217;article une jolie capture sur laquelle on voit qu&#8217;en une journée, des dizaines de déploiements en production ont eu lieu (oui, il y a bien marqué <strong>des dizaines de déploiements en production</strong> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). A n&#8217;en pas douter, nombreux sont ceux que cette performance laissera rêveurs !</li></ul><p>Bref, même si Scott Chacon prêche pour sa paroisse en vantant Git et GitHub, il est intéressant de voir comment l&#8217;entreprise utilise en interne l&#8217;outil qu&#8217;elle propose à des tiers.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/09/20/revue-de-presse-xebia-230/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/07/05/revue-de-presse-xebia-218/</link> <comments>http://blog.xebia.fr/2011/07/05/revue-de-presse-xebia-218/#comments</comments> <pubDate>Tue, 05 Jul 2011 20:29:59 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Daily standup]]></category> <category><![CDATA[Javaposse]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[modele de Dreyfus]]></category> <category><![CDATA[Rhino]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8147</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Agilité Tout le monde se lève pour Daily Le coin de la technique Avenir de Javascript Evénements de notre communauté en France et à l&#8217;étranger JavaPosse #357 : Courage in Software Development Agilité Tout le monde se lève pour Daily Fabrice Aimetti, Consultant agile [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /></p><p><em>La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/07/05/revue-de-presse-xebia-218/#ToutlemondeselvepourDaily">Tout le monde se lève pour Daily</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/07/05/revue-de-presse-xebia-218/#AvenirdeJavascript">Avenir de Javascript</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/2011/07/05/revue-de-presse-xebia-218/#JavaPosseCourageinSoftwareDeve">JavaPosse #357 : Courage in Software Development</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ToutlemondeselvepourDaily"></a>Tout le monde se lève pour Daily</h4><p>Fabrice Aimetti, Consultant agile et <a
title="serial traducteur" href="http://www.fabrice-aimetti.fr/dokuwiki/doku.php/traduction:start">serial traducteur</a> sur tout ce qui touche à l&#8217;agilité nous offre une nouvelle traduction d&#8217;un <a
title="vieil article" href="http://martinfowler.com/articles/itsNotJustStandingUp.html">vieil article</a> de Jason Yip intitulé &laquo;&nbsp;It&#8217;s Not Just Standing Up: Patterns of Daily Stand-up Meetings&nbsp;&raquo;.<br
/> <a
title="Cette traduction" href="http://www.fabrice-aimetti.fr/dotclear/index.php?post/2011/06/23/Il-ne-s-agit-pas-simplement-de-rester-debout-%3A-les-bonnes-pratiques-du-Daily-Stand-up-Meeting">Cette traduction</a> parle donc des bonnes pratiques du Daily Stand-up Meeting. Nous passerons vite sur la mise page qui ne fait pas bien ressortir le plan car c&#8217;est le contenu qui importe. Et celui-ci est dense ! Si pour vous le principe du &laquo;&nbsp;Daily&nbsp;&raquo; n&#8217;est pas encore très clair, si vous le faites tous les jours un peu au hasard en espérant qu&#8217;il soit mieux aujourd&#8217;hui que la veille, si son intérêt est remis en cause par les membres de l&#8217;équipe&#8230; alors vous avez là un outil indispensable. Tous les aspects y sont abordés, avec des exemples d&#8217;objections et de solutions:</p><ul><li>Les bonnes pratiques</li><li>les acteurs</li><li>les sujets à aborder</li><li>les horaires</li><li>la motivation</li></ul><p>Par contre, n&#8217;oubliez pas que &laquo;&nbsp;le Daily&nbsp;&raquo; ne constitue que l&#8217;une des réunions de la méthode Scrum avec le <strong>poker planning</strong>, la <strong>revue de sprint</strong> et <strong>la rétrospective</strong>. Le tenir de façon journalière ne fera en aucun cas de vous une équipe agile si l&#8217;esprit de Scrum n&#8217;est pas respecté.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="AvenirdeJavascript"></a>Avenir de Javascript</h4><p>Javascript est un langage que tout développeur Web a déjà pratiqué. On l&#8217;apprend souvent sur le tard, plus ou moins dans la douleur, et les ressentis sur ce langage sont très variés.</p><p>L&#8217;existence du serveur <a
title="Node-JS" href="http://nodejs.org/">Node-JS</a>, de l&#8217;intégration dans le JDK d&#8217;un <a
title="moteur Javascript" href="http://www.jcp.org/en/jsr/detail?id=223">moteur Javascript</a> (Rhino qui devrait d&#8217;ailleurs recevoir sous peu <a
title="des améliorations" href="http://www.infoq.com/news/2011/07/rhino-invokedynamic">des améliorations</a>) et la montée en puissance de HTML5 (<a
title="voir notre prcdent billet" href="http://blog.xebia.fr/2010/03/18/html5-les-api-javascript">voir notre précédent billet</a>) dénotent l&#8217;importance que prend Javascript dans la communauté mondiale, et plus seulement dans le développement côté client.</p><p>Les développeurs issus des technologies côté serveur se posent beaucoup de questions sur ce langage souvent mal perçu.</p><p>Si faire un module Javascript pour encapsuler des données est aisé, créer une classe et faire de l&#8217;héritage l&#8217;est beaucoup moins (très bon exemple donné <a
title="ici" href="http://www.howtocreate.co.uk/tutorials/javascript/objects">ici</a>). On reproche souvent à Javascript sa verbosité et sa complexité de lecture pour cette approche objet.</p><p>Mais sommes-nous dans la bonne direction quand nous faisons cela?<br
/> Lorsqu&#8217;on utilise un framework qui n&#8217;offre pas les moyens de réaliser une solution comme on le souhaiterait, il y a deux possibilités :</p><ul><li>soit ce framework n&#8217;est pas complet et je peux proposer une évolution</li><li>soit le framework a été volontairement restreint à certaines fonctionnalités car elles représentent le consensus de la communauté sur les bonnes pratiques.</li></ul><p>Javascript est un langage à typage dynamique et vouloir le restreindre à une conception objet pure serait lui enlever sa force. Les prototypes en Javascript sont justement présents pour modifier, au cours de la vie du programme, la structure des objets en fonction des besoins.</p><p>Il est difficile pour nous autres, développeurs &laquo;&nbsp;objet&nbsp;&raquo;, de ne pas savoir de quel type sera notre paramètre dans une fonction, ou encore de ne pas faire d&#8217;héritage. Mais il est de notre devoir de désapprendre ce que l&#8217;on a durement acquis sur la POO et adopter une nouvelle approche en Javascript, en acceptant dès le départ son mode de fonctionnement, plutôt que d&#8217;y trouver des solutions de contournement.</p><p>HTML 5, les API REST avec JSON rendent les langages beaucoup plus communicants en facilitant et standardisant les échanges de données. La coopération est donc inévitable.</p><p>Une autre approche existe avec <a
title="Google GWT" href="http://code.google.com/intl/fr-FR/webtoolkit/">Google GWT</a> qui considère le Javascript comme un langage compilé à partir d&#8217;un autre. Javascript serait ainsi le ByteCode des temps prochains ?</p><p>Vous pouvez suivre ce long débat sur <a
title="larticle" href="http://peter.michaux.ca/articles/javascript-is-dead-long-live-javascript">l&#8217;article</a> &laquo;&nbsp;JavaScript is Dead. Long Live JavaScript!&nbsp;&raquo; de Peter Michaux qui a récemment généré du buzz sur cette thématique.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evénements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JavaPosseCourageinSoftwareDeve"></a>JavaPosse #357 : Courage in Software Development</h4><p>Le podcast américain populaire aborde le sujet du software craftsmanship sous la forme d&#8217;une discussion de groupe lors de <a
title="leur dernier roundup" href="http://javaposse.com/java-posse-357-roundup-11-courage-in-software-development">leur dernier roundup</a>.  On y parle manifeste agile et craftsmanship, DRY (simple design), de l&#8217;humilité d&#8217;accepter les échecs, de code retreats et du <a
title="modle de Dreyfus dacquisition des comptences" href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition">modèle de Dreyfus d&#8217;acquisition des compétences</a>. Une discussion intéressante, par l&#8217;opposition des points de vue, qui résume assez bien les tendances actuelles autour du mouvement.<br
/> A écouter, pour anglophiles, pour une durée d&#8217;un peu plus d&#8217;1 heure.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/07/05/revue-de-presse-xebia-218/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/</link> <comments>http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/#comments</comments> <pubDate>Tue, 19 Apr 2011 08:24:21 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Ceylon]]></category> <category><![CDATA[monitoring]]></category> <category><![CDATA[Nudge]]></category> <category><![CDATA[Play!]]></category> <category><![CDATA[Rails]]></category> <category><![CDATA[Red Hat]]></category> <category><![CDATA[Saas]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Websphere]]></category> <category><![CDATA[xss]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7514</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII IBM dévoile WebSphere 8 Sortie de Play! Framework 1.2 Nudge, une plate-forme hébergée de monitoring de performance applicative (SaaS) Sortie de Rails 3.0.6 corrigeant une faille de sécurité de type XSS Le coin de la technique Red Hat prépare Ceylon, [...]]]></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/2011/04/19/revue-de-presse-xebia-207/#WebSphere">IBM dévoile WebSphere 8</a></li><li><a
href="http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/#Sortiesdeplayframeworketscalap">Sortie de Play! Framework 1.2</a></li><li><a
href="http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/#Nudgeuneplateformehbergedemoni">Nudge, une plate-forme hébergée de monitoring de performance applicative (SaaS)</a></li><li><a
href="http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/#SortiedeRailscorrigeantunefail">Sortie de Rails 3.0.6 corrigeant une faille de sécurité de type XSS</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/#RedHatprpareCeylonunnouveaulan">Red Hat prépare Ceylon, un nouveau langage pour la JVM</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/2011/04/19/revue-de-presse-xebia-207/#ScrumDaycommesivousytiez">Scrum Day 2011: comme si vous y étiez!</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="WebSphere"></a>IBM dévoile WebSphere 8</h4><p>Nos confrères du <a
href="http://www.lemondeinformatique.fr/actualites/lire-ibm-lancera-websphere-8-en-juin-33448.html" title="Monde Informatique" >Monde Informatique</a> et du <a
href="http://www.journaldunet.com/developpeur/java-j2ee/websphere-8-et-un-ide-html5-0411.shtml" title="Journal du Net" >Journal du Net</a> reviennent sur la conférence <a
href="http://www-01.ibm.com/software/websphere/events/impact/" title="Impact 2011" >Impact 2011</a>, qui se tenait à Las Vegas les 12 et 13 avril derniers, au cours de laquelle IBM a notamment présenté les grandes lignes de la version 8 de son célèbre serveur d&#8217;applications.</p><p>Disponible en version bêta depuis le mois de mars &#8212; la sortie officielle étant prévue pour juin &#8212; cette dernière version est 100% compatible avec Java EE 6. Parmi la longue liste de fonctionnalités <a
href="https://www14.software.ibm.com/iwm/web/cc/earlyprograms/websphere/wsasoa/index.shtml" title="au programme de cette nouvelle mouture" >au programme de cette nouvelle mouture</a>, citons le support des standards suivants :</p><ul><li>Enterprise JavaBeans (EJB) 3.1</li><li>Java Persistence API (JPA) 2.0</li><li>JavaServer Faces (JSF) 2.0</li><li>JavaServer Pages (JSP) 2.2</li><li>Servlet 3.0</li><li>JAXB 2.2</li><li>JAX-WS 2.2, et notamment le support de Web Services Security API (WSS API) et WS-Trust, censés faciliter le SSO à l&#8217;aide de web services.</li></ul><p>WebSphere 8 devrait apporter également:</p><ul><li>une meilleure prise en charge des applications OSGi;</li><li>une meilleure intégration des web services utilisant WS-Security SAML Token Profile 1.1;</li><li>un support de SIP Servlet 1.1 afin de favoriser l&#8217;utilisation d&#8217;applications de communication;</li><li>le support du cache L2 de JPA à l&#8217;aide de DynaCache (le cache par défaut utilisé dans WebSphere);</li><li>une intégration simplifiée avec WebSphere MQ.</li></ul><p>IBM semble également avoir voulu contenter les développeurs d&#8217;applications (il était temps, diront certains): non seulement le serveur semble démarrer plus rapidement, mais surtout le processus de déploiement a été simplifié, et il sera désormais possible de (re)déployer une application avec un simple <em>drag&#8217;n drop</em>.</p><h4><a
name="Sortiesdeplayframeworketscalap"></a>Sortie de Play! Framework 1.2</h4><p>La version 1.2 du framework <a
href="http://www.playframework.org/" title="Play" >Play!</a> vient tout juste de voir le jour. Pour ceux qui ne le connaitraient pas encore, Play est un framework web orienté haute productivité. Comme son cousin Grails, il repose sur des conventions, est extensible via des plugins et supporte le rechargement à chaud des modifications du code.</p><p>Les nouveautés apportées par cette <a
href="http://www.playframework.org/documentation/1.2/releasenotes-1.2" title="nouvelle version">nouvelle version</a> sont nombreuses :</p><ul><li>ajout d&#8217;un système de gestion de dépendances basé sur <em>Ivy</em>, permettant de récupérer des modules Play ou toutes autres librairies requises,</li><li>support du <em>Long Polling</em> et des <em>Web Sockets</em>, pour les connections asynchrones,</li><li>introduction d&#8217;un mécanisme de gestion des évolutions des schémas de bases de données,</li><li>ajout du concept d&#8217;<em>Invocation</em> permettant la mise en place de mécanismes équivalent aux <em>Servlet Filters</em> ou à l&#8217;<em>AOP</em> (pour la déclaration des transactions à l&#8217;arrivée d&#8217;une requête par exemple),</li><li>support des bases <em>H2</em>, maintenant embarquées par défaut,</li><li>possibilité de lancer les tests <em>JUnit</em> directement dans <em>Eclipse</em> (sans passer par la page de tests),</li><li>une meilleure documentation du framework, avec notamment une <em>Cheat-Sheet</em>, toujours accessible en mode déconnecté.</li></ul><p>Cette version 1.2 est accompagnée de la version 0.9 du plugin Scala pour Play. Ce plugin permet l&#8217;utilisation du <a
href="http://www.scala-lang.org/" title="langage Scala" >langage Scala</a> pour développer vos applications Web avec le framework Play. Outre une meilleure intégration de Scala dans le framework Play, cette nouvelle version du plugin apporte une nouvelle couche d&#8217;accès aux bases de données nommée <em>Anorm</em>. <em>Anorm</em> permet l&#8217;accès en SQL à vos données et utilise des fonctionnalités du langage Scala (le <em>Combinator Parsing</em>) pour mapper le résultat des requêtes avec vos objets. D&#8217;importantes évolutions sont encore attendues dans la <a
href="http://scala.playframework.org/documentation/scala-0.9/roadmap" title="prochaine version" >prochaine version</a> de ce plugin, qui devrait encore améliorer son intégration et sa documentation.</p><p>Cette nouvelle version apporte donc d&#8217;importantes améliorations et confirme la simplicité qui est au coeur de la philosophie de Play.</p><h4><a
name="Nudgeuneplateformehbergedemoni"></a>Nudge, une plate-forme hébergée de monitoring de performance applicative (SaaS)</h4><p>La société Level5 Consulting vient de sortir <a
href="http://www.level5.fr/nudge.html" title="Nudge" >Nudge</a>, une offre hébergée de monitoring d&#8217;applications en production. Les cibles sont des logiciels de type web ou batch développés en Java/JEE.</p><p>Utilisateurs, vous aurez à disposition des fonctionnalités permettant de :</p><ul><li>collecter et agréger des temps de réponse,</li><li>identifier les requêtes SQL consommatrices,</li><li>suivre la consommation mémoire et CPU,</li><li>agréger des données par module et/ou processus métier,</li><li>créer de métriques personnalisées par API,</li><li>gérer des alertes et des SLA,</li><li>collecter des informations sur les incidents de production.</li></ul><p>Vous bénéficierez aussi d&#8217;un support d&#8217;expert sur l&#8217;optimisation d&#8217;application. Vous pouvez dès maintenant découvrir Nudge gratuitement ou bien tester une application de démonstration disponible sur le site de l&#8217;éditeur. Pour plus de détails, consultez <a
href="http://www.developpez.com/actu/31008/La-societe-francaise-Level5-lance-Nudge-sa-plate-forme-hebergee-de-monitoring-de-performance-applicative/" title="larticle de Developpezcom sur le sujet" >l&#8217;article de Developpez.com sur le sujet</a>.</p><h4><a
name="SortiedeRailscorrigeantunefail"></a>Sortie de Rails 3.0.6 corrigeant une faille de sécurité de type XSS</h4><p>C&#8217;est le 6 avril que la dernière version (3.0.6) de l&#8217;outils <a
href="http://rubyonrails.org/" title="Rails" >Rails</a> est sortie. C&#8217;est une version importante puisqu&#8217;elle corrige, entre autre, une faille de sécurité. En effet, une vulnérabilité de type XSS (<a
href="http://fr.wikipedia.org/wiki/Cross-site_scripting" title="Cross Site Scripting" >Cross Site Scripting</a>) peut être exploitée si la méthode <code>auto_link</code> est utilisée dans les sources. Cette dernière en effet avait la fâcheuse habitude de marquer automatiquement ses paramètres comme étant <code>html safe</code>, et ce, quelle que soit leur origine: ceux-ci n&#8217;étaient donc en vérité jamais contrôlés. Il était donc possible d&#8217;exécuter du code javascript malveillant en l&#8217;injectant dans un paramètre de type <code>string</code>. Le billet mentionne trois solutions pour palier ce problème: mettre à jour votre version de Rails, installer un patch ou&#8230; ne pas utiliser cette méthode <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /></p><p>Cette mise à jour apporte quelques autres ajouts, dont vous pouvez retrouver le détail sur le <a
href="http://weblog.rubyonrails.org/2011/4/6/rails-3-0-6-has-been-released" title="blog du projet" >blog du projet</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="RedHatprpareCeylonunnouveaulan"></a>Red Hat prépare Ceylon, un nouveau langage pour la JVM</h4><p>Le &laquo;&nbsp;buzz&nbsp;&raquo; de la semaine c&#8217;est bien sûr la diffusion d&#8217;<a
href="http://www.slideshare.net/devstonez/introducing-the-ceylon-project-gavin-king-presentation-at-qcon-beijing-2011" title="une présentation" >une présentation</a> (et de <a
href="http://www.slideshare.net/devstonez/the-ceylon-type-system-gavin-king-presentation-at-qcon-beijing-2011" title="sa deuxième partie" >sa deuxième partie</a>) que Gavin King a faite à Pékin lors de la <a
href="http://www.qconbeijing.com/english.html" title="QCon" >QCon</a>, où il révèle qu&#8217;il travaille pour Red Hat à un nouveau langage pour la JVM : Ceylon. Bien que Gavin ne prévoyait pas de parler officiellement du projet de son équipe aussi tôt, il a confirmé la nouvelle ; d&#8217;abord sur <a
href="http://in.relation.to/Bloggers/Ceylon" title="son blog" >son blog</a>, puis lors d&#8217;une <a
href="http://www.infoq.com/news/2011/04/ceylon" title="interview pour InfoQ" >interview pour InfoQ</a>.</p><p>Alors de quoi s&#8217;agit-il ? La première chose à noter est que Gavin King se défend de vouloir créer le langage du futur pour la JVM ou un &laquo;&nbsp;Java Killer&nbsp;&raquo;. Il se dit d&#8217;ailleurs &laquo;&nbsp;fan apologétique&nbsp;&raquo; de Java et propose donc Ceylon comme un langage fortement inspiré de celui-ci, sans les frustrations qu&#8217;il occasionne. Les principales frustrations étant selon lui :</p><ul><li>les librairies du SDK, vieilles et mal conçues ;</li><li>la difficulté de définir une interface utilisateur en Java (il blâme d&#8217;ailleurs le complément quasi-automatique de Java pour beaucoup de besoins : XML) ;</li><li>le manque d&#8217;un vrai système de modules (il dénonce à cet égard la complexité de Maven et d&#8217;OSGi, en se prononçant en faveur du framework <a
href="https://github.com/jbossas/jboss-modules" title="JBoss Modules" >JBoss Modules</a>) ;</li><li>le manque de fonctions <a
href="http://fr.wikipedia.org/wiki/Fonction_d%27ordre_sup%C3%A9rieur" title="d'ordre supérieur" >d&#8217;ordre supérieur</a> et/ou <a
href="http://fr.wikipedia.org/wiki/Objet_de_premi%C3%A8re_classe" title="de premire classe" >de première classe</a> ;</li><li>la gestion de la concurrence (il fustige le fait que tout objet Java puisse être un sémaphore et juge qu&#8217;un langage ne devrait pas avoir de primitives de synchronisation, ce rôle devant selon lui être assumé par des librairies spécialisées) ;</li><li>ce qu&#8217;il appelle les &laquo;&nbsp;verrues&nbsp;&raquo; du langage : getters/setters, tableaux et types primitifs, la gestion des valeurs null, les checked exceptions, la généricité (surtout des points qu&#8217;il juge obscurs comme la notion de <em>type erasure</em> ou les <em>wildcards</em>) et le système de typage d&#8217;une manière globale.</li></ul><p>En pratique &#8212; et en résumé &#8212; Ceylon propose les points suivants :</p><ul><li>de garder tout ce qui fonctionne bien dans Java et en a fait le succès : la JVM, la garbage collection, pas de pointeurs, le typage statique, la lisibilité ;</li><li>le tout objet : tout est type et il n&#8217;y a pas de types &laquo;&nbsp;primitifs&nbsp;&raquo; (mais on peut encore utiliser <code>void</code> pour spécifier le non-retour d&#8217;une fonction) ;</li><li>la possibilité de faire des <a
href="http://en.wikipedia.org/wiki/Mixin" title="mixins" >mixins</a>, c&#8217;est-à-dire d&#8217;implémenter des méthodes dans des interfaces (tant qu&#8217;il n&#8217;y a pas besoin d&#8217;initialisation) &#8212; fonctionnalité sans doute inspirée du Projet Coin ;</li><li>une généricité à la fois plus simple et plus restrictive : les paramètres-types (<em>type parameters</em>) peuvent, à l&#8217;aide des mots-clés <code>in</code> et <code>out</code>, être déclarés <em>covariants</em> ou <em>contravariants</em>, ce qui élimine la nécessité de passer par des <em>wildcards</em>, qui n&#8217;existent d&#8217;ailleurs pas dans ce langage: si <code>Box</code> prend un paramètre-type <code>T</code> covariant, une variable de type <code>Box&lt;Integer&gt;</code> est alors assignable, sans transtypage explicite, à une variable de type <code>Box&lt;Number&gt;</code>. Cela conduit Gavin King à imaginer deux interfaces <code>List&lt;T&gt;</code>, l&#8217;une covariante avec <code>T</code> et prenant en charge les opérations de lecture, l&#8217;autre contravariante prenant en charge les opérations d&#8217;écriture (qui modifient la liste) ;</li><li>une structure intrinsèquement récursive: &laquo;&nbsp;une classe n&#8217;est qu&#8217;une fonction retournant à l&#8217;appelant une <a
href="http://fr.wikipedia.org/wiki/Fermeture_(informatique)" title="fermeture" >fermeture</a> renfermant tous ses membres&nbsp;&raquo; (à la manière de ce que fait JavaScript) ;</li><li>des fonctions d&#8217;ordre supérieur et de première classe : une fonction peut ainsi être passée en paramètre d&#8217;une autre fonction, une fonction peut contenir d&#8217;autres fonctions (ceci découle de la structure récursive du langage), une fonction peut être assignée à une variable, etc&#8230; &#8212; cependant, les <a
href="http://fr.wikipedia.org/wiki/Fonction_anonyme" title="fonctions anonymes" >fonctions anonymes</a> (<em>fonctions lambda</em>) ne sont pas autorisées;</li><li>classes et interfaces peuvent spécifier par avance l&#8217;ensemble des sous-types qu&#8217;elles peuvent avoir ;</li><li>pas d&#8217;opérateur de transtypage (<em>casting</em>), mais la possibilité d&#8217;utiliser une structure <code>switch</code> particulière :</li></ul><pre class="brush: java; title: ; notranslate">
switch(maVariable) case (is UnType) {...} case(is UnAutreType) {...} else {...}
</pre><ul><li> des contrats plus forts :<ul><li> des valeurs ne sont nullables que si explicitement déclarées comme telles (avec un &laquo;&nbsp;<code>?</code>&nbsp;&raquo; derrière le type) et il faut alors obligatoirement les tester avec :<pre class="brush: java; title: ; notranslate">if (exists maVariable) {...} else {...}</pre></li><li>les attributs d&#8217;une classe ne sont modifiables que si déclarés comme tels avec <code>variable</code>, et il faut alors utiliser l&#8217;opérateur <code>:=</code> plutôt que <code>=</code> pour leur réaffecter une valeur ;</li></ul></li><li>des niveaux de visibilité simplifiés : <code>shared</code> (public) ou privé par défaut ;</li><li>des getters/setters implicites pour les variables d&#8217;instance ;</li><li>pas d&#8217;exceptions vérifiées (<em>checked exceptions</em>) ;</li><li>pas de surcharge (<em>overloading</em>) de méthodes mais en revanche des valeurs par défaut pour les paramètres ;</li><li>pas de surcharge d&#8217;opérateur mais des équivalents/méthodes que l&#8217;on peut redéfinir pour un type les supportant. Par exemple <code>></code> est équivalent à <code>.largerThan()</code> qui peut être redéfini par les implémentations de <code>Comparable</code> ;</li><li>une syntaxe alternative où il est obligatoire de nommer les arguments des méthodes, ce qui donne au final un langage descriptif que Gavin envisage comme une solution face à XML pour décrire des interfaces &#8212; l&#8217;exemple suivant, tiré de la présentation de Gavin King, est en effet assez parlant:</li></ul><pre class="brush: java; title: ; notranslate">
Table squares {
    title = &quot;Squares&quot;;
    rows = 10;
    Column {
        heading = &quot;x&quot;;
        String content(Natural row) {
            return $row;
        }
    }
    Column {
        heading = &quot;x**2&quot;;
        String content(Natural row) {
            return $row**2;
        }
    }
}
</pre><p>Au rayon des choses étranges :</p><ul><li>pas de mot-clé <code>new</code> ;</li><li>un seul constructeur autorisé (définitivement pas d&#8217;overloading donc), qui plus est fusionné avec la définition de la classe :</li></ul><pre class="brush: java; title: ; notranslate">class Counter(Natural initialValue) {
	if (initialValue &gt; 100) {
		throw OutOfRangeException()
	}
	...
}</pre><ul><li>le support de la <a
href="http://fr.wikipedia.org/wiki/Curryfication" title="curryfication" >curryfication</a> ;</li><li>la documentation est conçue comme partie intégrante du langage (un peu comme dans <a
href="http://code.google.com/p/noop/" title="Noop" >Noop</a>).</li></ul><p>Que penser de cet énième langage fondé sur la JVM?</p><p>On retrouve en effet dans Ceylon beaucoup de fonctionnalités également présentes dans d&#8217;autres langages dérivés de Java (<a
href="http://www.scala-lang.org/" title="Scala" >Scala</a>, <a
href="http://groovy.codehaus.org/" title="Groovy" >Groovy</a>, <a
href="http://gosu-lang.org/" title="Gosu" >Gosu</a>, <a
href="http://fantom.org/" title="Fantom" >Fantom</a>, pour ne citer qu&#8217;eux). On les retrouve aussi dans la <a
href="http://www.jroller.com/scolebourne/entry/the_next_big_jvm_language1" title="rflexion de Stephen Colebourne" >réflexion de Stephen Colebourne</a> pour définir un futur grand langage pour la JVM, qu&#8217;il a notamment présentée lors de la réunion du Paris JUG du mois de mars.</p><p>On constate donc bien que le but n&#8217;est pas de révolutionner le monde Java, et par ailleurs beaucoup de <a
href="http://lockster.posterous.com/ceylon-interesting-for-the-wrong-reasons" title="critiques" >critiques</a> ont déjà fusé sur le fait que Scala propose mieux depuis longtemps ou que ce langage propose tellement peu qu&#8217;il pourrait être mort-né.</p><p>Cela étant, les idées proposées sont plus que jamais d&#8217;actualité, et l&#8217;initiative étant portée par Red Hat et Gavin King (Hibernate, JBoss Seam), on peut légitimement espérer qu&#8217;elle fasse bien plus d&#8217;effet qu&#8217;un pétard mouillé.</p><p>Quoi qu&#8217;il en soit, il y a encore beaucoup de travail sur le projet : bien que le langage soit en étude depuis deux ans, aucun compilateur n&#8217;a encore vu le jour.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evénements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="ScrumDaycommesivousytiez"></a>Scrum Day 2011: comme si vous y étiez!</h4><p>Les webcasts du Scrum Day sont <a
href="http://www.frenchsug.org/display/FRSUG/Scrum+Day+France%2C+31+mars+2011" title="en ligne" >en ligne</a> sur le wiki du FSUG. Revivez l&#8217;intégralité de l&#8217;événement, comme si vous y étiez! Les présentations du grand amphithéâtre ont été filmées, les autres sont diffusées en commentaires audio accompagnés de slides.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/04/19/revue-de-presse-xebia-207/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Scrum Day Paris 2011</title><link>http://blog.xebia.fr/2011/03/25/scrum-day-paris-2011/</link> <comments>http://blog.xebia.fr/2011/03/25/scrum-day-paris-2011/#comments</comments> <pubDate>Fri, 25 Mar 2011 09:06:53 +0000</pubDate> <dc:creator>Nathaniel Richand</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Agile]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7304</guid> <description><![CDATA[Le French Scrum User Group organise une belle journée de partage sur l&#8217;agilité le 31 mars prochain au Centre de Conférences de Microsoft à Issy-les-Moulineaux. La journée promet d&#8217;être enrichissante avec la présence de Harvey Wheaton, Ken Schwaber et 20 conférences tenues dans 5 salles en parallèles (voir le programme). Je serai également présent et [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://www.xebia.fr/sites/default/files/logo_speaker_square_fr.jpg" border="0" alt="" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> Le <a
href="http://www.frenchsug.org" title="French Scrum User Group" >French Scrum User Group</a> organise une belle journée de partage sur l&#8217;agilité le 31 mars prochain au Centre de Conférences de Microsoft à Issy-les-Moulineaux. La journée promet d&#8217;être enrichissante avec la présence de <a
href="http://www.scrumalliance.org/profiles/15915-harvey-wheaton" title="Harvey Wheaton" >Harvey Wheaton</a>, <a
href="http://en.wikipedia.org/wiki/Ken_Schwaber" title="Ken Schwaber" >Ken Schwaber</a> et 20 conférences tenues dans 5 salles en parallèles (voir <a
href="http://scrumdayfrance.cloudapp.net/programme" title="le programme" >le programme</a>).<br
/> Je serai également présent et j&#8217;aurai la chance de vous présenter le sujet : <strong>Pratiques avancées de tests</strong>. J&#8217;y aborderai les meilleures pratiques de tests unitaires en Java. Cette présentation permettra d’identifier certains code-smell spécifiques aux tests et de mettre en œuvre des techniques de refactoring. Ce sera également l’occasion de découvrir les possibilités d’outils de tests (notamment Junit, Mockito, Fest, Spock) afin de créer des tests extrêmement lisibles et maintenables.</p><p>Il reste quelques places disponibles sur le site du <a
href="http://scrumday.fr/" title="scrumday" >scrumday</a>, dépêchez-vous si vous n&#8217;êtes pas encore inscrit.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/03/25/scrum-day-paris-2011/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/</link> <comments>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#comments</comments> <pubDate>Tue, 22 Mar 2011 09:00:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Harmony]]></category> <category><![CDATA[MDA]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[OpenJDK]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7271</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Apache Harmony: encore des couacs Agilité Rien ne va plus Le coin de la technique Sortie de MongoDB 1.8 Actualité éditeurs / SSII Apache Harmony: encore des couacs On se souvient des déboires récents du projet Apache Harmony: en opposition [...]]]></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/2011/03/22/revue-de-presse-xebia-203/#ApacheHarmonyencoredescouacs">Apache Harmony: encore des couacs</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#Riennevaplus">Rien ne va plus</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/#SortiedeMongoDB">Sortie de MongoDB 1.8</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="ApacheHarmonyencoredescouacs"></a>Apache Harmony: encore des couacs</h4><p>On se souvient des déboires récents du projet <a
href="http://harmony.apache.org/" title="Apache Harmony" >Apache Harmony</a>: en <a
href="http://www.apache.org/jcp/sunopenletter.html" title="opposition frontale" >opposition frontale</a> à Sun puis à Oracle depuis 2007 au sujet du <a
href="http://en.wikipedia.org/wiki/Technology_Compatibility_Kit" title="TCK" >TCK</a>, l&#8217;ambitieux projet d&#8217;implémentation Java sous licence Apache a vécu une année 2010 plutôt difficile. Jugez-en plutôt: en août 2010, Harmony fait les frais du <a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#OraclepoursuitGooglepourviolat" title="procès fait à Google par Oracle" >procès fait à Google par Oracle</a> pour violation de brevets Java au sein de la plateforme Android; la Fondation Apache <a
href="https://blogs.apache.org/foundation/entry/read_beyond_the_headers" title="a eu beau clamer n'y être pour rien" >a eu beau clamer n&#8217;y être pour rien</a>, le mal était fait. En octobre, comme nous l&#8217;avions signalé <a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#IBMrejointleprojetOpenJDK" title="ici même" >ici même</a>, c&#8217;est <a
href="http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/" title="au tour d'IBM de quitter le navire" >au tour d&#8217;IBM de quitter le navire</a> pour rejoindre le très officiel <a
href="http://en.wikipedia.org/wiki/OpenJDK" title="OpenJDK" >OpenJDK</a>, projet concurrent soutenu par Oracle; un mois plus tard, c&#8217;est au tour d&#8217;Apple de <a
href="http://www.infoworld.com/d/developer-world/apple-joins-oracles-openjdk-project-011" title="rejoindre les rangs d'OpenJDK" >rejoindre les rangs d&#8217;OpenJDK</a>, fragilisant encore davantage Harmony. Puis enfin, après une passe d&#8217;armes que nous avions retranscrite <a
href="http://blog.xebia.fr/2010/10/26/revue-de-presse-xebia-182/#DurififiauJCP" title="ici" >ici</a> puis <a
href="http://blog.xebia.fr/2010/11/16/revue-de-presse-xebia-185/#OracleetApachedeleaudanslegaz" title="là" >là</a>, nous vous <a
href="http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#JavaCommunityProcesslaFondatio" title="annoncions" >annoncions</a> avec regret, en décembre dernier, que la Fondation Apache, en représailles face à l&#8217;immobilisme d&#8217;Oracle, venait de <a
href="https://blogs.apache.org/foundation/entry/the_asf_resigns_from_the" title="claquer la porte" >claquer la porte</a> du <a
href="http://en.wikipedia.org/wiki/Java_Community_Process" title="JCP" >JCP</a>.</p><p>Et voilà que la semaine dernière, Tim Ellison, président du PMC (<em>Project Management Committee</em>) du projet Apache Harmony, <a
href="http://www.infoq.com/news/2011/03/apache-harmony" title="annonce sa démission" >annonce sa démission</a>, en prétextant le manque de plus en plus cruel d&#8217;effectifs et en posant même clairement la question de l&#8217;opportunité de déplacer le projet vers le tant redouté <a
href="http://attic.apache.org/" title="mouroir des projets Apache" >mouroir des projets Apache</a>.</p><p>Apache Harmony a-t-il un avenir? On peut en effet en douter. Lors de la conférence « TheServerSide Java Symposium 2011 » à Las Vegas mercredi dernier, James Gosling n&#8217;a pas mentionné directement Harmony, mais <a
href="http://www.infoworld.com/d/application-development/gosling-oracles-self-interest-requires-good-java-stewardship-727" title="a laissé entendre" >a laissé entendre</a> qu&#8217;Oracle avait fait quelques gestes: en direction de la communauté d&#8217;une part, avec <a
href="http://www.infoworld.com/d/application-development/java-ee-7-specification-gets-unanimous-approval-718" title="ladoption rcente des spcifications de Java EE 7" >l&#8217;adoption récente des spécifications de Java EE 7</a>; et d&#8217;autre part en direction de ses concurrents, en enterrant la hache de guerre avec IBM et Apple.</p><p>Ces gestes, bien entendu, auront un prix. Or les intentions d&#8217;Oracle face à Google ne sont pas claires. Si <a
href="http://www.infoworld.com/d/application-development/android-app-builders-unfazed-oracle-lawsuit-030" title="les développeurs Android restent imperturbables" >les développeurs Android restent imperturbables</a>, il semblerait bien qu&#8217;Oracle n&#8217;ait pas dit son dernier mot: Adam Messinger, qui s&#8217;exprimait aussi pendant la même conférence, a souligné qu&#8217;Oracle <a
href="http://www.infoworld.com/d/application-development/oracle-dont-count-out-java-in-the-mobile-space-788" title="voyait en grand lavenir de Java ME" >voyait en grand l&#8217;avenir de Java ME</a>; en ligne de mire, on le devine, se trouve la plateforme Android prônée par Google.</p><p>Dans ce paysage assombri par les enjeux stratégiques entre poids lourds de l&#8217;informatique, et quelle que soit l&#8217;issue du différend qui oppose Oracle à Google, Harmony apparaît de plus en plus comme le prix à payer pour que l&#8217;on revienne enfin&#8230; à l&#8217;harmonie.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Riennevaplus"></a>Rien ne va plus</h4><p>Il y a des semaines comme ça&#8230; tout allait bien quand 3 annonces coup sur coup font voler en éclat nos plus profondes convictions. Imaginez qu&#8217;enfant on vous apprenne que le Père Noël&#8230; Chut ! Ce n&#8217;est pas notre rôle de vous le révéler. Toujours est-il que 3 articles sont venus nous secouer récemment. L&#8217;agilité que l&#8217;on vous vante tant ? Et bien, non, finalement, ce n&#8217;est pas le remède miracle. Et Java, notre langage tant aimé ? Finalement, il nous ralentirait plus qu&#8217;autre chose ! Mais cela se comprend, c&#8217;est la notion même de programmation objet qui ne sert plus à rien ! Voyons de quoi il retourne.</p><ul><li>A la conférence « TheServerSide Java Symposium 2011 », Jon Kern a donné une présentation dont <a
href="http://javasymposium.techtarget.com/html/agile.html#JKernAgile" title="la trame" >la trame</a> était que l&#8217;agilité n&#8217;est pas le remède miracle à tous les projets et toutes les situations. Non ?! Et bien si. Il s&#8217;en explique d&#8217;ailleurs dans <a
href="http://www.theserverside.com/news/2240033314/QA-Bogus-experts-fuel-the-backlash-against-Agile-development" title="une interview" >une interview</a> donnée quelques jours plus tôt: pour lui, passer à l&#8217;agilité requiert un changement dans les mentalités, dans tout le processus projet de l&#8217;entreprise. Il évoque aussi la possibilité d&#8217;être flexible dans la mise en place de l&#8217;agilité mais semble malgré tout d&#8217;accord avec John Clifford (dont <a
href="http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/#LesdangersquiguettentScrum" title="nous vous parlions rcemment" >nous vous parlions récemment</a>) qui mettait en garde contre l&#8217;application de seulement quelques morceaux choisis de Scrum et le risque de se croire alors agile.</li><li>Java, notre beau langage, ferait souffrir les entreprises. Il serait trop verbeux, offrirait trop de choix et les projets seraient coûteux et complexes à maintenir. C&#8217;est développez.com qui nous <a
href="http://www.developpez.com/actu/29599/Java-un-choix-couteux-pour-les-entreprises-Oui-d-apres-un-expert-qui-recommande-de-capitaliser-sur-les-briques-open-source/" title="rapporte les propos" >rapporte les propos</a> de David Duquenne, DG du groupe <a
href="http://technologies.openwide.fr" title="Open Wide Technologies" >Open Wide Technologies</a>. Mais finalement, plus que le langage lui-même, il semble que ce soit l&#8217;utilisation qui en est faite, à travers l&#8217;incorporation à tort et à travers de multitudes de composants open-source dont on ne maîtrise ni le développement, ni les licences, qui soit à surveiller. Quelques pistes sont évoquées pour éviter ces écueils: l’utilisation de Frameworks (ceux de Open Wide ?!), l&#8217;intégration continue, le recours aux approches agiles ou à de nouveaux paradigmes tels que le MDA ou la programmation fonctionnelle.</li><li>La programmation fonctionnelle, parlons-en justement. A l&#8217;université de Carnegie Mellon (Pittsburgh), elle remplacera en 1ère année l&#8217;apprentissage de la programmation orientée objet, cette dernière devenant optionnelle plus loin dans le cursus. Est-ce un choix raisonnable ? <a
href="http://www.infoq.com/news/2011/03/oop-out-at-cmu" title="Larticle dInfoQ" >L&#8217;article d&#8217;InfoQ</a> qui nous apprend la nouvelle ne semble pas complètement d&#8217;accord.</li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="SortiedeMongoDB"></a>Sortie de MongoDB 1.8</h4><p><a
href="http://www.mongodb.org/" title="MongoDB" >MongoDB</a> a annoncé la sortie de la version 1.8 de la base de données NoSQL. La version précédente &#8212; 1.6 &#8212; datait d&#8217;août 2010. Cette nouvelle version ajoute plusieurs fonctionnalités, corrige quelques bugs et améliore nettement certaines fonctionnalités existantes.</p><p>Les release notes se trouvent <a
href="http://www.mongodb.org/display/DOCS/1.8+Release+Notes" title="ici" >ici</a>. La version 2.5 du driver Java de MongoDB a par ailleurs été publiée la semaine dernière.</p><p>La nouveauté la plus attendue et la plus plébiscitée par les utilisateurs de MongoDB est la <a
href="http://www.mongodb.org/display/DOCS/Journaling" title="journalisation" >journalisation</a>: grâce à l&#8217;écriture d&#8217;un journal des transactions, la récupération après un crash sera beaucoup plus rapide, et la pérennité des transactions sera renforcée au sein du système de stockage.</p><p>L&#8217;activation de cette option se fait uniquement au démarrage en ajoutant l&#8217;option « <code>--journal</code> » à la commande de démarrage. Les fichiers de journalisation seront alors stockés quotidiennement sous le répertoire « <code>journal</code> ». Suite à un arrêt normal du système, ceux-ci seront automatiquement purgés; suite à un crash, en revanche, au redémarrage de MongoDB l&#8217;ensemble des transactions décrites dans ces fichiers sera re-exécuté. L&#8217;option « <code>repair</code> » ne sera plus nécessaire.</p><p>Par ailleurs le <em><a
href="http://www.mongodb.org/display/DOCS/Sharding+Introduction" title="sharding" >sharding</a></em>, fonctionnalité introduite dans la version 1.6, a bénéficié d&#8217;importantes améliorations internes qui permettront une meilleure performance et une meilleure reprise sur erreur, même si ces changements ne seront pas forcément ressentis par tous les utilisateurs.</p><p>Et enfin, parmi les autres fonctionnalités, on peut citer le support de l&#8217;<a
href="http://www.mongodb.org/display/DOCS/Replica+Set+Authentication" title="authentification au niveau des jeux de répliques (replica sets)" >authentification au niveau des jeux de répliques (<em>replica sets</em>)</a>, des nouveautés liées aux index, ou encore la recherche spatiale &laquo;&nbsp;sphérique&nbsp;&raquo;: jusqu&#8217;alors plate, la Terre est enfin redevenue ronde pour MongoDB!</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/03/22/revue-de-presse-xebia-203/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/</link> <comments>http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/#comments</comments> <pubDate>Tue, 08 Mar 2011 13:12:47 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[CDN]]></category> <category><![CDATA[Data Grid]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[IE6]]></category> <category><![CDATA[Infinispan]]></category> <category><![CDATA[Internet Explorer]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[Kanban]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Web]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7133</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII IE6 : End of life ! cdnjs.com un content delivery network pour javascript Agilité Traiter l&#8217;urgence dans une équipe agile NoSQL Infinispan au Paris NoSQL User Group Actualité éditeurs / SSII IE6 : End of life ! IE6 Countdown est un site [...]]]></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/2011/03/08/revue-de-presse-xebia-201/#IEEndoflifenbsp">IE6 : End of life !</a></li><li><a
href="http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/#cdnjscomuncontentdeliverynetwo">cdnjs.com un content delivery network pour javascript</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/#Traiterlurgencedansunequipeagi">Traiter l&#8217;urgence dans une équipe agile</a></li></ul><p><strong>NoSQL</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/#InfinispanauParisNoSQLUserGrou">Infinispan au Paris NoSQL User Group</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="IEEndoflifenbsp"></a>IE6 : End of life !</h4><p><a
href="http://www.ie6countdown.com" title="IE6 Countdown" >IE6 Countdown</a> est un site lancé par <strong>Microsoft</strong> pour mesurer <strong>la baisse de part de marché d&#8217;IE6 dans le monde</strong> (et accessoirement promouvoir IE7 et 8). Ce dernier affiche <strong>3,9%</strong> pour la <strong>France</strong>, alors que la <strong>Chine</strong> plafonne à <strong>34,5%</strong>. Le «_grand gagnant_» est la <strong>Norvège</strong>, qui affiche seulement <strong>0,7%</strong> de part de marché. La firme de Richmond encourage vivement à migrer vers IE7/8, avec pour argument <a
href="http://www.microsoft.com/windows/internet-explorer/compare/compare-versions.aspx" title="un tableau comparatif" >un tableau comparatif</a>, où l’on peut observer que presque aucune feature des navigateurs modernes n&#8217;est supportée : gestion des fenêtres par onglets, barre de favoris, compatibilité avec les standards du Web. Les développeurs Web quant à eux, peuvent même rajouter une bannière sur leur site, qui invite les utilisateurs ayant une version d&#8217;Internet Explorer antérieure à la 7, à le mettre à jour :</p><div
align="center"> <a
href="http://www.theie6countdown.com/images/upgrade.jpg"><br
/> <img
src="http://www.theie6countdown.com/images/upgrade.jpg" border="0" alt="" width="90%"/><br
/> </a></div><p>Enfin, bien qu&#8217;un grand du Web tel que <strong>Google</strong> ait récemment <a
href="http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html" title="cess de supporter IE6 sur Google Docs et Google Sites" >cessé de supporter IE6 sur Google Docs et Google Sites</a> (Gmail et Google Calendar suivront dans l&#8217;année), le navigateur est encore très largement répandu en entreprise, avec son OS Windows XP. De ce fait, nous ne serions que trop vous conseiller d&#8217;inviter vos clients respectifs à monter de version, notamment pour des raisons de sécurité et de compatibilité. Pour les autres, Microsoft assurera tout de même le support jusqu&#8217;en Avril 2014.</p><h4><a
name="cdnjscomuncontentdeliverynetwo"></a>cdnjs.com un content delivery network pour javascript</h4><p><a
href="http://www.cdnjs.com/" title="cdnjscom" >cdnjs.com</a> est, comme son nom l&#8217;indique, un Content Delivery Network pour javascript : un nouveau service en ligne utilisant l&#8217;infrastructure AWS d&#8217;Amazon pour mettre à disposition des bibliothèques javascript. Google et plus récemment Microsoft proposent déjà ce type de service, mais uniquement pour les bibliothèques javascript les plus populaires&#8230; d&#8217;après leur propre usage. L&#8217;idée de cdnjs.com est d&#8217;apprécier à travers les votes de la communauté les bibliothèques javascript les plus utilisées afin de les héberger. Les sites web utilisant ce service bénéficient alors d&#8217;un cache http commun.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Traiterlurgencedansunequipeagi"></a>Traiter l&#8217;urgence dans une équipe agile</h4><p>Serge Beaumont, notre confrère de Xebia Pays-Bas, vient de publier <a
href="http://blog.xebia.com/2011/02/28/dealing-with-emergencies-in-agile-teams/" title="un intressant article" >un intéressant article</a> sur les différentes manières de traiter les situations d&#8217;urgence dans les équipes agiles. C&#8217;est un sujet toujours difficile, car, par définition, la charge de travail requise pour traiter ces situations est inconnue. Donc peu estimable et planifiable.<br
/> Il commence son article par regretter la bonne vieille époque des projets <em>waterfall</em> où il n&#8217;y avait jamais de maintenance à faire. Ahhh, le bonheur que ça devait être que de travailler sur des projets parfaits, sans bugs, sans&#8230; Ah, attendez: une lecture plus attentive précise que c&#8217;était en fait l&#8217;équipe de maintenance qui était chargée de corriger la pile de non-sens créée par d&#8217;autres. Les pauvres&#8230;<br
/> Sur un projet agile, les livraisons régulières responsabilisent les équipes elles-mêmes qui verront revenir plus rapidement leurs propres erreurs.<br
/> Plusieurs scénarios sont envisagés:</p><ul><li>un Product Owner jouant le rôle de &laquo;&nbsp;firewall&nbsp;&raquo; et élimine bon nombre de problèmes (qui bien souvent n&#8217;en sont pas !)</li><li>ce même Product Owner peut mettre les urgences au planning du sprint suivant et n&#8217;accepter que les <strong>vraies</strong> urgences</li></ul><p>Pour les vrais problèmes, ceux qu&#8217;on ne peut pas éviter de traiter immédiatement, il est envisageable de garder à chaque début de sprint un buffer leur étant destiné. Mais notre confrère nous met en garde sur le fait que ce serait sans doute une <em>fausse bonne idée</em>: dès que votre MOA aura connaissance de la présence de votre buffer, ils n&#8217;auront de cesse d&#8217;essayer de le remplir. D&#8217;où la règle numéro 1 du buffer: <strong>le buffer n&#8217;est pas pour les éléments du backlog</strong>. La règle numéro 2, pourtant extrême, permettra de relativiser l&#8217;importance des demandes: <strong>un remplissage du buffer entraîne un abandon du sprint en cours</strong>. Extrême ? Mais efficace ! Les gens réfléchirons par 2 fois à la priorité de leurs demandes. Le principal reste tout de même de fixer la cause racine et donc d&#8217;améliorer la qualité. Logique, non ?</p><p>Finalement, l&#8217;auteur donne un conseil pour les équipes qui doivent faire beaucoup de maintenance: Kanban bien que proche de Scrum propose un process plus adapté. Nous vous renvoyons à notre article sur &laquo;&nbsp;Kanban in action&nbsp;&raquo; <a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title=" Devoxx" >à Devoxx</a>.</p><h3><a
name="NoSQL"></a>NoSQL</h3><h4><a
name="InfinispanauParisNoSQLUserGrou"></a>Infinispan au Paris NoSQL User Group</h4><p>Manik Surtani, est venu au <a
href="https://sites.google.com/a/octo.com/nosql/tous-les-meetings/07-mars-2011" title="Paris NoSQL User Group" >Paris NoSQL User Group</a> présenter Infinispan, la In Memory Data Grid de JBoss dont il est le <em>lead technique</em>. Nous retiendrons :</p><p><strong>Objectif : concurrencer Coherence</strong></p><p>L&#8217;objectif d&#8217;Infinispan est de proposer une alternative Open Source à Oracle Coherence, Gigaspace ou IBM eXtreme Scale.</p><p><strong>Les topologies</strong></p><p>Infinispan propose <a
href="http://community.jboss.org/wiki/InfinispanServerModules" title="deux topologies de dploiement" >deux topologies de déploiement</a> :</p><ul><li><strong>Embedded Mode (aka peer-to-peer)</strong> : l&#8217;application est fusionnée avec la grille de données : les JVM qui portent la(les) application(s) participent à la grille et portent des données. C&#8217;est la mode d&#8217;intégration qui permet le plus grand nombre de fonctionnalités mais qui apporte aussi le plus grand couplage.</li></ul><ul><li><strong>Client-Server Mode</strong> :</li><ul><li>L&#8217;application se connecte à la grille de données avec un connecteur comme elle se connecte à des SGBD.</li><li>Il existe quatre protocoles : REST/HTTP, MemCached, <a
href="http://community.jboss.org/wiki/HotRodProtocol" title="Hot Rod" >Hot Rod</a> (protocole bi-directionnel interne d&#8217;Infinispan) et les Web Sockets. Hot Rod sera le protocole le plus riche qui facilitera la haute disponibilité grâce à l&#8217;autodécouverte de la topologie de la grille et permettra les continuous queries. Seul Hot Rod impose java côté client. Les WebSockets sont temporairement remises en cause par les <a
href="http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#WebSocketuntroudanslaraquette" title="failles de scurit inhrentes  cette technologie" >failles de sécurité inhérentes à cette technologie</a>. </li></ul></ul><p><strong>Les APIs</strong></p><p>Infinispan propose aujourd&#8217;hui une API bas niveau de style key-value store et travaille sur une API de haut niveau de style JPA qui manque cruellement à certains concurrents <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Ces APIs seraient utilisables en mode &laquo;&nbsp;Embedded&nbsp;&raquo; et en mode &laquo;&nbsp;Client-Server&nbsp;&raquo; avec le protocole Hot Rod.</p><p>Fort de l&#8217;expérience de JBoss sur les annotations JPA et Hibernate Search, on peut espérer une API élégante.</p><p><strong>Le plus : Hibernate Search</strong></p><p>Infinispan apporte une fonctionnalité originale qui le différencie de ses concurrents : l&#8217;intégration d&#8217;Hibernate Search qui permet de créer des index secondaires plus sophistiqués que ceux &laquo;&nbsp;à la SQL&nbsp;&raquo; qu&#8217;on voit dans les autres In Memory Data Grids. Il est tout de même probable que cette richesse d&#8217;indexation ne concerne que peu de cas d&#8217;utilisation.</p><p><strong>La road map</strong></p><p>Le projet est dynamique et prometteur et il reste encore beaucoup de travail comme :</p><ul><li>l&#8217;envoi de traitements dans la grille (map/reduce, entry-processors, etc) qui est encore en version <em>beta</em>,</li><li>le choix de language de programmation pour réaliser des traitements dans la grille. La réflexion se place aujourd&#8217;hui autour d&#8217;un langage <em>neutre</em> comme javascript ou de java,</li><li>des optimisations de la gestion de la mémoire pour gérer des JVM de grande taille (> 10 Go),</li><li>l&#8217;intégration de <a
href="http://www.jboss.org/jbossmarshalling" title="JBoss Marshalling" >JBoss Marshalling</a> avec l&#8217;ajout d&#8217;une API de versioning pour sérialiser les données dans la grille,</li><li>l&#8217;ajout d&#8217;une query language pour requêter les données.</li></ul><p><strong>Scénarios d&#8217;utilisation d&#8217;Infinispan aujourd&#8217;hui</strong></p><p>Le principal scénario d&#8217;utilisation d&#8217;Infinispan aujourd&#8217;hui est un &laquo;&nbsp;distributed key-value store&nbsp;&raquo; qu&#8217;on peut même installer sous forme &laquo;&nbsp;<em><a
href="http://infinispan.blogspot.com/2010/10/data-as-service-talk-by-yours-truly.html" title="Data as a Service" >Data as a Service</a></em>&nbsp;&raquo; pour reprendre l&#8217;expression de Manik Surtani.</p><p>Les utilisations en In Memory Data Grid haute performance avec des traitements au coeur des données sont a réserver à un public averti <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/03/08/revue-de-presse-xebia-201/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/</link> <comments>http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/#comments</comments> <pubDate>Tue, 01 Feb 2011 09:35:46 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Code Retreat]]></category> <category><![CDATA[Craftsmanship]]></category> <category><![CDATA[JAX-RS]]></category> <category><![CDATA[Jersey]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Software Craftsmanship]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6754</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité Craftsmanship, le débat fait rage dans la blogosphère! Les dangers qui guettent Scrum Actualité éditeurs / SSII JAX-RS 2.0 Evènements de notre communauté en France et à l&#8217;étranger Code retreat à Grenoble Agilité Craftsmanship, le débat fait rage dans la blogosphère! Bien que [...]]]></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/2011/02/01/revue-de-presse-xebia-196/#Craftsmanshipledbatfaitragedan">Craftsmanship, le débat fait rage dans la blogosphère!</a></li><li><a
href="http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/#LesdangersquiguettentScrum">Les dangers qui guettent Scrum</a></li></ul><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/#JAXRS">JAX-RS 2.0</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/2011/02/01/revue-de-presse-xebia-196/#CoderetreatGrenoble">Code retreat à Grenoble</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Craftsmanshipledbatfaitragedan"></a>Craftsmanship, le débat fait rage dans la blogosphère!</h4><p>Bien que facilement traduisible, littéralement artisanat, le terme Craftsmanship, son application au développement logiciel, son sens profond, son implication au quotidien semblent échapper au plus grand nombre, et même susciter la perplexité ou la controverse. Pour preuve, la multitude d&#8217;articles postés sur les blogs ces dernières semaines qui en débattent.</p><p><strong>Petit résumé des faits marquants:</strong><br
/> Tout a commencé le 11 janvier par le post d&#8217;un article de Dan North, <a
href="http://dannorth.net/2011/01/11/programming-is-not-a-craft" title="Programming is not a craft" >Programming is not a craft</a>, dans lequel ce dernier exprime ses craintes et son scepticisme au sujet du Craftsmanship. Ses craintes tout d&#8217;abord d&#8217;un égocentrisme exacerbé de la part des développeurs ne s&#8217;identifiant plus à des créateurs de logiciels mais à une sorte de caste de supercodeurs intéressés uniquement par la beauté intrinsèque du code et non plus par les besoins du client. Il rappelle que les craftsmen doivent être sans égo, humbles, avec comme focus les livrables plutôt que le processus.<br
/> Il insiste enfin sur la nécessité de fournir des réponses adaptées au besoin. A un besoin simple, une réponse simple, pas de fioritures, de décorations inutiles, l&#8217;objectif est la production de logiciels, pas de l&#8217;art. Il ne voit pas d&#8217;intérêt dans le Craftsmanship ou plutôt aimerait voir le manifeste réécrit en terme d&#8217;obtention de résultats et de satisfaction client.</p><p>Robert C. Martin, une des figures emblématiques du mouvement, réplique le 17 janvier dans <a
href="http://thecleancoder.blogspot.com" title="Software Craftsmanship What its all about" >Software Craftsmanship: What it&#8217;s all about</a> et tente une explication de ce qu&#8217;est ou n&#8217;est pas le mouvement Craftsmanship.<br
/> La lassitude d&#8217;écrire du code de mauvaise qualité, de faire du &laquo;&nbsp;mauvais&nbsp;&raquo; boulot, et par ailleurs la volonté de faire les choses bien.<br
/> Il réaffirme que le mouvement ne prône pas le fait de mettre le code au centre de tout, d&#8217;oublier que notre travail est avant tout de satisfaire le client.<br
/> La différence réside dans la non acceptation de faire les choses &laquo;&nbsp;mal&nbsp;&raquo;. La seule façon de faire les choses vite est de les faire bien.<br
/> On atteint la satisfaction des clients en écrivant le meilleur code possible, en faisant la meilleure conception, en testant, en pratiquant pour devenir meilleur chaque jour dans notre travail.<br
/> Toutes ces résolutions ont pour objectif la satisfaction client, via un travail personnel, une attitude humble, de remise en question.</p><p>Suit le retour de Martin Fowler dans <a
href="http://martinfowler.com/bliki/CraftmanshipAndTheCrevasse.html" title="Craftsmanship And The Crevasse" >Craftsmanship And The Crevasse</a> dans lequel il s&#8217;inquiète également du fait que le mouvement puisse rouvrir la fossé entre le développement et le client que l&#8217;agilité avait comblé. En se concentrant trop sur le développement proprement dit, il voit un risque de minimiser le rôle de la communication avec le client, de ne pas atteindre les objectifs.</p><p>Réponse de Robert Martin dans <a
href="http://thecleancoder.blogspot.com/2011/01/brining-balance-to-force.html" title="Brining Balance to Force" >Brining Balance to Force</a> dans lequel il rappelle le 4e point du manifeste &laquo;&nbsp;<em>We value not only customer collaboration but also productive partnerships</em>&nbsp;&raquo; qui selon lui devrait suffire à rassurer et atténuer les craintes. Il insiste également sur la nécessité d&#8217;un bon équilibre entre les considérations techniques et non-techniques comme la communication. Tout est une question d&#8217;équilibre, les deux sont importantes, il ne faut négliger ni l&#8217;une, ni l&#8217;autre.</p><p>Nous le voyons, les craintes sont importantes sur le sujet et certainement légitimes si l&#8217;on regarde les personnalités qui s&#8217;en inquiètent. Il y a une grande incompréhension sur l&#8217;intérêt même du mouvement par rapport au mouvement agile, avec une peur forte de délaissement des problématiques client. Mais ce qui frappe dans les échanges est le fait que tout le monde est finalement d&#8217;accord sur le rôle central du client. On est plus dans l&#8217;incompréhension que réellement dans la discorde, Robert Martin s&#8217;efforçant d&#8217;expliquer que le mouvement Craftsmanship ne va pas à l&#8217;encontre de ces préoccupations.</p><p>Les risques de dérives existent forcément et il ne faut surtout pas les négliger. Les différentes réactions illustrent un manque de clarté sur la définition même du Craftsmanship, et les interprétations qui peuvent en être faites. Il faut être vigilant et ne pas sombrer dans le tout technique et un faux sentiment de supériorité, néfaste pour tout le monde. Le &laquo;&nbsp;JE fais le choses bien. Les autres font n&#8217;importe quoi&nbsp;&raquo; est à bannir, et est à l&#8217;opposé des principes même du mouvement.</p><p>D&#8217;ailleurs pourquoi opposer qualité des développements avec satisfaction client et résultats ? Est-ce satisfaisant de délivrer une fonctionnalité qui, en terme de fonctionnement général, répond aux attentes de l&#8217;utilisateur, mais n&#8217;est pas fiable, ne peut évoluer, est difficilement maintenable ? Il est pourtant bien connu que le manque de qualité coûte cher, très cher au final. Alors pourquoi ? La question mérite elle aussi d&#8217;être posée.</p><p>Nous assistons, depuis quelques années, à une percée très forte des méthodes agiles (Scrum par exemple) dans le développement logiciel. Cet assainissement des pratiques de développement est un vrai succès mais il cache aussi un autre phénomène. Là où les premières heures de l&#8217;agilité étaient plutôt orientées sur la pratique du développement avec l&#8217;eXtreme Programming, les principales méthodes utilisées aujourd&#8217;hui (Scrum et Lean) ne se préoccupent plus trop de la programmation mais plus des processus, la qualité du produit devant en émerger tôt ou tard&#8230; ou jamais. <br
/> S&#8217;ajoute à cela l&#8217;arrivée massive de chefs de projet traditionnels, de concepteurs, d&#8217;architectes, non convaincus par l&#8217;agilité mais persuadés d&#8217;y trouver une reconnaissance, une ligne sur un CV. Le problème est que petit à petit, l&#8217;agilité est de moins en moins bien appliquée. On fait du Scrum avec des cahiers des charges, des backlogs figés et des vélocités prédéfinies, sans rétrospective&#8230; Tests et conceptions sont négligés au profit de la production immédiate&#8230; on s&#8217;éloigne simplement de l&#8217;objectif principal, la production d&#8217;un logiciel de qualité, la relation client, pour aller vers moins de pragmatisme, plus de processus. </p><p>Le Craftsmanship tend au contraire à revenir aux fondamentaux, prônant la qualité et la productivité face à la production, l&#8217;apprentissage et la transmission du savoir, sans pour autant rejeter le mouvement agile dont il est issue.  Comme l&#8217;écrit Robert Martin, le Craftsmanship n&#8217;est pas en désaccord avec les méthodes et pratiques agiles, bien au contraire. Si nous regardons un peu l&#8217;historique du mouvement, il est issu majoritairement d&#8217;agilistes convaincus. Pour parvenir à produire un logiciel de qualité, il est fort probable qu&#8217;un craftsman optera pour un processus de développement agile et des techniques issues de l&#8217;agilité comme celles contenues dans l&#8217;eXtreme Programming. Alors pourquoi ce mouvement?</p><p>Tout comme l&#8217;agilité, le Craftsmanship est un mouvement de pensée. Il existe, de même, plusieurs écoles, plusieurs façons de l&#8217;appréhender. Contrairement à l&#8217;agilité, il n&#8217;existe pas de méthodes, de pratiques, bien définies du Craftsmanship. C&#8217;est avant tout une attitude, un état d&#8217;esprit, et c&#8217;est à mon avis ce qui complique sa compréhension mais qui le différencie également. Là où les méthodes agiles parlent de travail en équipe, de processus, d&#8217;ensembles de techniques, le Craftsmanship est axé sur le développeur en tant que personne. En plus d&#8217;un cadre favorable au développement logiciel, le développeur doit être à même de fournir, avec une productivité maximale, le logiciel attendu avec une qualité optimale. Pour ce faire, il se doit de progresser continuellement, d&#8217;apprendre de nouvelles techniques pour les utiliser de manière appropriée en fonction du contexte. Les techniques utilisées sont des conséquences de l&#8217;attitude, pas un pré-requis. Les craintes exprimées sur l&#8217;égo du développeur sont, de mon point de vue, à l&#8217;opposé des valeurs mêmes du Craftsmanship qui prône, au contraire, l&#8217;humilité, seule à même de permettre la remise en question nécessaire à l&#8217;apprentissage, l&#8217;évolution continue, le perfectionnement. Avant toute chose, un craftsman, est une personne capable de remettre en question son travail dans le but de progresser et de fournir toujours le meilleur à son client. Ça ne l&#8217;empêche pas d&#8217;être pragmatique, ni de faire des choix.</p><p>Pour résumer: le Craftsmanship ne doit pas nous détourner du client qui doit rester au centre de nos préoccupations. Le perfectionnement des techniques de développement, la remise en question de nos pratiques et l&#8217;humilité doivent nous aider à être plus efficace dans la livraison de logiciels de qualité, sans nous détourner du reste.</p><h4><a
name="LesdangersquiguettentScrum"></a>Les dangers qui guettent Scrum</h4><p>John Clifford revient, dans <a
href="http://www.scrumalliance.org/articles/330-cobblestones-on-the-road-to-perdition" title="un article" >un article</a> publié sur le site de la Scrum Alliance, sur une tendance observée assez régulièrement. Nous pourrions appeler cette tendance &laquo;&nbsp;on fait du Scrum <strong>mais</strong>&#8230;&nbsp;&raquo;. Par exemple :</p><ul><li>On fait du Scrum <strong>mais</strong> l&#8217;équipe ne s&#8217;auto-gère pas et le Scrum master assigne les tâches</li><li>On fait du Scrum <strong>mais</strong> pas de sprint review. L&#8217;équipe décide au jugé quand un élément est <em>done</em></li></ul><p>Pour Clifford, Scrum est constitué de 3 rôles, 4 meetings et 4 artefacts. C&#8217;est simple. Que dire alors d&#8217;une compagnie qui voudrait &laquo;&nbsp;faire du Scrum&nbsp;&raquo; sans suivre ce carcan minimum ? D&#8217;autant qu&#8217;il donne aussi des exemples détaillant pourquoi on ne peut pas faire de Scrum à la carte:</p><ul><li>Pourquoi une revue de sprint ? Du code qui fonctionne et qui le prouve est la seule mesure d&#8217;avancement qui soit (et pas une TODO liste ou un diagramme de Gantt)</li><li>Pourquoi une rétrospective ? Sans regard en arrière sur nos propres processus, comment pourrons nous les améliorer et devenir meilleurs ?</li></ul><p>Pour ajouter à sa thèse, dans l&#8217;absolu, il sera sans doute mieux de faire un artifact &laquo;&nbsp;de type scrum&nbsp;&raquo; plutôt que de ne rien faire. Par exemple, tenir une rétrospective après une échéance projet sera toujours mieux que rien. Tenir une réunion journalière d&#8217;un quart d&#8217;heure avec l&#8217;équipe permettra toujours d&#8217;améliorer la collaboration entre ses membres. Mais il ne faudra pas croire que l&#8217;on fait du Scrum et blâmer le process si le succès n&#8217;est pas à l&#8217;arrivée: Scrum est un tout.</p><p>Parmi les problèmes de Scrum également rencontrés sur le terrain, on pourra faire le parallèle avec ce post d&#8217;Uncle Bob, <a
href="http://www.jroller.com/sebastianKuebeck/entry/robert_martin_what_killed_waterfall" title="What Killed Waterfall Could Kill Agile" >What Killed Waterfall Could Kill Agile</a>. Il nous rappelle que la mise en place de Scrum implique aussi d&#8217;avoir un vrai Scrum Master. Et un Scrum Master n&#8217;est pas un chef de projet ! Ce ne sont pas tant les certifications Scrum qui en prennent pour leur grade que l&#8217;élitisme de ceux qui les passent pour ajouter cette <em>Certification</em> à leur panel de compétences et espèrent ainsi pouvoir <strong>manager</strong> des équipes Scrum&#8230; Or, c&#8217;est l&#8217;équipe qui se <strong>manage</strong> en Scrum ! De la même façon, <a
href="http://www.infoq.com/news/2011/01/should-po-also-be-sm" title="cet article" >cet article</a> d&#8217;InfoQ paru hier semble mettre tout le monde d&#8217;accord sur le fait qu&#8217;on ne peut pas être à la fois Scrum Master et Product Owner. Ca semble logique.</p><p>Bref, vous l&#8217;aurez compris, Scrum n&#8217;est pas si compliqué. Et si le projet a la moindre valeur, sans doute, sa réussite vaut-elle le coup de s&#8217;impliquer dans Scrum.</p><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="JAXRS"></a>JAX-RS 2.0</h4><p>JAX-RS, l&#8217;API Java pour les Web Services RESTful a eu une activité riche cette semaine :</p><p><strong>JSR-339</strong><br
/> Le vote du démarrage de la spécification 2.0 de cette API sous la JSR 339, qui est planifiée pour être intégré avec JEE 7. La date de sortie planifiée est Q2 2012.<br
/> La JSR contient quelques pistes pour comprendre la portée de cette seconde version, notamment :</p><ul><li>API Cliente</li><li>Meilleur support des liens entre les ressources (<a
href="http://en.wikipedia.org/wiki/HATEOAS" title="HATEOAS" >HATEOAS</a>)</li><li>Architecture MVC, avec support de quelques moteurs de template.</li><li>Intégration de bean validation</li><li>Intégration de @Inject (JSR 330)</li></ul><p>Plus de détails dans la <a
href="http://jcp.org/en/jsr/detail?id=339" title="page de description" >page de description</a> de la JSR.</p><p><strong>Jersey 1.5</strong><br
/> La <a
href="http://blogs.sun.com/sandoz/entry/jersey_1_5_is_released" title="version 1.5" >version 1.5</a> de l&#8217;implémentation de référence de JAX-RS 1.x est sortie. Cette version contient essentiellement des correctifs et est destinée à être associée à la future livraison de GlassFish 3.1 (<a
href="http://java.net/projects/jersey/sources/svn/content/tags/jersey-1.5/jersey/changes.txt?rev=4533" title="ChangeLog" >ChangeLog</a>)</p><p><strong>Byebye Paul</strong><br
/> Enfin, Paul Sandoz, la figure de proue de <a
href="http://jersey.java.net/" title="Jersey" >Jersey</a>, <a
href="http://blogs.sun.com/sandoz/entry/301_moved_permanently" title="quitte Oracle" >quitte Oracle</a> et son rôle de co-spec lead.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="CoderetreatGrenoble"></a>Code retreat à Grenoble</h4><p>C&#8217;est souvent sous la contrainte que l&#8217;on devient créatif: l&#8217;improvisation dans le jazz, isolé sur une île de déserte. On trouve toujours une nouvelle voie! C&#8217;est ce qu&#8217;il s&#8217;est passé au code retreat de Grenoble organisé par CARA (Club Agile Rhône Alpes) et le JUG. La journée était animée par Johan Martinsson, Rémy Sanlaville et Miguel Moquillon.</p><p>Nos contraintes:</p><ul><li>Après 45 minutes de programmation en binôme, effacez ce que vous avez codé et changez de partenaires.</li><li>Les règles à respecter lors du codage sont celles du <em>simple design</em> :</li><li>Tous les tests passent.</li><li>Pas de duplication de code.</li><li>Le code exprime toutes les idées que veut exprimer l&#8217;auteur <em>(bon nommage)</em>.</li><li>Minimaliser les classes et méthodes.</li></ul><p>L&#8217;exercice à traiter était le <a
href="http://fr.wikipedia.org/wiki/Jeu_de_la_vie" title="jeu de la vie" >jeu de la vie</a>, dans un langage librement choisi. Principalement réalisé en Java, il y avait aussi Pharo: une implémentation de Smalltalk, et Ruby.</p><p>L&#8217;intérêt du jeu de la vie est qu&#8217;il peut être abordé de plusieurs façon et avec plusieurs implémentations et choix de structures de données possibles. Pour les plus téméraires on peut même commencer à introduire des formes animées dans le jeu.</p><p>Croyez moi qu&#8217;en 45 minutes vous n&#8217;avez pas le temps d&#8217;arriver jusque là. Alors bien sûr cela crée une frustration qu&#8217;il faut apprendre à gérer en focalisant son énergie ailleurs.</p><p>En effet, tout au long de la journée, l&#8217;intérêt de chaque session (aux nombres de 7), est d&#8217;oublier ce que l&#8217;on a fait précédemment et de coder le problème d&#8217;une manière différente avec un nouveau binôme. Un autre avantage est que parfois, passant par la même implémentation, vous trouvez une façon d&#8217;aller plus vite ou une amélioration.</p><p>A souligner que le time boxing, de la plus haute importance dans ce genre de session, a été très bien géré par l&#8217;équipe d&#8217;animation.</p><p>Une rétrospective de 15 minutes à la fin de chaque session permettait de discuter autour de solutions qui avaient émergé, de la démarche de test, de nouveaux raccourcis IDE et d&#8217;ébauches de futures solutions.</p><p>A la fin de la journée, une rétrospective générale a permis de dégager un consensus autour de certains points :</p><ul><li>Une frustration de ne pas pouvoir aller plus loin dans l&#8217;implémentation! Mais là n&#8217;était pas le but de l&#8217;exercice.</li><li>Une reconnaissance que le non attachement à son code (obligation d&#8217;effacer le code) aide à rester ouvert, à se remettre en question</li></ul><p>et donc à progresser.</p><ul><li>Qu&#8217;il faut écrire des tests unitaires simples et rapides.</li><li>Qu&#8217;il faut écrire les tests unitaires de façon incrémentale (baby steps). Cela permet de ne pas se perdre dans de longues périodes de rouge.</li><li>Que l&#8217;on apprend toujours quelque chose sur soi-même ou de nouveau quand on programme en binôme.</li><li>Que la pratique du TDD se transmet et s&#8217;apprend très bien en binôme.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/02/01/revue-de-presse-xebia-196/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Retour d&#8217;expérience Scrum appliqué à un repas de noël</title><link>http://blog.xebia.fr/2010/12/24/retour-d-experience-scrum-applique-a-un-repas-de-noel/</link> <comments>http://blog.xebia.fr/2010/12/24/retour-d-experience-scrum-applique-a-un-repas-de-noel/#comments</comments> <pubDate>Fri, 24 Dec 2010 18:15:21 +0000</pubDate> <dc:creator>Aurélien Masse</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6353</guid> <description><![CDATA[Décembre. Mois de fête, de neige et de gastronomie. La période de Noël étant traditionnellement propice à de bons gueuletons, un couple d’amis, que nous appellerons Myriam et Jean, me propose de faire un repas de Noël un peu en avance. Myriam est très intéressée par l’agilité, Scrum en particulier, mais n’a qu’une vision vague [...]]]></description> <content:encoded><![CDATA[<p>Décembre. Mois de fête, de neige et de gastronomie. La période de Noël étant traditionnellement propice à de bons gueuletons, un couple d’amis, que nous appellerons Myriam et Jean, me propose de faire un repas de Noël un peu en avance. Myriam est très intéressée par l’agilité, Scrum en particulier, mais n’a qu’une vision vague de la méthode et des concepts sous-jacents (« une méthode de gestion de projet où l’on joue aux cartes ? Où l’on utilise que des post-it ? Ça a l’air amusant, mais je demande à voir pour être convaincue »). Elle me propose donc d’appliquer Scrum à la réalisation du repas de Noël : cela pourra servir de thème à la soirée et permettra d’apprendre en s’amusant dans un contexte différent.</p><p>L’idée semble bonne, mais j’ai quelques appréhensions :</p><ul><li>Les convives vont réaliser et consommer le repas, gommant ainsi la distinction client &#8211; fournisseur</li><li>Un repas est un produit assez différent d’un logiciel informatique</li><li>Le temps va être très court</li><li>La méthode traditionnelle de préparation d’un repas est on ne peut plus waterfall (idée &#8211; recettes &#8211; courses &#8211; cuisine &#8211; repas), de plus elle est parfaitement adaptée.</li></ul><p>Après réflexion, nous affinons le concept et décidons de faire tout depuis zéro, avec le minimum de préparation initiale. Exit donc le menu prédéfini : nous verrons bien quel repas émergera, nous nous concentrerons sur nos attentes et nos envies. La vision Waterfall doit être la plus minime possible donc nous ne partirons pas d&#8217;un menu initial ni de recettes (nous partons du principe que nous sommes compétents en cuisine, ce qui est le cas).</p><p>Les participants devront à la fois être les clients et les réalisateurs, à la fois maîtrise d’œuvre et d’ouvrage ? Soit, nous endosserons les rôles alternativement, nous passerons de la cuisine à la salle à manger, cela nous donnera un point de vue des deux cotés. Nous pourrons pratiquer des itérations courtes, entre lesquelles nous dégusterons ce que nous avons déjà pu préparer (cela nous servira de démo), puis nous ferons une rétrospective de l’itération et une discussion et priorisation du backlog pour la suite du repas. Nous assimilerons les plats à réaliser aux fonctionnalités d’une application.</p><p>Myriam sera la Product Owner, et je serais le Scrum Master / Coach.</p><p>Ma foi, cela semble se tenir, alors allons y !</p><h2><a
name="Lamiseenplace"></a>La mise en place</h2><p>Nous nous fixons en amont sur le programme suivant :</p><ul><li>Nous serons quatre participants :</li><ul><li>Myriam : commerciale dans l&#8217;industrie,</li><li>Sylvie : agent territoriale dans le sud de la France,</li><li>Jean : docteur en science cognitive et knowledge manager,</li><li>moi-même : Scrum master.</li></ul><li>Myriam réalisera les courses de base avant la soirée, sans fixer de menu</li><li>Chaque participant ramènera un ou deux ingrédients de son choix (cela symbolisera les compétences individuelles amenées au projet et les envies personnelles)</li><li>Nous effectuerons ensemble un sprint 0 d’une heure et demie, dans lequel nous exposerons nos attentes quant au repas, nous définirons globalement sa structure, constituerons un premier backlog priorisé, et estimerons la quantité de travail à réaliser.  et éventuellement ferons les courses complémentaires à l’épicerie de quartier</li><li>Nous allons faire des itérations d’une demi-heure de cuisine, découpées en 3* 10 minutes pour laisser la place à un standup meeting rapide,</li><li>Nous nous attablerons entre chaque itération pour profiter du repas en rendossant notre rôle de convive, puis nous prioriserons le backlog, et ferons une rétrospective rapide</li><li>Notre produit (le repas) devra être opérationnel à la fin de chaque itération (ambiance, nourriture, boissons, etc.)</li></ul><p>Nous commençons donc l’expérience à 18h30, par un brainstorm de ce que l’on attend et de ce qu’on peut faire en fonction des ingrédients à notre disposition : les idées fusent et nous constituons un premier backlog.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/brainstorming.jpg" border="0" alt="" /></div><p>Nous priorisons ensuite les idées selon ce que nous avons le plus envie de manger (la valeur métier), et nous faisons un premier chiffrage. pour cela, n’ayant pas de cartes de poker, nous avons utilisé des pièces de monnaie de centimes d’euro : 1, 2, 5, 10, 20, 50.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/backlog.jpg" border="0" alt="" /></div><p>Il nous faut également une définition of DONE, nous choisissons la suivante :</p><ul><li>La vaisselle doit être faite</li><li>L’espace de travail doit être nettoyé</li><li>Les plats (ou préparations) doivent être couverts et gardés</li><li>L’effort de présentation du plat doit être fait</li><li>Les plats chauds doivent être conservés chaud</li></ul><p> Avant chaque itération, nous réalisons le découpage en unité de travail sur les post it, et nous utilisons un mur blanc comme scrum board de fortune :</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/scrumboard.jpg" border="0" alt="" /></div><h2><a
name="Lersultat"></a>Le résultat</h2><p>Je ne reviendrai pas en détail sur toutes les péripéties de la soirée, mais je vais vous présenter le résultat de chaque itération :</p><h3><a
name="Premireitrationhnbsp"></a>Première itération (20h45)</h3><h4><a
name="Ralisations"></a>Réalisations</h4><ul><li>Table mise en position basse et décorée,</li><li>Une tapenade évoluée en apéritif, accompagnée de tomate cocktail</li><li>Des mises en bouches préparées mais non cuites</li></ul><h4><a
name="Bilan"></a>Bilan</h4><p>Le repas est à l’état « apéro », cela nous fait du bien de commencer à manger, la table est belle et c’est sympa de manger assis sur le tapis moelleux.</p><p>Nous constatons que la tapenade est excellente, pourtant elle a été réalisée à 4 mains (entre la découpe des ingrédients, le mélange et l’assaisonnement)</p><p>En rétrospective nous remontons qu’il faut veiller à l’embouteillage autour de l’évier, où se trouve la poubelle. nous prenons comme action de créer une autre poubelle hors du passage. de même nous n’avions pas de musique : il est décidé que jean aura la responsabilité d’assurer l’ambiance sonore.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-1.jpg" border="0" alt="" /></div><h3><a
name="Deuximeitrationnbsph"></a>Deuxième itération (21h45)</h3><h4><a
name="Ralisations"></a>Réalisations</h4><ul><li>La table est rehaussée et mieux décorée,</li><li>La tapenade est désormais accompagnée de poivrons confits à l’ail</li><li>Les bouchées chaudes sont servies</li><li>Nous avons maintenant de la musique</li></ul><h4><a
name="Bilan"></a>Bilan</h4><p>Chacun a préparé 4 bouchées selon ses envies, et tout est très bon. les poivrons tièdes rehaussent parfaitement la tapenade. finalement, nous avons bien avancé dans la préparation de la suite, tout est quasiment prêt pour la troisième itération, il ne reste presque plus qu’à cuire et attendre.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-2-1-bis.jpg" border="0" alt="" /></div><p></p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-2-2.jpg" border="0" alt="" /></div><h3><a
name="Troisimeitrationhnbsp"></a>Troisième itération (22h30)</h3><h4><a
name="nbspRalisationsnbsp"></a> Réalisations</h4><ul><li>La table est nettoyée et les assiettes sont lavées,</li><li>Le plat principal est servi : poulet caramélisé accompagné de poire saisies dans l’huile des poivrons et de pain libanais</li><li>Le fromage est servi ensuite : camembert rôti aux échalotes accompagné d’endives</li><li>Puis vient le dessert : mignardises</li></ul><h4><a
name="Bilan"></a>Bilan</h4><p>itération assez peu chargée, surtout attendre la fin de cuisson. ambiance légère et agréable, aucune difficulté constatée.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-3-1.jpg" border="0" alt="" /></div><p></p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-3-2.jpg" border="0" alt="" /></div><p></p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-3-3.jpg" border="0" alt="" /></div><p></p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/iter-3-4.jpg" border="0" alt="" /></div><h2><a
name="Conclusion"></a>Conclusion</h2><p>Tous les convives ont été très surpris de la qualité finale du repas : tous les plats étaient excellents. Nous avons pu réadapter nos idées en cours de repas, ainsi le trou normand envisagé lors du brainstorm s’est finalement transformé en dessert. Nous avons abandonné certaines idées trop coûteuses ou impossibles à réaliser dans le temps imparti.</p><p>Tous les ingrédients apportés par les convives ont été utilisés, de même qu&#8217;une grande partie du fond d&#8217;ingrédients disponible.</p><p>La cuisine a terminé dans un état acceptable et ne nécessitera pas de gros ménage.</p><p>Myriam a pu obtenir la recette de la tapenade de Sylvie.</p><p>Il y a eu une très bonne coordination et tout le monde s’est naturellement impliqué dans le repas. Les problèmes ont resurgi très tôt et ont pu être traités : les problèmes d’intendance d’une part (organisation de la cuisine, gestion des déchets), mais aussi les problèmes d’organisation. Par exemple, lorsqu’un participant a voulu reprendre naturellement la direction des opérations, nous avons pu désamorcer très facilement, et poursuivre l’expérience dans le cadre que l’on s’était fixé.</p><p>Le planning initial a été respecté, tout a été prêt à temps et le timing du repas était très bon, nous avons vraiment pu passer à table à la fin de chaque itération.</p><p>Ainsi, tout le monde a été assez impressionné par le résultat final obtenu &#8211; sachant que nous n’avions rien préparé ni discuté en avance &#8211; et par la cohérence du produit final.</p><p>Une chose est certaine, plusieurs apports annoncés par Scrum ont bien été constatés :</p><ul><li>Qualité du produit fini</li><li>Simplicité des solutions mises en œuvre</li><li>Coopération et collaboration favorisées</li><li>Partage des connaissances</li></ul><p>Certes, dans le contexte d’un repas, une telle méthodologie ne vaut que pour l’exercice. La composante auto-réalisatrice est sûrement également à prendre en compte dans le succès de l’expérience, de même que la cohésion forcément forte dans une équipe d’amis et le peu de contraintes liées au contexte. Cependant le résultat final est indéniable : l’expérience fut très concluante.</p><p>Le mot de la fin revient aux convives de la soirée, que je remercie au passage pour leur participation :</p><p>Sylvie : &nbsp;&raquo; Quand je raconterai comment les Parisiens s&#8217;y prennent pour faire la cuisine !! &nbsp;&raquo;</p><p>Jean : &nbsp;&raquo; J&#8217;avais peur qu&#8217;il faille se dépêcher pour manger, j&#8217;aime prendre mon temps et heureusement la méthode nous a fait gagner du temps ENTRE les plats &nbsp;&raquo;</p><p>Myriam : &nbsp;&raquo; Un super repas chez moi, mais où les invités font le repas et la vaisselle, je dis oui! &nbsp;&raquo;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/24/retour-d-experience-scrum-applique-a-un-repas-de-noel/feed/</wfw:commentRss> <slash:comments>3</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>Sortie du livre &#171;&#160;Scrum en action&#160;&#187;, par Guillaume Bodet, annoncée le 14 janvier prochain</title><link>http://blog.xebia.fr/2010/12/20/sortie-du-livre-scrum-en-action-par-guillaume-bodet-annoncee-le-14-janvier-prochain/</link> <comments>http://blog.xebia.fr/2010/12/20/sortie-du-livre-scrum-en-action-par-guillaume-bodet-annoncee-le-14-janvier-prochain/#comments</comments> <pubDate>Mon, 20 Dec 2010 10:07:43 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Publications]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6217</guid> <description><![CDATA[Xebia a le plaisir d’annoncer la sortie prochaine de Scrum en action, adapté par Guillaume Bodet, d’après la version originale de Rini van Soligen  et Eelco Rustenburg, the power of scrum. Ce livre est le fruit d’un travail collaboratif. Auteur de la préface, Jeff Sutherland, père fondateur de Scrum, et partenaire de Xebia sur les [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2010/12/scruminaction.jpg" alt="Scrum In Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> Xebia a le plaisir d’annoncer la sortie prochaine de <em><a
href="http://www.amazon.fr/Scrum-en-action-Guillaume-Bodet/dp/2744024686/ref=sr_1_fkmr2_1?ie=UTF8&#038;qid=1292841190&#038;sr=8-1-fkmr2" target="_blank">Scrum en action</a></em>, adapté par <a
href="http://www.parisjug.org/xwiki/bin/view/Speaker/GuillaumeBodet" target="_blank">Guillaume Bodet</a>, d’après la version originale de Rini van Soligen  et Eelco Rustenburg, <em>the power of scrum.</em></p><p>Ce livre est le fruit d’un travail collaboratif. Auteur de la préface, Jeff Sutherland, père fondateur de Scrum, et partenaire de Xebia sur les problématiques agiles, a suivi de près la réalisation de ce livre et en recommande la lecture <em>pour tous ceux qui souhaitent améliorer la qualité des logiciels qu’ils développent, la satisfaction de leurs clients et le plaisir de leurs équipes ».</em></p><p>Cet ouvrage, à la frontière de l&#8217;informatique et du management, a pour objectif d&#8217;introduire les principes de la méthode de gestion de projets Scrum, sans technique et de manière très abordable.</p><p>Écrit comme un roman, il raconte l&#8217;histoire de Mart Versteeg, directeur technique d&#8217;une société éditrice de logiciels, qui doit surmonter de nombreuses difficultés avec un projet déjà terriblement en retard. Il fait la rencontre d&#8217;un coach spécialisé en méthode Scrum, qui va l&#8217;aider à changer radicalement son organisation, et du coup à résoudre un certain nombre de problèmes auxquels il se heurtait&#8230;</p><p>Si vous êtes intéressés, vous pouvez dès à présent le commander sur internet, il est disponible chez tous les libraires classiques et vous sera envoyé à sa sortie en début d&#8217;année prochaine..</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/20/sortie-du-livre-scrum-en-action-par-guillaume-bodet-annoncee-le-14-janvier-prochain/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Xebia Training &#8211; Offre Promotionnelle</title><link>http://blog.xebia.fr/2010/10/29/xebia-training-offre-promotionnelle/</link> <comments>http://blog.xebia.fr/2010/10/29/xebia-training-offre-promotionnelle/#comments</comments> <pubDate>Fri, 29 Oct 2010 05:43:30 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5792</guid> <description><![CDATA[Xebia Training a le plaisir de vous informer que nous proposons actuellement une offre promotionnelle pour les 2 formations suivantes : Formation Scrum Master certifiante animée par Jeff Sutherland, le père fondateur de la méthode, les 13 et 14 décembre. Formation Scrum Product Owner animée par Arlen Bankston les 18 et 19 novembre. Si l&#8217;une [...]]]></description> <content:encoded><![CDATA[<p>Xebia Training a le plaisir de vous informer que nous proposons actuellement une offre promotionnelle pour les 2 formations suivantes :</p><ul><li><a
href="http://training.xebia.fr/formations-methodes-agiles/formation-scrummaster-jeff-sutherland/">Formation Scrum Master certifiante animée par Jeff Sutherland</a>, le père fondateur de la méthode, les 13 et 14 décembre.</li><li><a
href="http://training.xebia.fr/formations-methodes-agiles/formation-product-owner-arlen-bankston/">Formation Scrum Product Owner animée par Arlen Bankston</a> les 18 et 19 novembre.</li></ul><p>Si l&#8217;une de ces formations vous intéresse ou que vous souhaitez de plus amples informations, n&#8217;hésitez pas à nous contacter au 01.53.89.99.99 ou en consultant notre site <a
href="http://www.xebia-training.fr">xebia-training.fr</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/29/xebia-training-offre-promotionnelle/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/</link> <comments>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#comments</comments> <pubDate>Tue, 12 Oct 2010 06:06:43 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[mapreduce]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Percolator]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5617</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII IBM rejoint le projet OpenJDK Agilité Comment vendre Scrum à votre manager Le coin de la technique Percolator, l&#8217;indexation incrémentale du Web selon Google Maven 3 Netbeans 6.10 sera finalement Netbeans 7 Gaelyk, le cloud facile Actualité éditeurs / SSII [...]]]></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/2010/10/12/revue-de-presse-xebia-180/#IBMrejointleprojetOpenJDK">IBM rejoint le projet OpenJDK</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#CommentvendreScrumvotremanager">Comment vendre Scrum à votre manager</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Percolatorlindexationincrmenta">Percolator, l&#8217;indexation incrémentale du Web selon Google</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Maven">Maven 3</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#NetbeansserafinalementNetbeans">Netbeans 6.10 sera finalement Netbeans 7</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Gaelyklecloudfacile">Gaelyk, le cloud facile</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="IBMrejointleprojetOpenJDK"></a>IBM rejoint le projet OpenJDK</h4><p>IBM a fait savoir hier soir par <a
href="http://www.oracle.com/us/corporate/press/176988" title="communiqu de presse" >communiqué de presse</a> qu&#8217;il rejoignait le projet OpenJDK à la suite d&#8217;un accord avec Oracle portant sur la mutualisation de leur efforts pour améliorer la plate-forme Java.</p><p>Cette annonce est pour le moins inattendue après les troubles qu&#8217;a connus la communauté Java cet été lors du <a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#OraclepoursuitGooglepourviolat" title="conflit opposant Oracle  Google" >conflit opposant Oracle à Google</a>. Beaucoup voyaient alors cet évènement comme le signe d&#8217;un manque d&#8217;ouverture de la part d&#8217;Oracle pouvant nuire à l&#8217;avenir de Java. A l&#8217;inverse cette alliance entre Oracle et IBM devrait rassurer les entreprises quant à la pérennité de la plate-forme Java.</p><p>Les premières réactions sont arrivés rapidement. Mark Reinhold (<em>leader</em> du projet OpenJDK) s&#8217;est montré très enthousiaste à l&#8217;idée de cette collaboration. La veille, il avait d&#8217;ailleurs apporté <a
href="http://blogs.sun.com/mr/entry/plan_b_details" title="quelques prcisions" >quelques précisions</a> quant à la mise en oeuvre du plan B, largement plébiscité par la communauté.</p><p>Un autre observateur met en avant le fait que depuis la création du projet OpenJDK il y a quelques années, la <a
href="http://robilad.livejournal.com/63940.html" title="majorit du code  t commit" >majorité du code à été commité</a> par des ingénieurs de Sun/Oracle. L&#8217;arrivée sur le projet d&#8217;ingénieurs, avec en bagage leur expérience sur la JVM d&#8217;IBM, devrait donc constituer un apport de ressources très important pour OpenJDK.</p><p>Au-delà de la mutualisation des ressources, cet accord aura des conséquences politiques bénéfiques. En effet, beaucoup craignaient pendant un temps que le développement du JDK 7 sans JSR associée nuise à la concurrence puisque les JVM alternatives n&#8217;auraient alors plus de spécification sur laquelle se reposer. L&#8217;annonce d&#8217;IBM tend à résoudre ce problème puisque l&#8217;on passerait alors de multiples JVM concurrentes basées sur une même spécification à une JVM unique développée en collaboration par les acteurs à l&#8217;origine de HotSpot (Sun), JRockit (Oracle/BEA) et J9 (IBM). Une telle collaboration ne serait pas sans rappeler celle qu&#8217;a établie l&#8217;industrie derrière Linux.</p><p>Un point reste toutefois à déterminer : quelle sera la la gouvernance d&#8217;OpenJDK ? Dans le cas de Linux, la gouvernance est entre les mains de la <a
href="http://www.linuxfoundation.org/" title="Linux Foundation" >Linux Foundation</a> avec à sa tête Linus Torvald. Une organisation similaire est-elle possible autour du JCP en tant que &laquo;&nbsp;Java Foundation&nbsp;&raquo; ? Les réformes à venir du JCP devraient répondre à cette question.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="CommentvendreScrumvotremanager"></a>Comment vendre Scrum à votre manager</h4><p>Dans <a
href="http://www.infoq.com/news/2010/10/selling-scrum" title="cet article" >cet article</a> sur InfoQ, Mark Levison aborde l&#8217;épineux sujet de la conduite du changement vers une méthodologie agile.</p><p>Il est en effet complexe de convaincre un manager de la nécessité de migrer vers une méthodologie telle que Scrum car ce dernier est généralement contraint par des objectifs de delivery (délivrer de la valeur dans les temps par exemple). Mark nous donne quelques éléments permettant de gérer au mieux cette transition :</p><ul><li>Soyez à l&#8217;écoute de votre management et concentrez vous sur ce qui a le plus de valeur aux yeux de votre manager.</li><li>Adoptez progressivement les méthodes agiles en justifiant les changements comme une amélioration du process actuel et non comme une migration vers une méthodologie agile.</li><li>Présentez régulièrement les bénéfices des changements mis en oeuvre et montrez le retour sur investissement des changements adoptés.</li></ul><p>Vendre une migration vers une méthodologie comme Scrum peut se révéler complexe. En revanche, écouter et comprendre les problèmatiques rencontrées par votre management vous permettra de mettre en avant les solutions qui y répondent le mieux, et ainsi de démontrer à votre manager l&#8217;intérêt du changement.</p><p>L&#8217;introduction progressive d&#8217;une méthodologie agile peut s&#8217;apparenter à un développement itératif dont les éléments du backlog seraient constitués des éléments de la méthodologie, priorisés en fonction de la valeur apportée à votre management. En montrant régulièrement les progrès effectués et le retour sur investissement des changements, il est probable que votre management vous accordera sa confiance et une marge de manoeuvre plus importante afin d&#8217;améliorer les process en vigueur.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="Percolatorlindexationincrmenta"></a>Percolator, l&#8217;indexation incrémentale du Web selon Google</h4><p>Google a diffusé la semaine dernière la très attendue <a
href="http://research.google.com/pubs/pub36726.html" title="publication acadmique" >publication académique</a> portant sur sa nouvelle architecture d&#8217;indexation incrémentale du Web.</p><p>Jusqu&#8217;alors, Google parcourait l&#8217;ensemble des pages Web du monde, les stockait dans sa base de données distribuée <a
href="http://labs.google.com/papers/bigtable.html" title="BigTable" >BigTable</a>, puis procédait à leur indexation à l&#8217;aide de tâche MapReduce sur un très large cluster de machines. Parmi les tâches composant cette indexation, ils procèdent à une inversion des liens, c&#8217;est-à-dire que les mots trouvés dans les liens sont attachés en tant que mots clés des pages vers lesquels ils pointent. L&#8217;ajout ou la mise à jour d&#8217;une page a donc un impact potentiel sur de nombreuses autres, c&#8217;est pourquoi une ré-indexation complète était effectué jusqu&#8217;alors. Outre le surcoût de cette solution, Google lui reprochait son manque de réactivité incompatible avec l&#8217;orientation &laquo;&nbsp;temps réel&nbsp;&raquo; que prend le Web depuis quelques années.</p><p>Cette nouvelle solution d&#8217;indexation incrémentale est nommée Percolator par Google et consiste en un ensemble de tâches transactionnelles déclenchées par événement. Ainsi lorsque le <em>crawler</em> ajoute ou modifie une page il déclenche un évènement qui déclenche une cascade de tâches Percolator.</p><p>Percolator fonctionne au-dessus de BigTable en se fondant sur sa logique : des colonnes BigTable sont utilisées pour le stockages des différents états de l&#8217;algorithme distribué : <em>acknowledge</em>, notification et <em>lock</em>.<br
/> Afin d&#8217;assurer une forte scalabilité, Percolator gère les conflits de mise à jour (collision de deux transactions) par un rééssai ultérieur. Cette logique le destine donc avant tout aux traitements <em>batch</em> asynchrones pour lesquels MapReduce n&#8217;est pas adapté.</p><p>Fort des explications et retours d&#8217;expérience de Google, on peut maintenant s&#8217;attendre à voir une implémentation Open Source de cette intéressante solution de batch incrémental distribué du coté de la communauté <a
href="http://hadoop.apache.org" title="Apache Hadoop" >Apache Hadoop</a>, mais cela prendra probablement de nombreux mois.</p><h4><a
name="Maven"></a>Maven 3</h4><p>Maven 3 est sorti ce samedi 9 octobre presque 5 ans après la version 2. Je m&#8217;en sers dans la plupart des projets que je rencontre depuis un peu plus de 6 mois sans problèmes majeurs. En effet l&#8217;accent de cette release a été mis sur la compatibilité avec les versions précédentes et dès les premières versions alpha, elle était au rendez vous. Derrière le rideau tout ou presque a changé, cette version est une grosse refonte technique, mais pour l&#8217;utilisateur de Maven il n&#8217;y a que peu de différences.</p><p>Les nouveautés :</p><ul><li>Construction des modules en parallèle: Il s&#8217;agit d&#8217;une option à activer avec le <a
href="https://cwiki.apache.org/MAVEN/parallel-builds-in-maven-3.html" title="switch T" >switch -T</a></li><li>Stabilité et prévisibilité : La vitesse moyenne des builds est légèrement améliorée, il y a notamment moins d&#8217;appels aux repositories, amélioration du classloading (pour les plugins et les extensions)</li><li>Validation et notification d&#8217;erreur : Les erreurs dans les descripteurs de projet ou dans les builds sont beaucoup plus clairement annoncés avec le plus souvent un ersatz de solution.</li></ul><p>A venir :</p><ul><li><a
href="http://shell.sonatype.org/" title="Maven shell" >Maven shell</a>: un shell (ligne de commande) qui cache la résolution de dépendances ainsi que le chargement de plugins de commande en commande.</li><li><a
href="http://polyglot.sonatype.org/" title="Maven polyglotte" >Maven polyglotte</a> : permet d&#8217;exprimer les descripteurs de projets (pom.xml) dans d&#8217;autres langages que l&#8217;XML (Groovy, Ruby, Scala, Clojure&#8230;).</li><li><a
href="http://m2eclipse.sonatype.org/" title="M2Eclipse" >M2Eclipse</a> : plugin d&#8217;intégration de Maven dans Eclipse qui devrait voir une release 1.0.</li></ul><p>L&#8217;ensemble de ces développements est rendu possible grâce à l&#8217;architecture de Maven 3.</p><p>Pour plus de détails vous pouvez consulter la <a
href="http://maven.apache.org/release-notes-3.0.x.html" title="note de version" >note de version</a> et la <a
href="https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html" title="note de compatibilité" >note de compatibilité</a>. Enfin pour savoir si les plugins que vous utilisez sont compatibles il y a la <a
href="https://cwiki.apache.org/MAVEN/maven-3x-plugin-compatibility-matrix.html" title="matrice de compatibilit" >matrice de compatibilité</a>.</p><h4><a
name="NetbeansserafinalementNetbeans"></a>Netbeans 6.10 sera finalement Netbeans 7</h4><p>The Aquarium, le blog officiel sur le serveur J2EE Glassfish, <a
href="http://blogs.sun.com/theaquarium/entry/netbeans_7_0" title="nous apprend la nouvelle" >nous apprend la nouvelle</a>: l&#8217;ex-futur Netbeans 6.10, sera finalement renommé en Netbeans 7. La raison <a
href="http://netbeans.org/community/news/show/1498.html" title="officielle" >officielle</a> semble être le calage sur le numéro de version de Java, Netbeans sera alors (quasiment) prêt à supporter <a
href="http://openjdk.java.net/projects/jdk7/features/#f618" title="les nouveautés syntaxiques de Java 7" >les nouveautés syntaxiques de Java 7</a> pour la sortie du JDK 7 lors de sa sortie. Par ailleurs, on ne sera pas trop surpris d&#8217;apprendre que le support de JavaFX script ne sera plus à l&#8217;ordre du jour (mais dès la version 7.1, on devrait avoir un support étendu des API Java de JavaFX). La liste complète des changements se trouve sur <a
href="http://wiki.netbeans.org/NewAndNoteworthyNB70" title="le wiki de Netbeans" >le wiki de Netbeans</a>.<br
/> Cette nouvelle version est prévue pour mars de l&#8217;année prochaine. En attendant, vous pouvez toujours tester les versions intermédiaires, la milestone 2 devant sortir cette semaine. Profitons en pour noter les évolutions permanentes de la version 6.9, et notamment <a
href="https://netbeans.org/bugzilla/show_bug.cgi?id=184952" title="une correction récente" >une correction récente</a> qui permet maintenant d&#8217;utiliser <a
href="http://projectlombok.org/" title="Lombok" >Lombok</a> avec les projets de type Maven. Votre serviteur l&#8217;attendait avec impatience !</p><h4><a
name="Gaelyklecloudfacile"></a>Gaelyk, le cloud facile</h4><p>Gaelyk, le framework &laquo;&nbsp;léger&nbsp;&raquo; permettant de développer en Groovy sur le Google AppEngine, vient de voir se succéder assez rapidement plusieurs versions pour arriver jusqu&#8217;à la 0.5.5. Dzone nous <a
href="http://groovy.dzone.com/gaelyk-many-releases" title="détaille succintement" >détaille succintement</a> les améliorations. Aucune n&#8217;apporte de vraie révolution, mais Gaelyk semble s&#8217;affirmer de plus en plus comme LE framework à utiliser par les développeurs Java s&#8217;ils veulent bénéficier facilement et à moindre coût d&#8217;un serveur leur permettant de mettre en ligne des petites applications. D&#8217;autant que le framework dispose d&#8217;un bien bel atout: <a
href="http://code.google.com/p/maven-gaelyk/" title="le plugin mavengaelyk" >le plugin maven-gaelyk</a> a rapidement été mis à jour. Celui-ci permet d&#8217;utiliser notre outil de build favori pour créer un squelette d&#8217;application, puis le déployer et l&#8217;exécuter en local facilement.<br
/> Mais attention, Gaelyk ne se limite pas aux petites applications et Helloworld: Deluan Quintão <a
href="http://techbeats.deluan.com/using-spring-di-in-your-gaelyk-projects" title="nous indique" >nous indique</a> que l&#8217;on peut facilement configurer notre Spring habituel pour retrouver les automatismes (certains diront la lourdeur <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) des applications d&#8217;entreprise. Il ne serait pas étonnant de voir de plus en plus de développeurs Java utiliser Gaelyk pour prototyper certains concepts ou réaliser des démos en un rien de temps.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/</link> <comments>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#comments</comments> <pubDate>Tue, 13 Jul 2010 05:45:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[JDuchess]]></category> <category><![CDATA[JVM]]></category> <category><![CDATA[Kanban]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5022</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Agilité L&#8217;agilité à la sauce Pixar Evitez le multi-tâches dans les équipes de développement Le coin de la technique Développez vos applications Android sans écrire une ligne de code Mettez à jour votre JVM Evènements de notre communauté en France et à l&#8217;étranger Le [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><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/2010/07/13/revue-de-presse-xebia-167/#LagilitlasaucePixar">L&#8217;agilité à la sauce Pixar</a></li><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#Evitezlemultitchesdanslesquipe">Evitez le multi-tâches dans les équipes de développement</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#DveloppezvosapplicationsAndroi">Développez vos applications Android sans écrire une ligne de code </a></li><li><a
href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#MettezjourvotreJVM">Mettez à jour votre JVM</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/2010/07/13/revue-de-presse-xebia-167/#LeprogrammeduDevoxxsedvoile">Le programme du Devoxx 2010 se dévoile</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="LagilitlasaucePixar"></a>L&#8217;agilité à la sauce Pixar</h4><p>C&#8217;est une question d&#8217;actualité avec la sortie de Toy Story 3 : mais comment Pixar fait-il pour cartonner à chaque nouveau film ? <a
title="InfoQ lve une partie du voile" href="http://www.infoq.com/news/2010/07/consistency-trust">InfoQ lève une partie du voile</a> : la cohérence construit la confiance. Derrière cette maxime &#8216;à l&#8217;américaine&#8217; se cache un processus créatif original : Pixar construit des équipes pluri-disciplinaires, qui travaillent ensemble (éventuellement durant plusieurs films) et qui créent des liens de confiance inaliénables. Chaque jour, l&#8217;équipe se réunit pour discuter du travail effectué la veille : critiques, remises en cause, les équipes travaillent dans un processus d&#8217;amélioration constante. Chaque membre de l&#8217;équipe est encouragé à donner son avis, même ses membres les plus juniors.<br
/> Ce mode de fonctionnement laisse la place à l&#8217;erreur. Comme chacun est impliqué, chacun peut se tromper. Les erreurs sont mêmes une des clés du processus créatif. L&#8217;essentiel est de se tromper rapidement, pour pouvoir corriger le tir.</p><p>Changez maintenant de point de vue, et regardez cet article sous l&#8217;angle du développement logiciel. N&#8217;y retrouve t&#8217;on pas un fort goût d&#8217;agilité ?</p><h4><a
name="Evitezlemultitchesdanslesquipe"></a>Evitez le multi-tâches dans les équipes de développement</h4><p>Toujours sur <a
title="Toujours sur InfoQ" href="http://www.infoq.com/articles/multitasking-problems">InfoQ</a>, Roger Brown nous met en garde contre les méfaits du traitement simultané de projets (tâches, user stories &#8230;) par une personne.<br
/> Le changement de contexte lorsque l&#8217;on passe d&#8217;une tâche à l&#8217;autre peut prendre plus ou moins de temps en fonction de la complexité de la tâche, du temps et de la nature de l&#8217;interruption. Le traitement d&#8217;un appel téléphonique, par exemple, pourra engendrer un délai d&#8217;un quart d&#8217;heure pour se remettre dans le contexte de la tâche précédente. D&#8217;autres types d&#8217;interruptions (travail sur une autre tâche de développement par exemple) peuvent nous faire perdre beaucoup plus de temps.<br
/> L&#8217;auteur nous explique que le travail en parallèle sur plusieurs projets implique généralement un surcoût induit par les changements de contexte pouvant représenter de 20% à plus de 50% du temps de travail lorsque nous travaillons simultanément sur plus de deux projets. Il est donc préférable de terminer une tâche (User Story par exemple) avant d&#8217;en commencer une autre, plutôt que de fragmenter son travail.<br
/> Les méthodes agiles comme Scrum ou le Kanban préconisent un nombre limité de User Stories ou de tâches en cours, et de ne pas en commencer une autre avant d&#8217;avoir atteint le statut &laquo;&nbsp;Done&nbsp;&raquo;.<br
/> Le cerveau humain ayant tendance à vouloir traiter plusieurs tâches en parallèle, Roger Brown préconise quelques techniques telles que le pair-programming afin d&#8217;aider les développeurs à rester concentrés sur leur tâche et à gagner ainsi en efficacité.<br
/> On peut aussi citer le <a
title="pomodoro" href="http://www.pomodorotechnique.com/">pomodoro</a> qui est une discipline consistant à se ménager un laps de temps de 25 minutes sans interruption, permettant de se focaliser sur une tâche et ainsi de gagner en efficacité.<br
/> L&#8217;auteur conclut en ajoutant que non seulement le traitement séquentiel des projets (tâches, user stories &#8230;) permet de gagner du temps, mais il permet aussi de créer des synergies entre les différents membres de l&#8217;équipe qui peuvent ainsi travailler de concert sur le projet.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="DveloppezvosapplicationsAndroi"></a>Développez vos applications Android sans écrire une ligne de code</h4><p>Google Labs vient d&#8217;annoncer l&#8217;arrivée d&#8217;App Inventor, un éditeur d&#8217;applications pour Android destiné aux non-développeurs. L&#8217;objectif est de permettre à tout androphile de <strong>dessiner</strong> sa propre application depuis le logiciel, puis de la transférer sur son smartphone.</p><blockquote><p><em>To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app&#8217;s behavior.</em></p></blockquote><div><img
src="http://blog.xebia.fr/wp-content/uploads/2010/07/GAppInventor.png" border="0" alt="" /></div><p>Pour le moment, il n&#8217;est pas possible de s&#8217;inscrire. Vous pouvez seulement montrer votre intérêt en remplissant un formulaire dans lequel vous exprimerez votre enthousiasme pour l&#8217;utilisation d&#8217;AppInventor dans un cadre universitaire. Si vous n&#8217;avez rien à voir avec quelconque formation, vous pouvez toujours laisser les réponses vides.</p><p>En épluchant le site, on constate la forte volonté d&#8217;installer cet éditeur dans le monde universitaire, voire scolaire. En effet, il est fait mention à plusieurs reprises des possibilités de développements de jeux, d&#8217;applications communautaires ou d&#8217;outils d&#8217;interaction entre étudiants. Malgré tout, Google n&#8217;oublie les autres&#8230; le particuliers lambda, ou le collègue que nous sommes en précisant:</p><blockquote><p><em>The App Inventor team has created blocks for just about everything you can do with an Android phone, as well as blocks for doing &laquo;&nbsp;programming-like&nbsp;&raquo; stuff.</em></p></blockquote><p>Nous nous posons tout de même quelques questions à ce sujet:</p><ul><li>Google préfèrerait-il que nous apprenions à utiliser son logiciel plutôt qu&#8217;écrire du code <span
style="text-decoration: line-through;">propre</span> personnalisé?</li><li>Ne se cache-t-il pas un envie de maîtriser le code généré? (en y ajoutant des statistiques par exemple&#8230;)</li><li>N&#8217;y a-t-il pas un risque de voir proliférer sur le market des applications réalisées en 5 minutes, pleines de pubs et pauvres sur les plans fonctionnel et graphique? (comme HelloPurr, cf. <a
title="vido de dmo" href="http://www.youtube.com/watch?v=8ADwPLSFeY8&amp;feature=player_embedded">vidéo de démo</a>)</li></ul><p>Le futur nous le dira&#8230;</p><p>Du côté de la technique, les outils utilisés sont <a
title="OpenBlocks" href="http://dspace.mit.edu/handle/1721.1/41550">OpenBlocks</a> et <a
title="Kawa Language Framework" href="http://www.gnu.org/software/kawa/">Kawa Language Framework</a>. Le premier est le fruit de la thèse de Ricarose Roque (MIT) : une librairie Java permettant de programmer des systèmes à l&#8217;aide de blocs visuels. Le second est utilisé par le compilateur pour traduire en bytecode les blocs graphiques.</p><p>En attendant d&#8217;avantage d&#8217;informations et pourquoi pas un article plus complet sur l&#8217;outil, vous trouverez déjà quelques tutoriaux sur le site.</p><p>source : <a
title="site de lditeur" href="http://appinventor.googlelabs.com/about/">site de l&#8217;éditeur</a></p><h4><a
name="MettezjourvotreJVM"></a>Mettez à jour votre JVM</h4><p>Après une dernière release qui corrigeait un <a
title="problème de sécurité" href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#FailledescuritdansOracleJava">problème de sécurité</a>, Oracle nous invite à <a
title="télécharger" href="http://java.sun.com/javase/downloads/index.jsp">télécharger</a> la release 21 qui, outre la correction de <a
title="bugs" href="http://java.sun.com/javase/6/webnotes/BugFixes6u21.html">bugs</a> (mais pas de correction liée à la sécurité), apporte des améliorations sur la JVM HotSpot et VisualVM.</p><p>Sur la Java HostSpot VM, les améliorations portent sur la compression des pointeurs d&#8217;objets, <em>escape analysis</em> (qui améliore la gestion des piles), la gestion du cache sur le byte code, sur le garbage collector CMS (Concurrent Mark-Sweep) et G1. Pour rappel, G1 est le nouveau garbage collector en préparation pour la JDK 7 mais déjà utilisable dans la version 6 depuis la release 17. Pour l&#8217;activer il faut passer les options <code>-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC</code>.</p><p>La version 1.2.2 de VisualVM, sortie il y a quelques mois, est à présent incluse dans la distribution de Java SE. Elle apporte beaucoup d&#8217;améliorations sur l&#8217;analyse de la mémoire et sur le profilage.</p><p>Enfin pour les développeurs de RIA java, un <em>listener</em> a été ajouté pour suivre l&#8217;évolution du chargement de l&#8217;application. Plus de détails <a
title="ici" href="http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/deployment/doingMoreWithRIA/customizeRIALoadingExperience.html">ici</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="LeprogrammeduDevoxxsedvoile"></a>Le programme du Devoxx 2010 se dévoile</h4><p>J&#8217;espère que vous avez créé une règle sur votre outil de mailing préféré qui décline toute demande de réunion sur la période du 15 au 19 novembre 2010 car c&#8217;est &#8230; Devoxx!<br
/> À moins d&#8217;être parti 8 ans en mission dans l&#8217;océan arctique sur un brise glace, vous ne pouvez pas ne pas connaître Devoxx. C&#8217;est LA conférence européenne spécialisée sur LA technologie (i.e. Java) qui se déroule tous les ans à Anvers en Belgique.</p><p>Tout le gratin des meilleurs speakers et spécialistes sera présent dont certains français: Antonio Goncalves, Guillaume Laforge, Emmanuel Bernard pour ne citer qu&#8217;eux, mais aussi des incontournables comme Heinz Kabutz, John Smart ou bien Michael Cote.<br
/> Mais ce n&#8217;est pas tout! En effet, un BoF (<a
title="Bird of Feather" href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_(computing)">Bird of Feather</a>) organisé par les JDuchess se prépare.</p><p>Le programme commence à prendre forme. Vous pouvez commencer à saliver sur des conférences plus intéressantes les unes que les autres avec quelques titres accrocheurs:</p><ul><li>JAX-RS, Java EE 6, and the future,</li><li>Reflection Madness,</li><li>Improve the performance of your Spring app,</li><li>HTML 5 Fact and Fiction,</li><li>Comparing JVM Web Frameworks,</li><li>Groovy update, ecosystem, and skyrocketing to the cloud with App Engine and Gaelyk,</li><li>Restfulie: quit pretending, use the web for real,</li><li>Women in IT an unconference,</li><li>etc.</li></ul><p>Dans le programme de cette année, c&#8217;est surtout la présence de plus d&#8217;une dizaine de sessions dédiées aux technologies NoSQL et Cloud que l&#8217;on retiendra. On se souvient en effet que l&#8217;édition 2009 de cette conférence n&#8217;avait proposé qu&#8217;une trop courte session d&#8217;introduction à NoSQL suivie d&#8217;un BOF. Cette augmentation sensible de la part accordée à ces technologies témoigne de leur popularité croissante en 2010. Une fois de plus Devoxx s&#8217;affirme comme le baromètre de notre écosystème !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/feed/</wfw:commentRss> <slash:comments>0</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>Xebia lance les Daily Scrum glasses</title><link>http://blog.xebia.fr/2010/04/01/xebia-lance-les-daily-scrum-glasses/</link> <comments>http://blog.xebia.fr/2010/04/01/xebia-lance-les-daily-scrum-glasses/#comments</comments> <pubDate>Thu, 01 Apr 2010 06:00:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4292</guid> <description><![CDATA[Pour répondre à la demande croissante de ses clients mettant en place des projets agiles, Xebia annonce la disponibilité immédiate des premières &#171;&#160;Daily Scrum Glasses&#160;&#187;. Equipées d&#8217;un écran à visée Laser, elles permettent au Scrum Master de digitaliser l&#8217;intégralité des Story Boards et d&#8217;alimenter le Burndown Chart de manière automatique. En quelques secondes, ces lunettes [...]]]></description> <content:encoded><![CDATA[<p>Pour répondre à la demande croissante de ses clients mettant en place des projets agiles, Xebia annonce la disponibilité immédiate des premières <strong><em>&laquo;&nbsp;Daily Scrum Glasses&nbsp;&raquo;</em></strong>.</p><p>Equipées d&#8217;un écran à visée Laser, elles permettent au <em>Scrum Master</em> de digitaliser l&#8217;intégralité des <em>Story Boards</em> et d&#8217;alimenter le <em>Burndown Chart</em> de manière automatique.<br
/> En quelques secondes, ces lunettes transfèrent l&#8217;intégralité du contenu manuscrit des notes directement dans la feuille Excel destinée à tenir le détail du travail effectué.<br
/> Dans la droite lignée du principe agile consistant à supprimer le gaspillage, Les <em>Daily Scrum Glasses</em> suppriment les longues et fastidieuses étapes de mise à jour quotidienne du <em>Burndown Chart</em>.</p><p>Des tests en situation réelle <em>(cf Schémas 1, 2 et 3 ci-dessous)</em> ont démontré une capacité de transfert de 300 &laquo;&nbsp;Notes&nbsp;&raquo; du <em>Story Board</em> vers le <em>Product Burndown Chart</em> en moins de 5 secondes. Les gains de productivité d&#8217;un <em>Scrum Master</em> équipé des <em>Daily Scrum Glasses</em> sont de 30%.</p><div><img
src="http://blog.xebia.fr/wp-content/uploads/2010/03/daily-scrum-glasses.jpg" border="0" alt="" /><br
/> Schéma 1: Scrum Master Xebia équipé de <em>Daily Scrum Glasses</em></div><div><img
src="http://blog.xebia.fr/wp-content/uploads/2010/03/projet-agile.jpg" border="0" alt="" /><br
/> Schéma 2 : Projet Agile conséquent benchmarké</div><div><img
src="http://blog.xebia.fr/wp-content/uploads/2010/03/burndown-chart.jpg" border="0" alt="" /><br
/> Schéma 3 : Product Burndown Chart généré par les &laquo;&nbsp;Daily Scrum Glasses&nbsp;&raquo;</div><p><em>Vendues à la FNAC et chez Surcouf, le prix public conseillé est de 29,00 Euros/HT.</em></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/04/01/xebia-lance-les-daily-scrum-glasses/feed/</wfw:commentRss> <slash:comments>4</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>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/</link> <comments>http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/#comments</comments> <pubDate>Mon, 22 Feb 2010 17:32:23 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[CSS3]]></category> <category><![CDATA[G1]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Subversion]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4050</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Subversion devient un projet top-level Apache Agilité Sortie du livre &#171;&#160;SCRUM : Le guide pratique de la méthode agile la plus populaire&#160;&#187; RIA HTML5 + CSS3 = 52framework Le coin de la technique Les nulls, c&#8217;est nul ! G1 pas [...]]]></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/2010/02/22/revue-de-presse-xebia-148/#Subversiondevientunprojettople">Subversion devient un projet top-level Apache</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/#Sortiedulivrenbspahrefhttpwwwd">Sortie du livre <a
href="http://www.dunod.com/livre-dunod-9782100540181-scrum-le-guide-pratique-de-la-methode-agile-la-plus-populaire.html" title="SCRUM  Le guide pratique de la mthode agile la plus populaire" >&laquo;&nbsp;SCRUM : Le guide pratique de la méthode agile la plus populaire&nbsp;&raquo;</a></a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/#HTMLCSSframework">HTML5 + CSS3 = 52framework</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/#Lesnullscestnul">Les nulls, c&#8217;est nul !</a></li><li><a
href="http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/#Gpaslahauteurdesesprances">G1 pas à la hauteur des espérances ?</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Subversiondevientunprojettople"></a>Subversion devient un projet top-level Apache</h4><p>Après seulement <a
href="http://java.dzone.com/news/subversion-graduates-only-3" title="3 mois d'incubation" >3 mois d&#8217;incubation</a> (mais sur le point de fêter ses 10 ans, <a
href="http://www.collab.net/" title="Collabnet" >Collabnet</a> ayant sorti la première version en 2000), Subversion est <a
href="http://subversion.wandisco.com/component/content/article/1/43.html" title="maintenant" >maintenant</a> projet <em>top-level</em> Apache. Pour ce faire, le projet a du se plier aux règles strictes édictées par la fondation Apache, qui touchent à la fois au code source du logiciel, à la provenance des différents codes, à leur licence, au site internet du projet, au processus de <em>release</em> des nouvelles versions&#8230; C&#8217;est un <a
href="http://www.apache.org/foundation/how-it-works.html" title="gros travail" >gros travail</a> mais il permet ensuite aux projets de bénéficier de toute l&#8217;infrastructure ainsi que de l&#8217;aura de la fondation Apache.<br
/> Subversion s&#8217;assure donc pour la suite une stabilité et une plus grande visibilité, élargit sa communauté et s&#8217;octroit plus de crédibilité vis à vis des entreprises. En effet, être projet top-level Apache est gage de pérennité.<br
/> Le projet en aura besoin, étant fortement concurrencé par les outils de gestion de version distribués comme <a
href="http://git-scm.com/" title="Git" >Git</a> ou <a
href="http://mercurial.selenic.com/" title="Mercurial" >Mercurial</a>. Martin Fowler <a
href="http://martinfowler.com/bliki/VersionControlTools.html" title="notait ainsi rcemment" >notait ainsi récemment</a> plusieurs points négatifs de SVN :</p><ul><li>l&#8217;absence de copie locale du <em>repository</em> d&#8217;où des problèmes de performance et l&#8217;impossibilité de travailler <em>offline</em> sur ce repository.</li><li>le fait que les branches aient une visibilité globale est un frein à l&#8217;innovation: les développeurs sont moins enclins à créer une branche pour expérimenter diverses innovations.</li></ul><p>Néanmoins, SVN reste pour lui le meilleur des outils non distribué, et est largement recommandable. D&#8217;autant que c&#8217;est un outil plus simple à appréhender et son ancienneté fait que <a
href="http://lsimons.wordpress.com/2010/02/19/using-long-lived-stable-branches/" title="les bonnes pratiques" >les bonnes pratiques</a> sont largement répandues. D&#8217;autre part, ajoutons que les développeurs semblent ne pas se reposer sur leurs récents lauriers, et <a
href="http://subversion.wandisco.com/component/content/article/1/44.html" title="annoncent" >annoncent</a> la disponibilité dans la version 1.7 de la fonctionnalité de <em>offline commit</em>. Comme d&#8217;habitude, nous bénéficions encore de la concurrence pour avoir à notre disposition les meilleurs outils. Chouette <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> !</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Sortiedulivrenbspahrefhttpwwwd"></a>Sortie du livre <a
href="http://www.dunod.com/livre-dunod-9782100540181-scrum-le-guide-pratique-de-la-methode-agile-la-plus-populaire.html" title="SCRUM  Le guide pratique de la mthode agile la plus populaire" >&laquo;&nbsp;SCRUM : Le guide pratique de la méthode agile la plus populaire&nbsp;&raquo;</a></h4><p>Claude Aubry, auteur du bien connu blog <a
href="http://www.aubryconseil.com/" title="Scrum Agilit et Rockn roll" >Scrum, Agilité et Rock&#8217;n roll</a> nous délivre dans ce livre un condensé de son expérience sur la mise en place de Scrum. Très pragmatique, ce livre traite point par point les différentes composantes de Scrum en les expliquant et en détaillant pour chacune les pratiques qui fonctionnent et celles à ne pas tenter. Après avoir dévoré les 5 premiers chapitres nous ne pouvons que vous engager à lire cet ouvrage qui fera office de référence pour vous accompagner sur vos projets Scrum.<br
/> C&#8217;est comme d&#8217;avoir un peu de Claude Aubry avec soi sur son projet, mais sans l&#8217;accent <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="HTMLCSSframework"></a>HTML5 + CSS3 = 52framework</h4><p>Même si c&#8217;est en très bonne voie, les navigateurs Web du marché ne sont pas entièrement compatibles HTML5 et CSS3. Néanmoins, plusieurs librairies JavaScript permettent de rendre votre navigateur 100% compatible avec ces 2 technologies et <a
href="http://www.52framework.com/" title="52framework" >52framework</a> en fait partie.</p><p>Au menu, la librairie nous propose d&#8217;utiliser les différentes nouvelles balises HTML5 telles que <code>aside</code>, <code>nav</code>, <code>section</code> ou bien encore <code>article</code>. Les nouveaux <code>input type='email'</code> et <code>input type='url'</code> sont aussi de la partie. La balise <code>script</code> contenant du JavaScript n&#8217;a plus besoin de l&#8217;attribut <code>type='text/javascript'</code>. Côté CSS3, il est possible d&#8217;utiliser les coins arrondis, les <em>text-shadow</em> et les <em>box-shadow</em>.<br
/> La démo se trouve <a
href="http://www.52framework.com/demo/?normalText=normal+text+field&#038;email=ema&#038;url=url.com&#038;required=required" title="ici" >ici</a>, le plus intéressant étant son code source où l&#8217;on retrouve les nouveaux éléments cités ci-dessus.</p><p>Pour le téléchargement, rendez-vous est pris sur le <a
href="http://code.google.com/p/52framework/" title="Google Code" >Google Code</a> du projet section <a
href="http://code.google.com/p/52framework/downloads/list" title="Downloads" >Downloads</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Lesnullscestnul"></a>Les nulls, c&#8217;est nul !</h4><p>C&#8217;est en tout cas ce que beaucoup d&#8217;entre nous ressentent en tombant sur certaines <code>NullPointerExceptions</code>. Et suivent les premières questions : Où sont les tests unitaires ? Quel paramètre n&#8217;a pas été testé ? Mais, ressenti de plus en plus grandissant avec les derniers langages alternatifs pour la JVM, pourquoi laisser passer des valeurs <code>nulls</code> en paramètre ?</p><p>Pour ne prendre qu&#8217;un seul exemple, Scala permet d&#8217;éviter ce genre de désagrément grâce à la classe <a
href="http://www.scala-lang.org/docu/files/api/scala/Option.html" title="Option" >Option</a> <em>(<a
href=" http://www.ilyasterin.com/blog/2010/02/avoid-using-nulls-in-scala-at-any-costs.html" title="Avoid using nulls in Scala" >Avoid using nulls in Scala</a>)</em>. Dans le cas d&#8217;une valeur définie, il suffit d&#8217;utiliser <code>Some(something)</code> qui est l&#8217;option avec valeur. Et pour le <code>null</code>, il faudra se tourner vers <code>None</code> qui est l&#8217;option sans valeur. Le code est ainsi réduit et ne contient plus de test <code>if(obj !=null)</code> (englobé dans l&#8217;option <code>None</code>) :</p><pre class="brush: java; title: ; notranslate">
// possible parameters
var anObject = Some(5)
var nullObject = None
// our code that do not care about nulls
val doubleFunc = (option:Option[Int]) =&gt; print(option.map(_*2))
doubleFunc(anObject)
doubleFunc(nullObject)
// prints
Some(10) // values has been doubled
None // does nothing
</pre><p>Mais pour Java ? Une petite piqure de rappel ne faisant pas de mal, cet <a
href="http://thetechcandy.wordpress.com/2010/01/28/avoid-null/" title="article" >article</a> nous présente une solution possible avec en citation Martin Fowler et le pattern <a
href="http://martinfowler.com/eaaCatalog/specialCase.html" title="Special Case" >Special Case</a>.</p><p>L&#8217;idée est la même que pour l&#8217;option Scala. On commence par définir une classe abstraite ou une interface avec une méthode spécifique qui sera appelée par notre code. Et de là seront créés 2 objets : un objet réel et un objet <code>null</code>. Ce dernier implémentera la méthode demandée mais ne fera rien alors que l&#8217;objet réel exécutera son code métier. Ainsi, plus de test de nullité, notre code lancera directement la méthode sur l&#8217;objet et ne se souciera plus de savoir si l&#8217;objet est <code>null</code> ou non.</p><p>Ce pattern anti <code>NPE</code> est une solution possible mais elle n&#8217;est pas la seule. Si vous avez suivi l&#8217;actualité, vous êtes malheureusement au courant que les operateurs <em>null-safe</em> et <em>elvis</em> ne seront pas implémentés par l&#8217;ambitieux <a
href=" http://blogs.sun.com/darcy/entry/project_coin_final_five" title="Project Coin" >Project Coin</a>. Le sucre syntaxique ne viendra donc pas directement dans nos appels de fonctions mais par les annotations de <a
href="http://www.infoq.com/news/2008/06/jsr-305-update" title="JSR305" >JSR-305</a> dont <code>@NonNull</code>. Bien sûr, cette spécification a pour cible FindBugs, Intellij IDEA, Checkstyle ou bien encore PMD. On aurait préféré une intégration <em>au Project Coin</em> mais c&#8217;est déjà mieux que rien&#8230;</p><h4><a
name="Gpaslahauteurdesesprances"></a>G1 pas à la hauteur des espérances ?</h4><p>G1 (Garbage First) est un nouvel algorithme pour votre Garbage Collector. Il est destiné à remplacer l&#8217;implémentation par défaut lors de l&#8217;arrivée de la prochaine JVM. Celui-ci apporte un certain nombre d&#8217;avancées significatives dont des performances annoncées (quasi) compatibles avec le temps réel. Pour cela, G1 relève le défi de la maitrise des temps de pause des collections <em>stop the world</em> grâce à une gestion innovante de la mémoire (reposant sur beaucoup plus de &#8216;petites&#8217; zones).</p><p>Nous n&#8217;allons pas détailler son fonctionnement ici. Si le sujet  vous intéresse, nous vous encourageons à consulter l&#8217;un de nos articles sur le sujet. Il date un peu, mais son contenu reste tout à fait d&#8217;actualité : <a
href="http://blog.xebia.fr/2008/03/12/gc-generationnels-traditionnels-jdk6-vs-gc-garbage-first-jdk7/" title="GC générationnels traditionnels (jdk6) VS GC Garbage First (jdk7)" >GC générationnels traditionnels (jdk6) VS GC Garbage First (jdk7)</a>.</p><p>Si les fonctionnalités de ce nouvel algorithme sont alléchantes, on retrouve <a
href="http://www.jroller.com/broneill/entry/g1_garbage_collector_experiences" title="ici et l " >ici et là </a> quelques retours frileux suite à son usage.  L&#8217;auteur de ce billet annonce des performances moins bonnes qu&#8217;avec le garbage collector par défaut lors de l&#8217;utilisation de LinkedHashMap. Faut-il s&#8217;en inquiéter pour autant ? Non !  Vu la criticité de ce genre de fonctionnalité, il est tout à fait normal que quelques ajustements soient faits lors des premiers retours d&#8217;utilisation terrain. C&#8217;est d&#8217;ailleurs le but recherché suite à l&#8217;intégration à Java 6 update 14 (via les options <code>-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC</code>), même s&#8217;il est vrai qu&#8217;il n&#8217;est plus flagué &#8216;expérimental&#8217; depuis peu sur les derniers build  du jdk 7.</p><p>En revanche, en plus de la mise en doute des performances de G1 relayée sur le internet, nous pensons qu&#8217;un élément bloque effectivement son adoption en production : le monitoring. Celui-ci est aujourd&#8217;hui insuffisant, ni jstat ni VisualGC ne remontent d&#8217;informations comme le montrent les captures d&#8217;écran ci-dessous. <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><strong>jstat et VisualGC ne sont pas encore prêts pour G1</strong><br
/> <code><br
/> $ jstat -gccause 30572 5s<br
/> Warning: Unresolved Symbol: sun.gc.generation.0.space.1.capacity substituted NaN<br
/> Warning: Unresolved Symbol: sun.gc.generation.0.space.1.used substituted NaN<br
/> ...<br
/> Warning: Unresolved Symbol: sun.gc.collector.0.invocations substituted NaN<br
/> Warning: Unresolved Symbol: sun.gc.collector.0.time substituted NaN<br
/> ...<br
/> S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC<br
/> ?      ?      ?      ?  79.96      ?        ?     ?        ?        ? unknown GCCause      No GC<br
/> ?      ?      ?      ?  79.96      ?        ?     ?        ?        ? unknown GCCause      No GC<br
/> </code></p><div
align="center"> <a
href="http://blog.xebia.fr/wp-content/uploads/2010/02/screenshot-visualgc-g1.png"><img
src="http://blog.xebia.fr/wp-content/uploads/2010/02/screenshot-visualgc-g1-300x179.png" alt="screenshot-visualgc-g1" title="screenshot-visualgc-g1" width="300" height="179" class="alignnone size-medium wp-image-4053" /></a></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/02/22/revue-de-presse-xebia-148/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Ma rencontre avec Ken Schwaber</title><link>http://blog.xebia.fr/2010/02/02/ma-rencontre-avec-ken-schwaber/</link> <comments>http://blog.xebia.fr/2010/02/02/ma-rencontre-avec-ken-schwaber/#comments</comments> <pubDate>Tue, 02 Feb 2010 08:09:37 +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> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3944</guid> <description><![CDATA[Le French Scrum User Group a eu le grand privilège de rencontrer Ken la semaine dernière grâce à notre sponsor Microsoft qui le recevait dans le cadre de formations organisées en France. Je souhaite relater ici les propos qui se sont tenus lors de cet échange avec Ken. Quant à mes impressions personnelles, je ne [...]]]></description> <content:encoded><![CDATA[<p>Le French Scrum User Group a eu le grand privilège de rencontrer Ken la semaine dernière grâce à notre sponsor Microsoft qui le recevait dans le cadre de formations organisées en France.</p><p>Je souhaite relater ici les propos qui se sont tenus lors de cet échange avec Ken.</p><p>Quant à mes impressions personnelles, je ne les partagerai pas avec vous car, en tant que Président du SUG, je souhaite rester neutre face aux différents courants de pensée, organismes certificateurs ou non, canal historique ou dissidents …</p><p>Le premier contact avec Ken est surprenant. Le co-fondateur de Scrum avec <a
href="http://jeffsutherland.com/scrum/">Jeff Sutherland</a>, la figure légendaire de l’agilité est  fatiguée, un peu diminuée physiquement également. Son accident de vélo a laissé des traces.</p><p>Ken m’a glissé à l’oreille : <em>&laquo;&nbsp;c’est parce que je fais du vélo que j’ai failli mourir mais c’est également parce que je fais du vélo (et donc que je suis en forme physique) que j’ai pu m’en sortir.&nbsp;&raquo;</em></p><p>Derrière son visage marqué par les décalages horaires permanents, se cache un personnage qui n’a rien perdu de sa verve, de son dynamisme, de son humour, de ses convictions.</p><p>Ken est un passionné de développement logiciel, cela se voit.</p><p>Nous lui avions demandé de nous présenter <a
href="http://www.scrum.org/">Scrum.org</a> dont il est le fondateur.</p><p>Première définition : <a
href="http://www.scrum.org/">Scrum.org</a> a pour objectif de <em>&laquo;&nbsp;préserver l’intégrité et la consistance de Scrum&nbsp;&raquo;</em> (sic !).</p><p>Allons plus loin.</p><p><a
href="http://www.scrum.org/">Scrum.org</a> propose des tests en ligne <em>(assessments)</em> et des cours destinés aux praticiens Scrum.<br
/> Parmi les tests en ligne, notons l’arrivée de :</p><ul><li>Scrum Developer (SD), test destiné aux développeurs.</li><li>Scrum Open, test en ligne destiné à évaluer le premier niveau de connaissances Scrum d’un utilisateur.</li><li>Scrum Level II, le test pour les expérimentés.</li></ul><p>Attention !: Pour réviser et réussir ces tests,  il faudra avoir lu le Scrum Guide dont l’auteur est … Ken  Schwaber.</p><p>A noter que Scrum n’est plus agnostique et que des cours Scrum Developer purement .net ou purement Java sont au programme.</p><p>La prochaine rencontre se fera avec Scott Ambler, le 15 mars grâce à IBM. Je donnerai des informations précises dans le cadre des activités du SUG.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/02/02/ma-rencontre-avec-ken-schwaber/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>En aparté avec Jeff Sutherland</title><link>http://blog.xebia.fr/2010/02/01/en-aparte-avec-jeff-sutherland/</link> <comments>http://blog.xebia.fr/2010/02/01/en-aparte-avec-jeff-sutherland/#comments</comments> <pubDate>Mon, 01 Feb 2010 12:58:22 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3927</guid> <description><![CDATA[Xebia vous invite le mardi 09 février 2010 à une soirée en aparté avec Jeff Sutherland. Cette soirée se déroulera sur le modèle Birds of Feather (BoF) à partir de 19h00 dans nos locaux (156 Boulevard Haussmann à Paris). Elle sera l’occasion d’échanger directement avec Jeff Sutherland et de profiter de son expérience unique en [...]]]></description> <content:encoded><![CDATA[<p>Xebia vous invite le mardi 09 février 2010 à une soirée en aparté avec Jeff Sutherland.</p><p>Cette soirée se déroulera sur le modèle <a
href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_(computing)">Birds of Feather (BoF)</a> à partir de 19h00 dans nos locaux <em>(156 Boulevard Haussmann à Paris)</em>. Elle sera l’occasion d’<strong>échanger directement avec Jeff Sutherland</strong> et de profiter de son expérience unique en tant que père de la méthode ayant plus de 10 ans d’expérience sur Scrum.</p><p>Le même soir que le <a
href="http://blog.xebia.fr/2010/02/01/2eme-anniversaire-du-paris-jug/">deuxième anniversaire du Paris JUG</a> ? Oui, Jeff Sutherland passe rarement à Paris, nous aurions aimé que les événements ne se chevauchent pas mais nous n&#8217;avons pas trouvé d&#8217;autre solution. Donc nous sponsorisons la soirée anniversaire du JUG et nous organisons cet aparté avec Jeff Sutherland <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p><p>Le nombre de place étant limitées, merci de vous inscrire via le formulaire ci-après <em>(premiers arrivés, premiers servis)</em> :</p><div
id="usermessage5a" class="cf_info "></div><form
enctype="multipart/form-data" action="/tag/scrum/feed/#usermessage5a" method="post" class="cform" id="cforms5form"><fieldset
class="cf-fs1"><legend>En aparté avec Jeff Sutherland</legend><ol
class="cf-ol"><li
id="li-5-2"><label
for="cf5_field_2"><span>Votre nom</span></label><input
type="text" name="cf5_field_2" id="cf5_field_2" class="single fldrequired" value="" onfocus="clearField(this)" onblur="setField(this)"/><span
class="reqtxt">(obligatoire)</span></li><li
id="li-5-3"><label
for="cf5_field_3"><span>Votre prénom</span></label><input
type="text" name="cf5_field_3" id="cf5_field_3" class="single fldrequired" value="" onfocus="clearField(this)" onblur="setField(this)"/><span
class="reqtxt">(obligatoire)</span></li><li
id="li-5-4"><label
for="cf5_field_4"><span>Votre adresse email</span></label><input
type="text" name="cf5_field_4" id="cf5_field_4" class="single fldemail fldrequired" value="" onfocus="clearField(this)" onblur="setField(this)"/><span
class="emailreqtxt">(veuillez entrer une adresse email valide)</span></li><li
id="li-5-5"><label
for="cf5_field_5"><span>Votre site web</span></label><input
type="text" name="cf5_field_5" id="cf5_field_5" class="single" value="" onfocus="clearField(this)" onblur="setField(this)"/></li><li
id="li-5-6"><label
for="cf5_field_6"><span>Informations complémentaires</span></label><textarea cols="30" rows="8" name="cf5_field_6" id="cf5_field_6" class="area" onfocus="clearField(this)" onblur="setField(this)"></textarea></li><li
id="li-5-7"><label
for="cforms_captcha5" class="seccap"><span>Captcha anti-spam</span></label><input
type="text" name="cforms_captcha5" id="cforms_captcha5" class="secinput" value=""/><img
id="cf_captcha_img5" class="captcha" src="http://blog.xebia.fr/wp-content/plugins/cforms/cforms-captcha.php?ts=5&amp;c1=4&amp;c2=5&amp;ac=abcdefghijkmnpqrstuvwxyz23456789&amp;i=i&amp;w=115&amp;h=25&amp;c=000066&amp;l=000066&amp;f=font4.ttf&amp;a1=-12&amp;a2=12&amp;f1=17&amp;f2=19&amp;b=1.gif" alt=""/><a
title="reset captcha image" href="javascript:reset_captcha('5')"><img
class="captcha-reset" src="http://blog.xebia.fr/wp-content/plugins/cforms/images/spacer.gif" alt="Captcha"/></a></li></ol></fieldset><fieldset
class="cf_hidden"><legend>&nbsp;</legend> <input
type="hidden" name="cf_working5" id="cf_working5" value="Veuillez%20patienter%20..."/> <input
type="hidden" name="cf_failure5" id="cf_failure5" value="Certains%20champs%20obligatoires%20ne%20sont%20pas%20renseign%C3%A9s.%20Merci%20de%20les%20corriger."/> <input
type="hidden" name="cf_codeerr5" id="cf_codeerr5" value="Please%20double-check%20your%20verification%20code."/> <input
type="hidden" name="cf_customerr5" id="cf_customerr5" value="yyy"/> <input
type="hidden" name="cf_popup5" id="cf_popup5" value="nn"/></fieldset><p
class="cf-sb"><input
type="submit" name="sendbutton5" id="sendbutton5" class="sendbutton" value="Envoyez la demande" onclick="return cforms_validate('5', false)"/></p></form> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/02/01/en-aparte-avec-jeff-sutherland/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Formation certifiante ScrumMaster par Arlen Bankston</title><link>http://blog.xebia.fr/2010/01/27/formation-certifante-scrum-master-par-arlen-bankston/</link> <comments>http://blog.xebia.fr/2010/01/27/formation-certifante-scrum-master-par-arlen-bankston/#comments</comments> <pubDate>Wed, 27 Jan 2010 08:38:52 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3875</guid> <description><![CDATA[Xebia propose des formations certifiantes ScrumMaster animées par Arlen Bankston. Cette formation répondra, entre autres, aux questions suivantes : Comment planifier et faire des estimations avec Scrum ? Comment un chef de projet traditionnel devient-il un chef de projet agile ? Comment faire travailler l’analyste fonctionnel avec les équipes agiles ? Comment fonctionnent les reportings [...]]]></description> <content:encoded><![CDATA[<p>Xebia propose des formations certifiantes ScrumMaster animées par Arlen Bankston.</p><p>Cette formation répondra, entre autres, aux questions suivantes :</p><ul><li>Comment planifier et faire des estimations avec Scrum ?</li><li>Comment un chef de projet traditionnel devient-il un chef de projet agile ?</li><li>Comment faire travailler l’analyste fonctionnel avec les équipes agiles ?</li><li>Comment fonctionnent les reportings et les métriques avec Scrum ?</li><li>Comment travailler avec des équipes distribuées en Scrum ?</li><li>Comment savoir si un projet est compatible avec Scrum ?</li><li>Quels sont les outils principaux de Scrum ?</li><li>Comment s’assurer d’un résultat cohérent ?</li><li>Comment aménager la salle d’une équipe agile ?</li></ul><p>Arlen Bankston (Formateur ScrumMaster certifié et Lean Six Sigma Master Black Belt). La formation a lieu en anglais.<br
/> Arlen Bankston est un leader reconnu dans la mise en œuvre des méthodologies de management tel que Lean, Six Sigma, BPM mais aussi dans les processus de développement logiciel SCRUM et XP.<br
/> Arlen a mené avec succès des projets agiles d’envergure pour des entreprises telles que Capital One, T.Rowe Price, NBC Universal, Saudi Telecom, United States Army et Freddie Mac pour ne citer qu’elles.<br
/> Arlen est aussi le Vice Président de <a
href="http://www.lithespeed.com">LitheSpeed</a>, un cabinet international spécialisé dans la mise en place des techniques Lean et Six Sigma et des méthodologies Scrum et XP.</p><p>La prochaine session aura lieu les <strong>8 et 9 mars 2010</strong>.</p><p><a
href="http://www.xebia.fr/sites/default/files/formations-scrum-master-arlen-bankston.pdf">Télécharger le programme &gt;&gt;</a></p><p>Renseignements et inscriptions par mail : <a
href="mailto:info@xebia.fr">info@xebia.fr</a> ou en appelant le <strong>06 09 69 05 49</strong>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/27/formation-certifante-scrum-master-par-arlen-bankston/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Evénement exceptionnel avec Ken Schwaber le 26 janvier</title><link>http://blog.xebia.fr/2010/01/21/evenement-exceptionnel-avec-ken-schwaber-le-26-janvier/</link> <comments>http://blog.xebia.fr/2010/01/21/evenement-exceptionnel-avec-ken-schwaber-le-26-janvier/#comments</comments> <pubDate>Thu, 21 Jan 2010 15:28:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[French SUG]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3858</guid> <description><![CDATA[Ken Schwaber est de passage à Paris pour des formations Scrum les 25 et 26 janvier au Microsoft Technology Center à Issy. A cette occasion, le French Scrum User Group organise avec le concours de Microsoft, une rencontre avec Ken Schwaber, le co-créateur de Scrum le Mardi 26 Janvier 2010 à partir de 19h00. Inscriptions [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.scrumalliance.org/profiles/7-ken-schwaber">Ken Schwaber</a> est de passage à Paris pour des <a
href="http://www.scrum.org/">formations Scrum</a> les 25 et 26 janvier au <a
href="http://www.microsoft.com/france/apropos/microsoft-technology-center">Microsoft Technology Center à Issy</a>.</p><p>A cette occasion, le <a
href="http://www.frenchsug.org">French Scrum User Group</a> organise avec le concours de Microsoft, une rencontre avec Ken Schwaber, le co-créateur de Scrum le <strong>Mardi 26 Janvier 2010 à partir de 19h00</strong>.</p><p><a
href="https://msevents.microsoft.com/cui/eventdetail.aspx?eventid=1032440188&#038;culture=fr-fr&#038;lc=1036">Inscriptions et détails ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/21/evenement-exceptionnel-avec-ken-schwaber-le-26-janvier/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/</link> <comments>http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#comments</comments> <pubDate>Mon, 11 Jan 2010 18:42:21 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[bug 2010]]></category> <category><![CDATA[Drools]]></category> <category><![CDATA[IntelliJ IDEA]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3760</guid> <description><![CDATA[La revue de presse de l’actualitéava/J2EE hebdomadaire proposépar Xebia. Actualité éditeurs / SSII Sun publie JavaFX composer en &#171;&#160;early access&#160;&#187; IntelliJ Open Source : décryptage avec le &#171;&#160;The 451 Group&#160;&#187; Agilité Le problème avec les user stories Le coin de la technique Akka améliore encore la programmation parallèle en Scala Le bug de l&#8217;an 2000 [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l’actualitéava/J2EE hebdomadaire proposépar Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#SunpublieJavaFXcomposerenearly">Sun publie JavaFX composer en &laquo;&nbsp;early access&nbsp;&raquo;</a></li><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#IntelliJOpenSourcedcryptageave">IntelliJ Open Source : décryptage avec le &laquo;&nbsp;The 451 Group&nbsp;&raquo;</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#Leproblmeaveclesuserstories">Le problème avec les user stories</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#Akkaamlioreencorelaprogrammati">Akka améliore encore la programmation parallèle en Scala</a></li><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#Lebugdelanrefaitsurface">Le bug de l&#8217;an <strike>2000</strike> 2010 refait surface</a></li><li><a
href="http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/#SecureCodingGuidelinesfortheJa">Secure Coding Guidelines for the Java Programming Language, Version 3.0</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/2010/01/11/revue-de-presse-xebia-142/#DroolschezlesChtiJug">Drools chez les Ch&#8217;ti (Jug)</a></li></ul><p><em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SunpublieJavaFXcomposerenearly"></a>Sun publie JavaFX composer en &laquo;&nbsp;early access&nbsp;&raquo;</h4><p>Sun réalise deux RAD pour JavaFX, le premier cible les développeurs web et l&#8217;édition de contenu, le deuxième outil cible de son côté les développeurs Java. C&#8217;est ce deuxième outil que Sun publie sous le nom prometteur de JavaFX Composer. Ne vous attendez pas à un produit fini. Pour David Folk, il ne s&#8217;agit même pas d&#8217;une béta. Il faut voir cet outil comme une démonstration technique. Le but affiché est de permettre le développement d&#8217;application de type formulaire avec JavaFX. L&#8217;outil, maintenant disponible dans l&#8217;<em>update center</em> de Netbeans 6.8, fournit un éditeur graphique permettant de construire une interface graphique assez proche du gui builder de Netbeans.</p><p>Attention, s&#8217;il est possible de voir le source généré, l&#8217;édition en est pour le moment impossible. Les composants peuvent être liés à une source de données JDBC, HTTP(XML/JSON) et fichier.</p><p>L&#8217;outil fournit un bon aperçu de ce qui peut être fait avec JavaFX. Les limitations, bien qu&#8217;encore nombreuses, n&#8217;empêchent pas de jouer avec ladite technologie. Il est donc maintenant possible d&#8217;utiliser JavaFX pour faire des démos, ce qui donne un peu plus corps à la technologie. Sun continue les investissements dans son Flash killer, mais il a encore et toujours plusieurs trains de retard.</p><ul><li><a
title="Article sur infoQ" href="http://www.infoq.com/news/2010/01/jfx_composer">Article sur infoQ</a></li><li><a
title="Site de Netbeans" href="http://wwww.netbeans.org">Site de Netbeans</a></li></ul><h4><a
name="IntelliJOpenSourcedcryptageave"></a>IntelliJ Open Source : décryptage avec le &laquo;&nbsp;The 451 Group&nbsp;&raquo;</h4><p>Le cabinet spécialiste des modèles économiques Open Source a <a
title="interviewé Ann Oreshnikova" href="http://blogs.the451group.com/opensource/2010/01/07/the-thinking-behind-jetbrains-open-source-strategy/">interviewé Ann Oreshnikova</a>, directeur Marketing de <a
title="Jetbrains" href="http://www.jetbrains.com/">Jetbrains</a>, pour comprendre le nouveau modèle de l&#8217;environnement de développement Java <em>le plus sexy au monde</em>.</p><p>Jetbrains, initialement connu pour son environnement de développement <a
title="IntelliJ Idea" href="http://www.jetbrains.com/idea/">IntelliJ Idea</a>, a ces dernières années étoffé son <a
title="portfolio de produits" href="http://www.jetbrains.com/products.html">portfolio de produits</a> pour couvrir l&#8217;ensemble du cycle de développement. Les <em>javaistes</em> connaissent le serveur d&#8217;intégration continue <a
title="TeamCity" href="http://www.jetbrains.com/teamcity/">TeamCity</a>, le <em>bug tracking system</em> <a
title="YouTrack" href="http://www.jetbrains.com/youtrack/">YouTrack</a> mais il  existe aussi des outils PHP, Dot Net et Ruby.</p><p>Actuellement, Jetbrains compte 49 000 clients payants dont seulement 25 000 clients entreprise et 24 000 individuels. On peut autant s&#8217;étonner du faible nombre de clients entreprises que du fort ratio de clients individuels. Les professionnels sont convaincus de la plus value qu&#8217;apporte l&#8217;IDE mais les entreprises ne sont pas prêtes à <a
title="payer" href="http://www.jetbrains.com/idea/buy/index.jsp">payer</a> pour un IDE alors qu&#8217;Eclipse et Netbeans sont gratuits.</p><p>Pour augmenter ses parts de marché, Jetbrains a décidé de séduire ses clients avec une stratégie assez commune dans le monde logiciel : une version gratuite aux fonctionnalités restreintes. Il restait à décider si le code source était diffusé et, le cas échéant, sous quel contrat de license ? <em>Business Friendly</em> à la BSD/Apache ? <em>Business Unfriendly</em> à la GPL ? Les deux modèles sont éprouvés pour les environnements de développement. Eclipse a choisi le modèle business friendly et Netbeans le modèle business unfriendly.</p><p>Jetbrains, malgré le risque de voir d&#8217;autres acteurs monétiser son socle, a choisi de marcher dans les traces d&#8217;Eclipse en retenant la license Open Source business friendly d&#8217;Apache.</p><p>L&#8217;objectif de dynamiser la communauté autour d&#8217;Idea a été atteint, du moins à court terme, la version Open Source ayant été téléchargée des dizaines de milliers de fois.</p><p>La qualité et l&#8217;avant-gardisme d&#8217;Idea n&#8217;ont pas suffi à en assurer le succès commercial, souhaitons leur que le modèle dual Open Source / Commercial réussira.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Leproblmeaveclesuserstories"></a>Le problème avec les user stories</h4><p>Dans la méthode agile Scrum, les user stories spécifient de manière simple et concise les besoins du client à implémenter au cours des sprints. Elles permettent de faire l&#8217;interface entre celui-ci et l&#8217;équipe de réalisation.<br
/> Comme le souligne dans <a
title="son article" href="http://jamesgolick.com/2010/1/4/the-problem-with-user-stories.html">son article</a> James Golick, les user stories sont écrites avec des mots. Or, les mots peuvent porter à confusion et à différentes interprétations entre les différents acteurs. Lors d&#8217;un sprint demo, en voyant à l&#8217;écran l&#8217;implémentation de la story, il peut arriver que le client s&#8217;aperçoive que son besoin n&#8217;est pas complètement satisfait.Ces écarts sont alors corrigés dans les sprints suivants.</p><p>James Golick propose d&#8217;améliorer cela en réalisant d&#8217;abord des maquettes de l&#8217;interface. En visualisant directement l&#8217;interface et en naviguant dessus, le client est plus à même de se rendre vraiment compte si le développement correspond à son besoin. Cela implique la présence d&#8217;un designer sur le projet. Il ne précise pas comment serait intégrée la réalisation des interfaces dans le sprint, mais uniquement que la maquette soit réalisée avant la story.</p><p>Le maquettage ne remplace évidemment pas la story, mais serait un complément pour s&#8217;assurer que le besoin du client est bien aligné avec la vision qu&#8217;en a l&#8217;équipe. Et, cela peut aussi amener le client à ajuster ses stories grâce aux maquettes. Cette approche de maquettage n&#8217;est pas nouvelle et pourrait revenir sur le devant de la scène. On pense notamment à la solution <a
title="Flash Catalyst" href="http://labs.adobe.com/technologies/flashcatalyst/">Flash Catalyst</a> d&#8217;Adobe, qui fait beaucoup parler d&#8217;elle.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Akkaamlioreencorelaprogrammati"></a>Akka améliore encore la programmation parallèle en Scala</h4><p><a
title="Akka" href="http://doc.akkasource.org/">Akka</a>, qui vous permet d&#8217;écrire simplement et rapidement des applications concurrentes et scalables, est sorti début de semaine dernière en version 0.6 <em>(annonce sur le</em> <a
title="&lt;em&gt;Google Groups&lt;/em&gt;" href="http://groups.google.com/group/akka-user/browse_thread/thread/636e32af29e66b63"><em>Google Groups</em></a><em> <em>relayée par</em> </em><em><a
title="ScalaLang" href="http://www.scala-lang.org/node/4791">Scala-Lan</a><a
href="http://www.scala-lang.org/node/4791">g</a><span
style="font-style: normal;">). Pour rappel, Akka s&#8217;appuie sur le modèle d&#8217;acteurs Scala et est disponible à la fois en API Scala et Java.</span></em></p><p>De <a
title="nombreuses nouveauts" href="http://doc.akkasource.org/release-notes">nombreuses nouveautés</a> sont à noter dans cette nouvelle version, que ce soit l&#8217;ajout de nouveaux <em>add-ons</em> ou des corrections de bugs. On retiendra notamment :</p><ul><li>nouveaux modules de persistance : Redis, Cassandra et MongoDB ;</li><li>meilleure performance avec les acteurs Akka 2 à 3 fois plus rapide que les acteurs Scala ;</li><li>empreinte mémoire encore plus faible faisant que l&#8217;on peut faire tourner plus de 6 millions d&#8217;acteurs sur 4Gb de ram ;</li><li>Comet et <em>rest bindings</em> ;</li><li>nouveaux sérialiseur : SBinary, JSON&#8230; ;</li><li>intégration de <em>frameworks</em> divers et variés : Lift, Spring ou bien encore Guice.</li></ul><p>Si vous souhaitez approfondir le sujet, rien de mieux que <a
title="larticle sur JavaLobby" href="http://java.dzone.com/articles/introducing-akka-%E2%80%93-simpler">l&#8217;article sur JavaLobby</a> par l&#8217;auteur du framework, Jonas Boner.</p><h4><a
name="Lebugdelanrefaitsurface"></a>Le bug de l&#8217;an <span
style="text-decoration: line-through;">2000</span> 2010 refait surface</h4><p>Le Nouvel An passé, chacun a eu l&#8217;occasion de faire sa liste de bonnes résolutions. Vous-même, peut-être avez-vous ajouté au milieu des immanquables « j&#8217;arrête de fumer » ou « cette année, je me mets au sport », votre intention de vous mettre à tester vos applications. Mort aux : « je ne comprends pas ça marche sur mon poste ».</p><p>Tout cela pour dire que depuis début 2010, une multitude de bugs informatiques ont fait leur apparition. Vous avez probablement entendu les plus médiatiques d&#8217;entre eux : les <a
title="20 millions de cartes bancaires bloquées en Allemagne" href="http://www.lemonde.fr/economie/article/2010/01/07/cartes-bancaires-le-bug-de-2010-frappe-l-allemagne_1288628_3234.html">20 millions de cartes bancaires bloquées en Allemagne</a> ou l&#8217;impossibilité d&#8217;effectuer des mises à jour <a
title="sur lun des produits Symantec" href="http://www.zdnet.fr/actualites/informatique/0,39040745,39711987,00.htm">sur l&#8217;un des produits Symantec</a> depuis ce début 2010. C&#8217;est l&#8217;occasion de faire un tour rapide des problèmes rencontrés, et de leur principales causes :</p><p><strong>Année stockée sur un seul chiffre</strong></p><p>Premier problème, probablement le plus flagrant, certains programmes développés après l&#8217;an 2000 ont décidé de stocker leurs dates sur un seul caractère. Sont impactés principalement les projets dont la durée de vie n&#8217;était pas prévue pour passer ce cap. Les solutions temporaires ont tendance à devenir définitives <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p>En effectuant une recherche sur <a
title="Google Code" href="http://code.google.com/intl/fr-FR/search/#q=200%25d">Google Code</a>, en recherchant un simple pattern de type &#8217;200%d&#8217;, il est aisé de trouver plusieurs projets contenant ce bug.</p><p>Par exemple, SpamAssassin avait une règle permettant de marquer tous les <a
title="emails provenant du futur" href="https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6269">emails provenant du futur</a> comme spam, dans ce cas, la correction était simple :</p><pre class="brush: java; title: ; notranslate">
// ancienne expression régulière pour détecter le futur
/20[1-9][0-9]/
// correction, rendez=vous dans 10 ans <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
/20[2-9][0-9]/
</pre><p><strong>Ouf, on a corrigé le bug de l&#8217;an 2000 à temps !</strong></p><p>Deuxième catégorie de bugs, certains programmes ayant été fixés pour éviter le bug de l&#8217;an 2000 ont généré le bug de l&#8217;an 2010. Tout le monde connait ce bug, la majorité des dates étaient stockées sur 2 caractères. À l&#8217;époque, pressé par le temps, une correction rapide consistait à rajouter une règle pour identifier les années post 2000 des années 1900. Failed !</p><pre class="brush: java; title: ; notranslate">
// bug en 2010
int annee = (date &lt; 10 ? 2000 : 1900 ) + date ;
</pre><p><strong>Chiffres codés en BCD</strong></p><p>Plusieurs protocoles utilisés dans les banques et les télécommunications, dont le protocole utilisé pour les SMS, codent les années sur un seul octet en <a
title="BCD" href="http://fr.wikipedia.org/wiki/Binary_coded_decimal">BCD</a>.<br
/> En utilisant cet encodage, il est aisé de confondre les dates comprises entre 2000 et 2009, car leurs représentations sont identiques à leur encodage en binaire simple.<br
/> Ainsi, si 2009 s&#8217;écrit de la même façon en binaire simple qu&#8217;en BCD, 2010 s&#8217;écrit de deux manières différentes.<br
/> Il s&#8217;agit probablement de la cause du bug remonté en ce début d&#8217;année sur <a
title="Windows Mobile" href="http://www.journaldugeek.com/2010/01/04/windows-mobile-et-le-bug-de-lan-2016/">Windows Mobile</a>.</p><h4><a
name="SecureCodingGuidelinesfortheJa"></a>Secure Coding Guidelines for the Java Programming Language, Version 3.0</h4><p>Sean Mullan est ingénieur chez Sun, spécialisé dans tout ce qui touche à la sécurité sur la plateforme Java. Il <a
title="nous apprend" href="http://blogs.sun.com/mullan/entry/secure_coding_guidelines_for_the">nous apprend</a> que Sun met à notre disposition la version 3 du &laquo;&nbsp;Secure Coding Guidelines for the Java Programming Language&nbsp;&raquo;. Il nous semble qu&#8217;il est bon de rappeler l&#8217;existence de ce recueil de bonnes pratiques destiné à tout développeur soucieux de la qualité de son code.</p><p>L&#8217;article rappelle quelques règles bien connues comme par exemple le fait qu&#8217;il vaut mieux <a
title="éviter de construire soi-même ses requêtes SQL à la main " href="http://java.sun.com/security/seccodeguide.html#0-7a">éviter de construire soi-même ses requêtes SQL à la main </a> ou alors qu&#8217;il faut prendre ses précautions lors de l&#8217;utilisation de code externe (<a
title="JSR 223" href="http://java.sun.com/javase/6/docs/technotes/guides/scripting/index.html">JSR 223</a> ou XML par exemple). Mais il plonge aussi beaucoup plus profondément dans les entrailles de Java en explorant les problèmes liés aux objets (visibilité, héritage&#8230;), à la sérialisation et dé-sérialisation des données ainsi que les problèmes de contrôle d&#8217;accès.</p><p><a
title="Un exemple intressant" href="http://java.sun.com/security/seccodeguide.html#1-3">Un exemple intéressant</a> parmi d&#8217;autres est la manière dont on peut ouvrir un code aux attaques lors de l&#8217;utilisation de l&#8217;héritage: il suffit en effet que la classe parent déclare de nouvelles méthodes non prises en compte par la classe fille pour que celle-ci devienne ouverte aux attaques !</p><p>Moralité, assurer la sécurité de ses applications n&#8217;est pas une mince affaire et nous n&#8217;avons pas fini de <a
title="parler sécurité !" href="http://blog.xebia.fr/tag/securite/">parler sécurité !</a></p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="DroolschezlesChtiJug"></a>Drools chez les Ch&#8217;ti (Jug)</h4><p>Le 21 janvier à Lille, le Ch&#8217;ti JUG aura l&#8217;honneur de recevoir <a
title="Mark Proctor" href="http://markproctor.com/">Mark Proctor</a> et <a
title="Geoffrey De Smet" href="http://www.blogger.com/profile/10118333179703404539">Geoffrey De Smet</a> de JBoss. Mark est le project leader du projet <a
title="Drools" href="http://www.jboss.org/drools/">Drools</a>. Il vient d&#8217;être nommé directeur de <a
title="RuleML" href="http://ruleml.org/">RuleML</a>. Geoffrey est le créateur de <a
title="Drools Planner ou Drools Solver" href="http://www.jboss.org/drools/drools-solver.html">Drools Planner ou Drools Solver</a>. <a
title="La session se focalisera bien entendu sur Drools" href="http://chtijug.org/rendez-vous-le-21-janvier-drools-avec-cylande-et-luniversite-de-lille-1/">La session se focalisera bien entendu sur Drools</a>.</p><p>Pour les personnes qui sont totalement étrangères à ces problématiques, voici deux articles que nous avons rédigé récemment et qui vous aideront à vous plonger dans cette session :</p><ul><li><a
title="Le pattern Specification pour la gestion de vos rgles mtier" href="http://blog.xebia.fr/2009/12/29/le-pattern-specification-pour-la-gestion-de-vos-regles-metier/">Le pattern Specification pour la gestion de vos règles métier</a></li><li><a
title="Drools et les moteurs de rgles" href="http://blog.xebia.fr/2010/01/08/drools-et-les-moteurs-de-regles/">Drools et les moteurs de règles</a></li></ul><p>En attendant avec impatience le compte rendu de ce JUG, belle initiative !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/11/revue-de-presse-xebia-142/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
