<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://bodysplash.fr/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>BodySplash.fr</title>
  <link>http://bodysplash.fr/</link>
  <atom:link href="http://bodysplash.fr:82/feed/rss2" rel="self" type="application/rss+xml"/>
  <description>Un blog professionnel de plus parlant de développement, d'agilité, de langages et de discipline.</description>
  <language>fr</language>
  <pubDate>Thu, 09 May 2013 15:36:24 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Fermeture des portes</title>
    <link>http://bodysplash.fr/post/2011/08/02/Fermeture-des-portes</link>
    <guid isPermaLink="false">urn:md5:ebacd26bc5e5dad29d517097167bbbe3</guid>
    <pubDate>Tue, 02 Aug 2011 15:53:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
            
    <description>    &lt;p&gt;Je fais ce billet rapidement pour officialiser une décision que j'ai prise
sans m'en rendre compte depuis pas mal de temps :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Jusqu'à nouvel ordre, je ne bloguerai plus sur ce site, mais sur celui
&lt;a href=&quot;http://www.arpinum.fr&quot;&gt;d'Arpinum&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Ce n'est donc pas un au revoir déchirant, mais juste une invitation à ce qui
ne s'en étaient pas rendu compte de mettre à jour leurs aggrégateurs. Le site
reste bien sur ouvert, car même si j'ai un peu honte de certains vieux billets,
je ne veux pas qu'ils disparaissent. De plus, je n'exclue pas un jour de
reprendre la plume ici.&lt;/p&gt;
&lt;p&gt;A bientôt sur Arpinum.fr !&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2011/08/02/Fermeture-des-portes#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2011/08/02/Fermeture-des-portes#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/626994</wfw:commentRss>
      </item>
    
  <item>
    <title>Bilan Agile Tour Bordeaux 2010</title>
    <link>http://bodysplash.fr/post/2010/11/20/Bilan-Agile-Tour-Bordeaux-2010</link>
    <guid isPermaLink="false">urn:md5:7ad4746ec534cff12103c9f33bb76bd3</guid>
    <pubDate>Sat, 20 Nov 2010 19:35:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
        <category>Agile tour</category><category>agilité</category>    
    <description>    &lt;p&gt;Je m'y prend bien tard, mais je me colle enfin à faire mon petit bilan de
l'agile tour bordeaux, en tant qu'organisateur/orateur/spectateur. Je le fais
bien sûr uniquement car je ne peux décemment pas faire mon retour sur l'Agile
Tour Toulouse avant celui de Bordeaux &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bodysplash.fr/public/at2010/.city_11_s.jpg&quot; alt=&quot;city_11.jpg&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;city_11.jpg, sept. 2010&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Organisateur&lt;/h3&gt;
&lt;p&gt;Le fait de nous y prendre très en avance ne nous a pas vraiment empêché de
frôler plusieurs fois la catastrophe &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Le programme a été très dur à monter : mélanger des sessions d'1h30,
d'1h et 2h, c'était vraiment un sacré casse tête si on ne veut pas forcer les
gens à rester dans la même salle toute la journée. Du coup, nous avons du
mettre en concurrences certaines sessions que nous aurions préféré pouvoir
proposé en suivant. Je pense qu'il va falloir que l'on revienne à un format
plus homogène. Trouver un équilibre dans le niveau des sessions est également
toujours un beau défis, mais l'agilité étant fondamentalement simple à
apprendre mais excessivement difficile à digérer, je ne pense pas que l'on
puisse vraiment proposer des sessions soit disant &amp;quot;pour experts&amp;quot;. Soit on a la
culture agile, et donc on sait que tout au plus, on va trouver à l'agile tour
des pistes à creuser, soit on est au début du chemin, et dans ce cas l'agile
tour va tenter d'insuffler les prémices de cet état d'esprit. L'Agilité
s'acquiert sur une longue durée, et une journée comme l'Agile Tour ne peut en
aucun cas remplacer un travail d'expérimentation et d'apprentissage de longue
haleine.&lt;/p&gt;
&lt;p&gt;Nous avons eu pas mal de demandes de sponsoring comme ça s'est vu. Je tiens
bien à souligner que nous avons gardé une indépendance totale vis à vis d'eux:
être sponsor ne donnait en aucun cas le droit de faire pression d'une
quelconque manière sur le contenu de la journée. Le soucis du coup a plus été
l'effet défilé pendant le mot du matin, nous verrons bien comment régler le
soucis la prochaine fois.&lt;/p&gt;
&lt;h3&gt;Orateur&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://bodysplash.fr/public/at2010/.at2010speaker_s.jpg&quot; alt=&quot;at2010speaker.jpg&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;at2010speaker.jpg, nov. 2010&quot; /&gt;Je suis assez satisfait du retour d'expérience
que Michael et moi avons animé. J'ai déjà écrit un retour à ce sujet sur le
&lt;a href=&quot;http://www.arpinum.fr/post/2010/10/13/L-agilit%C3%A9-sans-concession&quot; hreflang=&quot;fr&quot;&gt;blog d'Arpinum&lt;/a&gt;, je ne vais pas trop y revenir. La difficulté
tenait dans l'angle à adopter pour ce retour, car résumer 3 ans en 1h n'est
vraiment pas évident. La vidéo, scindée en deux parties, est disponible avec
les autres &lt;a href=&quot;http://www.vcasmo.com/tag/Agile%20Tour%20Bordeaux%202010&quot;&gt;sur vcasmo&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Spectateur&lt;/h3&gt;
&lt;p&gt;Comme on peut s'en douter, je n'ai pu voir voir grand chose, ce qui est
excessivement frustrant. J'ai tout de même eu l'occasion d'entamer quelques
conversations intéressantes, même si parfois un peu écourtées.&lt;/p&gt;
&lt;h4&gt;Kata marrant, par la paire Gaillot/Perret :&lt;/h4&gt;
&lt;p&gt;Je ne pensais pas pouvoir autant rire devant un kata. J'ai eu littéralement
mal aux côtes en les regardant. Il est juste dommage qu'il y eu une grosse
baisse de régime au bout d'un certain temps, mais dans l'ensemble, c'était
juste énorme. L'idée était donc de jouer un kata classique, mais y ajoutant
toutes les 5 minutes des contraintes inventées par le public en les piochant au
hasard. Cela a entrainé des moments épiques que j'aurais vraiment du mal à
décrire correctement ici. Le reproche qui a été fait à cette session est que
passé le côté fun, finalement elle ne servait à rien : impossible de
convaincre un timide du tdd de se mettre à l'utiliser, et les vieux routiers
ont bien ri mais n'ont rien appris. Personnellement, je ne suis pas d'accord.
Déjà, il se trouve que si, une personne dans la salle a découvert le TDD par
cette session, et a été bluffée. Ensuite, cette session je trouve a servi d'une
sorte de piqure de rappel : il FAUT s'amuser en travaillant. L'opposé du
travail n'est pas le jeu, mais l'oisiveté. S'amuser en travaillant est
indispensable pour le rendre intéressant, et par la même nous permettre d'être
plus productif, plus créatif et nous faire prendre le recul nécessaire à mieux
appréhender les situations. L'auto-dérision, la curiosité et le&lt;/p&gt;
&lt;h4&gt;Stubs et mocks montent sur scène :&lt;/h4&gt;
&lt;p&gt;Voilà un atelier original animé par le très toulousain &lt;a href=&quot;http://agilitateur.azeau.com/&quot; hreflang=&quot;fr&quot;&gt;Olivier Azeau&lt;/a&gt;. L'idée est de
faire jouer les différents composants intervenant dans un développement piloté
par les tests par des personnes réels, permettant ainsi de mieux mettre en
évidence leurs rôles, interactions et motivations. Honnêtement, je n'ai jamais
attaché une grande importance à faire la différence entre les différents
doubles de tests, et cette session m'a inculqué ce savoir sans douleur.&lt;/p&gt;
&lt;h3&gt;Bref&lt;/h3&gt;
&lt;p&gt;Et, voilà tout ce que j'ai pu voir. Le reste du temps, j'étais soit à
l'accueil, soit en train de discuter avec quelques personnes, ce qui est
d'ailleurs également un format fort intéressant. Cela me fait dire d'ailleurs
que l'année prochaine il faudra vraiment que j'aille faire un tour à l'Open
Space.&lt;/p&gt;
&lt;p&gt;Je garde une bonne impression de cette journée : pas mal de monde, un
beau lieu, des conférences que j'aurai toutes eu envi de voir, des
conversations intéressantes et des gens sympas. L'Agile Tour est toujours
l'occasion de croiser pas mal de monde que je ne vois pratiquement que là,
comme la très sympathique équipe toulousaine qui je l'espère se reconnaitra &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;
. Nous allons bien sûr réfléchir à comment améliorer encore l'expérience
l'année prochaine, et tous les retours sont les bienvenues à ce sujet là.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/11/20/Bilan-Agile-Tour-Bordeaux-2010#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/11/20/Bilan-Agile-Tour-Bordeaux-2010#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/564032</wfw:commentRss>
      </item>
    
  <item>
    <title>Frameworks productifs</title>
    <link>http://bodysplash.fr/post/2010/09/17/Frameworks-productifs</link>
    <guid isPermaLink="false">urn:md5:4b24c98f5ac4dfcf10c906882b83a15f</guid>
    <pubDate>Fri, 17 Sep 2010 18:24:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Code</category>
        <category>agilité</category><category>DDD</category><category>Domain Driven Design</category><category>ruby</category>    
    <description>    &lt;p&gt;J'aimerai ici faire un billet pour faire une petite mise au point. Les
frameworks &amp;quot;productifs&amp;quot; type RoR, Grails, Play! et j'en passe ont clairement le
vent en poupe. L'idée au combien louable, est bien sûr d'automatiser au maximum
les tâches rébarbatives du développeur lorsqu'il s'attaque à une application
web. J'imagine que toute cette mouvance a pu naître d'un écoeurement bien
naturel vis à vis des piles ou frameworks plus anciens, comme Struts, toute la
pile JEE et même ASP.NET avec ses bons vieux WebForm.&lt;/p&gt;
&lt;p&gt;Ce qui me chagrine dans l'histoire, c'est que philosophiquement, je suis de
tout coeur derrière ces idées de simplifications : je n'ai jamais pu
encadrer le xml au kilomètre de Spring à l'époque, les Web Form me faisaient
faire des cauchemars tant leur opacité était grande et je n'ai jamais été pour
une multiplication des couches sans une grande nécessité.&lt;/p&gt;
&lt;p&gt;Ceci dit, ne jetons pas le bébé avec l'eau du bain. Je m'explique. Pour
paraphraser Eric Evans dans &lt;a href=&quot;http://books.google.fr/books?id=7dlaMs0SECsC&amp;amp;lpg=PP1&amp;amp;dq=domain%20driven%20design&amp;amp;pg=PP1#v=onepage&amp;amp;q&amp;amp;f=false&quot;&gt;
DDD&lt;/a&gt;, la complexité d'une application réside dans le métier qu'elle tente de
représenter. Comment cela se traduit? Pour moi, cela veut dire que quelque soit
les frameworks que j'utilise, ils ne devront jamais entamer ma capacité à
modéliser le métier. Le succès, la richesse et l'efficacité de mon application
dépendent essentiellement de ma capacité à capter la subtilité du métier.
Comment mettre le maximum de chance de mon côté? En développant le modèle en
isolation de tout autre considération, à l'aide d'une approche objet, d'un bon
framework de tests unitaires et de bons outils de refactoring. La présentation,
la persistence, le cache, tout le reste est superflu et doit le moins possible,
voir pas du tout, impacter mon domaine.&lt;/p&gt;
&lt;p&gt;Bref, après autant de blabla, voilà donc enfin ce qui me chagrine dans ce
que j'ai pu voir des quelques frameworks productifs que j'ai essayé : ils
sont invasifs. Le choix d'Active Record pour la persistance est une friction
dans le développement du métier, car la persistance n'est alors plus
transparente. Pour respecter le principe de responsabilité unique, vu que les
&amp;quot;entités&amp;quot; gèrent la persistance, nous devons développer les véritables objets
métier à part, et ils doivent agréger alors ces entités. Cela implique une
complexification non négligeable du développement du domaine. Du coup, beaucoup
des exemples que j'ai pu observer se contentent de montrer une application
CRUD, avec un métier anémique contenu dans les contrôleurs, mais aucune
application n'est réellement du CRUD au final.&lt;/p&gt;
&lt;p&gt;La véritable productivité est liée à la maintenabilité, et la maintenabilité
est très liée à l'isolation du métier (et aux tests bien sûr &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; ). Oui du coup,
avec cette philosophie en tête sur &lt;a href=&quot;http://www.tiron.fr&quot;&gt;Tiron&lt;/a&gt;,
nous n'avons pas choisi un de ces beaux frameworks à la mode, et nous avons du
construire notre propre pile (jQuery/Restlet/Freemarker/Hibernate pour les
curieux), et je pense que notre productivité actuelle en considérant la
complexité du métier que nous devons gérer n'a pas à pâlir face à la
concurrence.&lt;/p&gt;
&lt;p&gt;P.S : je ne suis pas un expert de ces frameworks je l'avoue. Si
quelqu'un peut me démontrer le contraire de ce que j'avance, j'en serai très
heureux.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/09/17/Frameworks-productifs#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/09/17/Frameworks-productifs#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/546873</wfw:commentRss>
      </item>
    
  <item>
    <title>Agile Tour 2010 Bordeaux</title>
    <link>http://bodysplash.fr/post/2010/09/17/Agile-Tour-2010-Bordeaux</link>
    <guid isPermaLink="false">urn:md5:86be476e7437b99354209e74ce6fdff1</guid>
    <pubDate>Fri, 17 Sep 2010 09:30:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://bodysplash.fr/public/at2010/city_11.jpg&quot; alt=&quot;city_11.jpg&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;city_11.jpg, sept. 2010&quot; /&gt;Vous le
savez sans doute déjà, mais cette année j'ai rempilé pour l'organisation de
&lt;a href=&quot;http://www.agiletour.org/fr/at2010_bordeaux.html&quot;&gt;l'étape
bordelais&lt;/a&gt; de l'Agile Tour.&lt;/p&gt;
&lt;p&gt;Comme il est indiqué sur le site, l'évènement aura lieu le 7 octobre dans
les locaux de &lt;a href=&quot;http://www.enseirb.fr/&quot;&gt;l'ENSEIRB&lt;/a&gt;. &lt;a href=&quot;http://www.agiletour.org/fr/bordeaux_programmation.html&quot;&gt;Au programme&lt;/a&gt;, il
y a un peu de tout, et j'espère que nous avons réussi cet équilibre difficile
entre sessions techniques et sessions plus généralistes. Je vous laisse
regarder ça et faire votre marché.&lt;/p&gt;
&lt;p&gt;Enfin, n'oubliez pas que comme l'année dernière, même si l'inscription est
gratuite, elle n'en est pas moins obligatoire pour nous aider à mieux préparer
la journée. Donc, &lt;a href=&quot;http://www.agiletour.org/fr/bordeaux_registration.html&quot;&gt;inscrivez-vous&lt;/a&gt;
&lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/09/17/Agile-Tour-2010-Bordeaux#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/09/17/Agile-Tour-2010-Bordeaux#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/546760</wfw:commentRss>
      </item>
    
  <item>
    <title>Le secret de la productivité</title>
    <link>http://bodysplash.fr/post/2010/06/09/Le-secret-de-la-productivit%C3%A9</link>
    <guid isPermaLink="false">urn:md5:46b81670ceb5d0fb08167269f5690f03</guid>
    <pubDate>Wed, 09 Jun 2010 14:20:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Code</category>
        <category>eclipse</category><category>tdd</category><category>test driven development</category>    
    <description>    &lt;p&gt;Je vais peut être enfoncer une porte ouverte pour certains, mais j'ai envi
de parler du secret si bien gardé par les grands professionnels pour être
productif avec un IDE : les raccourcis clavier! Oui, c'est ironique, mais
l'année dernière lors de la session TDD, et plus récemment suite à d'autres
retours, j'ai été assez étonné des remarques du genre &amp;quot;ah je ne savais pas
qu'on pouvait faire tout ça avec Eclipse&amp;quot;. Un des intérêts premiers d'un IDE
est tout de même de nous aider à faire les tâches de base du
développement :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;autocomplétion&lt;/li&gt;
&lt;li&gt;refactoring&lt;/li&gt;
&lt;li&gt;exécution des tests&lt;/li&gt;
&lt;li&gt;navigation facile dans les sources&lt;/li&gt;
&lt;li&gt;assistance contextuelle&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Oui, je ne met pas sciemment tout ce qui est éditeurs WYSISYG, car leur
utilité est finalement assez anecdotique et bien souvent alourdissent les IDE
pour rien tout en étant pas si productif que ça. Ils sont d'ailleurs peut être
la cause majeure qui fait que pas mal de gens n'aiment pas les IDE. Ceci dit
étant dit, même si la plupart des fonctionnalités citées plus haut sont
accessibles par la souris, leur usage ne devient systématique et efficace à mon
avis que si on les associe à des raccourcis claviers.&lt;/p&gt;
&lt;p&gt;Prenons un petit cas d'exemple. Imaginons que j'ai écrit un test ressemblant
à ça (désolé, je ne me suis toujours pas motivé pour mettre en place une
coloration syntaxique sur ce blog):&lt;/p&gt;
&lt;pre&gt;
@test
public void peutRécupérerNomComplet() {
    Client client = new Client();

    assertThat(client.nomComplet(), is(&amp;quot;prenom nom&amp;quot;);
}
&lt;/pre&gt;
&lt;p&gt;au plus simple, le code pour faire passer ce test est le suivant :&lt;/p&gt;
&lt;pre&gt;

public String nomComplet() {
   return &amp;quot;prenom nom&amp;quot;;
}

&lt;/pre&gt;
&lt;p&gt;Cette méthode est un appel au refactoring, car il y a duplication entre la
méthode de test et la méthode de production (la constante est répétée). Je vais
peut être vite en besogne, mais nous devons alors faire apparaître du coup le
nom et le prénom. Pour éviter d'être verbeux plus longtemps, voici une petite
vidéo pour montrer comment je m'y prend en m'appuyant sur les capacités
d'Eclipse:&lt;/p&gt;
&lt;object id=&quot;scPlayer&quot; width=&quot;504&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://content.screencast.com/users/BodySplash/folders/Jing/media/96bf6b9c-13e6-4c62-87b2-084f80e70a64/jingswfplayer.swf&quot; /&gt;
&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;
&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;
&lt;param name=&quot;flashVars&quot; value=&quot;thumb=http://content.screencast.com/users/BodySplash/folders/Jing/media/96bf6b9c-13e6-4c62-87b2-084f80e70a64/FirstFrame.jpg&amp;amp;containerwidth=504&amp;amp;containerheight=355&amp;amp;content=http://content.screencast.com/users/BodySplash/folders/Jing/media/96bf6b9c-13e6-4c62-87b2-084f80e70a64/00000041.swf&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;scale&quot; value=&quot;showall&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;
&lt;param name=&quot;base&quot; value=&quot;http://content.screencast.com/users/BodySplash/folders/Jing/media/96bf6b9c-13e6-4c62-87b2-084f80e70a64/&quot; /&gt;
&lt;/object&gt;
&lt;p&gt;(Si jamais la vidéo ne s'affiche pas, vous pouvez toujours allez directement
&lt;a href=&quot;http://www.screencast.com/t/MGNhM2M5&quot;&gt;ici&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Il y a bien sûr plusieurs chemins pour arriver au même résultat, mais
j'espère que si vous n'utilisez pas souvent les raccourcis clavier, les
refactorings ou les aides à la génération alors cette vidéo vous aura convaincu
d'essayer de vous y mettre un peu plus. Beaucoup de développeurs reprochent
aussi aux IDE leur lourdeur. C'est parfois justifié (je ne citerai personne),
mais dans cette vidéo, avez-vous vous eu l'impression qu'Eclipse était lent et
se mettait sur mon chemin?&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/06/09/Le-secret-de-la-productivit%C3%A9#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/06/09/Le-secret-de-la-productivit%C3%A9#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/525667</wfw:commentRss>
      </item>
    
  <item>
    <title>Blog Arpinum</title>
    <link>http://bodysplash.fr/post/2010/06/02/Blog-Arpinum</link>
    <guid isPermaLink="false">urn:md5:e470bc03c17ede1e7eb5d254f380aec1</guid>
    <pubDate>Wed, 02 Jun 2010 14:36:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Le projet</category>
            
    <description>    &lt;p&gt;Nous avons à peu prêt fini de bricoler &lt;a href=&quot;http://www.arpinum.fr&quot;&gt;un
site pour Arpinum&lt;/a&gt;, la société que nous avons créé pour éditer &lt;a href=&quot;http://www.tiron.fr&quot;&gt;Tiron&lt;/a&gt;. Pourquoi est-ce je vous en parle? Et bien car
ce site est finalement essentiellement un blog, et il y a de fortes
probabilités pour mes futurs billets soient essentiellement publiés chez
Arpinum plutôt ici. C'est d'ailleurs déjà le cas pour &lt;a href=&quot;http://www.arpinum.fr/post/2010/04/26/Internet-Explorer-6&quot;&gt;mon billet&lt;/a&gt;
concernant le support d'IE6.&lt;/p&gt;
&lt;p&gt;Je ne sais pas encore très bien si je dois faire du double post, ou bien
signaler ici la publication de nouveaux articles, mais en attendant, si vous
êtes toujours intéressés par mes propos et ceux de mes &lt;a href=&quot;http://www.arpinum.fr/pages/Equipe&quot;&gt;collègues&lt;/a&gt;, je vous conseille de mettre
à jour votre lecteur de flux rss préféré.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/06/02/Blog-Arpinum#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/06/02/Blog-Arpinum#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/523888</wfw:commentRss>
      </item>
    
  <item>
    <title>Tiron</title>
    <link>http://bodysplash.fr/post/2010/03/17/Tiron</link>
    <guid isPermaLink="false">urn:md5:493873e43554c39a103e07f5755df995</guid>
    <pubDate>Wed, 17 Mar 2010 12:42:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Le projet</category>
        <category>agilité</category><category>Extreme Programming</category><category>XP</category>    
    <description>    &lt;p&gt;Je ne l'ai peut-être pas encore assez crié sur tous les toits, mais &lt;a href=&quot;http://www.tiron.fr&quot;&gt;Tiron&lt;/a&gt; est sorti dans sa première version publique.
Plus besoin de parler Du Projet, je peux maintenant officiellement l'appeler
Tiron, même si le mot avait déjà du m'échapper. Ceci n'est bien entendu pas la
fin, finalement en terme de rythme de développement, ça ne change pas grand
chose pour nous, modulo bien entendu certaines nouvelles tâches très marranteS
comme maintenir le site de présentation, faire le support et déployer la nuit.
A ça bien sûr il faut ajouter les joies du marketing et de la communication,
car c'est bien d'avoir un bon produit, mais c'est mieux si tout le monde le
sait. &lt;a href=&quot;http://www.tiron.fr&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/tiron_logo.png&quot; alt=&quot;logo tiron&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;logo tiron, mar. 2010&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Si vous avez suivi un peu ce blog, vous savez sans doute qu'un des objectifs
premiers, avant même de penser à une exploitation commerciale, était de mieux
nous former à l'agilité, et à XP en particulier. Et oui, il a plus de deux ans
maintenant nous n'étions pas les extrémistes que nous sommes aujourd'hui. Même
si nous avions déjà acquis un certain nombre de pratiques d'ingénieries, il
nous manquait beaucoup du second côté de la pièce : la gestion du projet
et la planification. On peut dire que de ce point de vue, l'objectif de Tiron
est pleinement atteint. Nous avons non seulement très largement consolidés nos
pratiques, mais nous avons également énormément appris sur la planification et
la négociation avec le product owner. La particularité bien entendu du rythme
de développement était que nous ne travaillons tous ensemble que deux
demi-journées par semaine, et ce mode particulier a bien entendu beaucoup
influencé Tiron. Tout d'abord, car le temps était très précieux, donc la
priorisation par la valeur et toujours faire le plus simple qui fonctionne a
été cruciale pour sortir quelque chose dans un temps raisonnable; ensuite nous
avions du coup énormément de temps pour réfléchir sur nos décisions, ce qui
n'était pas toujours un avantage d'ailleurs. Maintenant que nous avons une
démarche commerciale, cette agilité sans concession nous fournit certains
avantages sur la concurrence. Nous sommes réactifs, il n'y a moins de
gaspillage (globalement toutes les fonctionnalités sont utilisées), et nos
coûts de développement et d'exploitation sont inférieures nous permettant de
pratiquent un prix plus attractif. &lt;img src=&quot;http://bodysplash.fr/public/.screen1_t.jpg&quot; alt=&quot;screen1.png&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;screen1.png, mar. 2010&quot; /&gt;&lt;/p&gt;
&lt;p&gt;La nouvelle grande difficulté maintenant est que l'équipe est seulement
partiellement à temps plein, et synchroniser le travail fait &amp;quot;le soir&amp;quot; et le
travail de la journée est assez épineux, sans compter les soucis de rythme
soutenable et de diffusion de la connaissance.&lt;/p&gt;
&lt;p&gt;Pour conclure, bien sûr nous attendons de voir le succès que va remporter
notre logiciel, mais l'agilité est clairement ce qui nous a permis de sortir un
produit de qualité, concurrentiel et dans un délais raisonnable par rapport au
temps que nous avions. Je pense que c'est un bon début de preuve empirique pour
dire que rien n'est utopique, que non l'agilité et XP en particulier ne sont
pas un ensemble de pratique ou l'en prend ce que l'on veut : l'agilité
fonctionne vraiment à son plein potentiel que par la synergie de l'ensemble de
ses pratiques, et bien entendu par les valeurs de ce qui la pratique.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/03/17/Tiron#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/03/17/Tiron#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/500213</wfw:commentRss>
      </item>
    
  <item>
    <title>Redécouvrir JavaScript</title>
    <link>http://bodysplash.fr/post/2010/03/06/Red%C3%A9couvrir-JavaScript</link>
    <guid isPermaLink="false">urn:md5:5c486db2ded88c9043756c56e7fed102</guid>
    <pubDate>Sat, 06 Mar 2010 20:49:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Code</category>
        <category>REST</category><category>ROA</category><category>tdd</category><category>test driven development</category>    
    <description>    &lt;p&gt;Comme beaucoup de monde, j'avais une certaine aversion pour JavaScript. Ces
derniers mois m'ont permis de remettre un peu en perspective pas mal de mes
anciennes croyances. Vous allez sans doute me demandez comment la magie
à-t-elle opérer (ou pas)? Et bien en fait assez simplement à partir du moment
qu'on décide de lui donner sa chance, et d'arrêter de se contenter de hacker
quelques bouts copiés/collés à droite à gauche. Voici en tout cas pour moi les
grands points qui m'ont permis non pas de devenir un expert, mais de pouvoir
m'en servir sans hurler à la mort :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Le plus gros manque finalement au départ de javascript, c'est un framework
de base livré avec l'engin. Sans ça, on a l'impression de réinventer 100 fois
la roue, et de perdre pas mal de temps à faire la même chose. Le premier
conseil est donc d'utiliser une des fantastiques librairies qui vivent dans le
coin. Leur philosophie peut varier, donc méfiance, mais je préfère
personnellement m'appuyer sur &lt;a href=&quot;http://www.jquery.com&quot;&gt;jQuery&lt;/a&gt;, car
je le qualifierai bien de plus simple qui fonctionne. Il est malgré tout à la
fois très puissant et extensible à souhait. Je dois avouer que du coup je n'ai
pas trop essayé la concurrence qui en comparaison semblait bien plus
complexe.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Il faut se rendre compte que JavaScript est un vrai langage, avec son
propre paradigme, et qu'il ne sert donc à rien de tenter de ramener toutes ses
habitudes de nos langages favoris (java, c#, python ruby, choisissez celui qui
vous fait plaisir). Comprendre ce qui se passe et les quelques concepts de base
qui animent le langage fait déjà beaucoup pour commencer à l'apprécier. C'est
pour cette raison par exemple que encore une fois je préfére &lt;a href=&quot;http://www.jquery.com&quot;&gt;jQuery&lt;/a&gt; à &lt;a href=&quot;http://www.prototypejs.org/&quot;&gt;prototype&lt;/a&gt;, car il n'essaye pas d'ajouter un
support &amp;quot;classique&amp;quot; de l'orienté objet au langage, il lui demande juste d'être
lui même, naturellement. J'aimerais bien vous conseiller un bon tutorial sur le
sujet, mais hélas j'ai appris tout ça &lt;a href=&quot;http://www.amazon.fr/JavaScript-pour-Web-Thierry-Templier/dp/2212120095/ref=pd_sim_eb_34&quot;&gt;
dans&lt;/a&gt; deux &lt;a href=&quot;http://www.amazon.fr/Jquery-Action-Bear-Bibeault/dp/1935182323/ref=sr_1_2?ie=UTF8&amp;amp;s=english-books&amp;amp;qid=1267959424&amp;amp;sr=8-2&quot;&gt;
bouquins&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Le conseil bateau maintenant, il faut s'abstraire le plus possible du
navigateur en utilisant une bonne librairie : ça recoupe en grande partie
le premier point, mais c'est surement le soucis qui retient beaucoup de monde à
apprendre Javascript. jQuery fait un boulot fantastique pour faire oublier là
plupart des soucis de compatibilité, même s'il reste bien entendu quelques
problèmes à droite à gauche.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Enfin, mais sans doute le point plus important, les bonnes pratiques de
programmation ne sont pas à jeter tout simplement car on se trouve côté
navigateur. Il n'y a pas de secret, le seul moyen de vraiment tirer partie de
javascript est d'appliquer les bonnes pratiques, DRY et TDD en tête de liste.
Il existe quelques frameworks de tests unitaires en javascript, même si rien
n'est parfait bien entendu pour le moment dans ce domaine, surtout lorsqu'il
s'agit de les faire tourner automatiquement pendant l'intégration. TDD
fonctionne bien en javascript encore une fois du moment qu'on essaye de pas de
tordre le langage dans un orienté objet &amp;quot;classique&amp;quot;. Pour reparler, encore, de
jQuery, développer ses fonctionnalités sous la forme de plugin pour ce dernier
les rend incroyablement plus testable et réutilisable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ma conclusion finalement serait qu'il y a encore quelques mois, je lorgnais
beaucoup du côté &lt;a href=&quot;http://code.google.com/intl/fr-FR/webtoolkit/&quot;&gt;GWT&lt;/a&gt; pour les mauvaises
raisons : la peur de javascript. Paradoxalement, avoir adopté ces derniers
mois &lt;a href=&quot;http://www.restlet.org&quot;&gt;Restlet&lt;/a&gt;, &lt;a href=&quot;http://www.freemarker.org&quot;&gt;freemarker&lt;/a&gt; et jQuery a beaucoup simplifié le
développement que les quelques essais avortés avec GWT. Le plaisir des choses
simples il faut croire &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Ces framework sont solubles dans une approche
&lt;a href=&quot;http://en.wikipedia.org/wiki/Resource_oriented_architecture&quot;&gt;ROA&lt;/a&gt;
là ou GWT l'est beaucoup moins.&lt;/p&gt;
&lt;p&gt;Pour aller plus loin, javascript commence même à envahir la programmation
côté serveur grâce aux deux initiatives &lt;a href=&quot;http://commonjs.org&quot;&gt;CommonJs&lt;/a&gt; et &lt;a href=&quot;http://nodejs.org/&quot;&gt;Node.js&lt;/a&gt;.
Il y a un bon article sur le sujet dans le &lt;a href=&quot;http://www.pragprog.com/magazines&quot;&gt;pragpub&lt;/a&gt; de ce &lt;a href=&quot;http://www.pragprog.com/magazines/download/9.pdf&quot;&gt;mois-ci&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/03/06/Red%C3%A9couvrir-JavaScript#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/03/06/Red%C3%A9couvrir-JavaScript#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/493347</wfw:commentRss>
      </item>
    
  <item>
    <title>Atelier &quot;Embrassez le changement&quot;</title>
    <link>http://bodysplash.fr/post/2010/01/19/Atelier-%22Embrassez-le-changement%22</link>
    <guid isPermaLink="false">urn:md5:5cd90d9ee46a37ffa239ff524208ded1</guid>
    <pubDate>Tue, 19 Jan 2010 21:56:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
            
    <description>    &lt;p&gt;J'essaye de rattraper le retard pour faire un rapide retour sur un atelier
animé par Colin Garriga-Salaün, membre très actif et bien connu des bordelais
d'Okiwi &lt;sup&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#pnote-477213-1&quot; id=&quot;rev-pnote-477213-1&quot; name=&quot;rev-pnote-477213-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;. Donc oui j'ai beaucoup de retard, car on
parle tout de même d'un atelier du 4 janvier, et rapide non pas car je n'ai pas
aimé, mais car il est difficile d'en parler sans spoiler son contenu.&lt;/p&gt;
&lt;p&gt;Du coup, le but de ce bilet va plutôt être de tenter de vous convaincre
d'aller le voir quand Colin va le refaire &lt;sup&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#pnote-477213-2&quot; id=&quot;rev-pnote-477213-2&quot; name=&quot;rev-pnote-477213-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;En ce qui concerne le déroulement, la soirée s'est divisée en 4
parties :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Présentations de différents modèles de changement&lt;/li&gt;
&lt;li&gt;Jeu de l'oie modifié &lt;sup&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#pnote-477213-3&quot; id=&quot;rev-pnote-477213-3&quot; name=&quot;rev-pnote-477213-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Debriefing libre et commun&lt;/li&gt;
&lt;li&gt;Bières&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2468/3684052948_bfa12591f2_m.jpg&quot; alt=&quot;oie&quot; style=&quot;display:block; margin:0 auto;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;La présentation d'ouverture était peut être un peu dispensable, mais le jeu
et sutout les réactions après coup valaient vraiment le détour. Je ne peux pas
en dire trop, mais j'ai appris des choses sur des notions que j'aborde rarement
comme le conditionnement culturel ou la force de l'habitude (entre autre). En
plus, j'ai mangé des carambars.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/alexandre74/3684052948/&quot;&gt;source
photo&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;
&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#rev-pnote-477213-1&quot; id=&quot;pnote-477213-1&quot; name=&quot;pnote-477213-1&quot;&gt;1&lt;/a&gt;] Co-organisateut de l'Agile tour Bordeaux 2009. &lt;a href=&quot;http://www.okiwi.org&quot;&gt;Site ici&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#rev-pnote-477213-2&quot; id=&quot;pnote-477213-2&quot; name=&quot;pnote-477213-2&quot;&gt;2&lt;/a&gt;] pas de date fixée pour le moment, juste une promesse du
principal concerné&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://bodysplash.fr/post/2010/01/19/#rev-pnote-477213-3&quot; id=&quot;pnote-477213-3&quot; name=&quot;pnote-477213-3&quot;&gt;3&lt;/a&gt;] Plus de détails chez &lt;a href=&quot;http://www.satirworkshops.com/workshops/game-of-goose/&quot;&gt;Satir Workshop&lt;/a&gt;,
mais garre aux spoilers&lt;/p&gt;
&lt;/div&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/01/19/Atelier-%22Embrassez-le-changement%22#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/01/19/Atelier-%22Embrassez-le-changement%22#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/477213</wfw:commentRss>
      </item>
    
  <item>
    <title>.NET vs JEE</title>
    <link>http://bodysplash.fr/post/2010/01/18/.NET-vs-JEE</link>
    <guid isPermaLink="false">urn:md5:4ea78cb805680167b84c4cbf853d8bba</guid>
    <pubDate>Mon, 18 Jan 2010 12:42:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Code</category>
        <category>.NET</category><category>hibernate</category><category>java</category><category>nhibernate</category><category>REST</category><category>restlet</category>    
    <description>    &lt;p&gt;Voilà un titre de billet accrocheur! En fait, je vais me contenter de réagir
à &lt;a href=&quot;http://ayende.com/Blog/archive/2010/01/14/my-java-experience.aspx&quot; hreflang=&quot;en&quot;&gt;cet article&lt;/a&gt; &lt;a href=&quot;http://ayende.com/Blog/Default.aspx&quot; hreflang=&quot;en&quot;&gt;d'Ayende&lt;/a&gt; Si vous écoutez un peu les voix alternatives du
monde .NET, vous devez surement avoir déjà entendu parler de lui, sinon sachez
juste qu'il est contributeur sur NHibernate, qu'il a initié l'implémentation de
Linq2NHibernate, et qu'il a fait pas mal d'autres projets open source dans le
monde de .Net, ainsi qu'un profiler propriétaire mais excellent pour NHibernate
et Hibernate. Bref, ce bonhomme est très bon techniquement, et je suis toujours
avec attention ses avis (notamment sur la mutualisation, désolé pour la private
joke, mais les initiés comprendront &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; ).&lt;/p&gt;
&lt;p&gt;Bref, dans l'article que je donnais en début de billet, il donne donc son
avis sur JEE vs .NET. Je suis globalement très d'accord avec lui sur son
jugement sur JEE, et sur certains manques du langage Java. Cela fait maintenant
un peu plus d'un an que je fais du Java 100% du temps, et que je ne touche plus
à .NET, et pourtant je passe encore pas mal de temps à regretter certains
fonctionnalités de C#. Ceci dit, cela fait également plus d'un an que je
m'efforce le plus possible à ne PAS utiliser JEE. Et je pense que c'est un peu
ça la force de Java vs .NET : une communauté réactive qui passe le plus
clair de son temps à essayer de ne pas appliquer la philosophie &amp;quot;main stream&amp;quot;
et à développer des alternatives . Mieux encore, il est tout à fait possible en
entreprise d'utiliser ces projets open source sans rencontrer trop de
résistances. Lorsque que je bossais en .NET, convaincre un client d'utiliser
NHibernate (à une époque ou Entity Framework n'existait pas) relevait du défis,
à tel point que j'ai été contraint dans une mission d'écrire mon propre mapper
O/R. A ça ajouter une communauté, si on peut l'appeler ainsi, provenant
majoritairement d'un monde VB6 sans bonnes pratiques, et vous obtenez une mini
catastrophe. Des mouvements comme Alt.NET sont bien sûr à saluer et regroupent
de très bon praticiens, mais je pense qu'ils représentent toujours hélas une
minorité dans l'ensemble des développeurs .NET. Biens sûr tout n'est pas rose
côté communauté Java, et elle comprend son lot de boulets et de mauvaises
idées. Mais le simple fait qu'il soit tout simplement possible d'avoir le choix
rend cette technologie plus attractive maintenant à mes yeux. Nous utilisons
principalement &lt;a href=&quot;http://www.restlet.org&quot;&gt;Restlet&lt;/a&gt; dans Le Projet, et
à ma connaissance, il ne connait pas d'équivalent en .NET aussi simple
d'utilisation et de configuration. Le monde Java est un monde où les idées
peuvent plus facilement s'épanouir j'ai l'impression, et où le réflexe
&amp;quot;alternative open source&amp;quot; est bien plus ancré.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2010/01/18/.NET-vs-JEE#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2010/01/18/.NET-vs-JEE#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/476692</wfw:commentRss>
      </item>
    
  <item>
    <title>Intégration continue</title>
    <link>http://bodysplash.fr/post/2009/12/21/Int%C3%A9gration-continue</link>
    <guid isPermaLink="false">urn:md5:0b226d881ebb90d037b30586de4391de</guid>
    <pubDate>Mon, 21 Dec 2009 18:26:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Le projet</category>
            
    <description>    &lt;p&gt;Ce billet n'est pas nécessairement dès plus intéressant, mais je ne me peux
pas m'empêcher de partager avec vous notre dernier petit plaisir sur Le
Projet :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bodysplash.fr/public/_IGP1375.JPG&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/._IGP1375_m.jpg&quot; alt=&quot;Serveur intégration&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;Serveur intégration, déc. 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ce petit boitier posé sur ma bête de course est donc notre serveur
d'intégration flambant neuf. Je tiens à vous en parler car il nous a juste
coûté une petite centaine d'euros, et il ne consomme pratiquement rien en
électricité. En ces temps de développement durable et de crise économique,
c'est toujours bon à prendre.&lt;/p&gt;
&lt;p&gt;La configuration est à base &lt;a href=&quot;http://www.materiel.net/ctl/ITX/47961-GA_GC330UD.html&quot;&gt;d'intel Atom 330&lt;/a&gt; et
d'un &lt;a href=&quot;http://www.materiel.net/ctl/Mini_boitiers/48979-ISK300_65.html&quot;&gt;boitier
antec&lt;/a&gt; qui va bien. Le tout a été complété par le don généreux d'un disque
dur 2.5&amp;quot; 5400tr/min par Charles, et d'une barette de ram d'1Go de roxxor de
&lt;a href=&quot;http://michaelborde.fr&quot;&gt;Michael&lt;/a&gt; C'est donc pour ça qu'il ne nous a
coûté que 100€. Disons qu'il faut ajouter 50€ si vous n'avez pas de pièces en
stock.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bodysplash.fr/public/_IGP1376.JPG&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/._IGP1376_s.jpg&quot; alt=&quot;Serveur intégration&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;Serveur intégration, déc. 2009&quot; /&gt;&lt;/a&gt;La morale de cette histoire, et c'est ce
qui a motivé mon billet, c'est que vous n'avez pas besoin d'une bête de course
hors de prix pour votre intégration. Nous faisons tourner hudson, selenium,
svn, nexus, postgresql et les deux applications que nous développons dans leur
dernière version stable, en permanence sur une machine théoriquement très
légère techniquement. Je vous rassure, le buid fait toujours moins de 10mn. Ce
faible coût peut peut-être également convaincre votre hypothétique service
d'achat frileux à investir le moindre euros dans votre équipe qu'il est
possible de s'en sortir sans faire des chèques avec plein de 0. 100€ pour
autant de valeurs, j'ai rarement vu un investissement aussi rentable.&lt;/p&gt;
&lt;p&gt;P.S : je rassure le lecteur en disant, que non, nous n'avons pas
attendu deux ans pour faire de l'intégration continue sur Le Projet, nous
l'hébergions juste salement avec la prod.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/12/21/Int%C3%A9gration-continue#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/12/21/Int%C3%A9gration-continue#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/470081</wfw:commentRss>
      </item>
    
  <item>
    <title>AppEngine</title>
    <link>http://bodysplash.fr/post/2009/12/08/AppEngine</link>
    <guid isPermaLink="false">urn:md5:e9c3a19fcee449aa42f56b8eb0ee6fb1</guid>
    <pubDate>Tue, 08 Dec 2009 11:34:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Code</category>
        <category>cloud</category><category>DDD</category><category>Domain Driven Design</category><category>java</category><category>saas</category><category>spring</category><category>tdd</category><category>test driven development</category>    
    <description>    &lt;p&gt;Aujourd'hui, je vais essayer de parler un peu d'AppEngine.&lt;/p&gt;
&lt;h3&gt;Rapidement&lt;/h3&gt;
&lt;p&gt;Commençons par un peu de présentation. Pour ceux du fond qui ne le savent
pas, AppEngine, c'est le système d'hébergement mutualisé made in google pour
des applications développées soit en Python, soit en Java. L'idée est donc de
développer tranquillement son application, et de laisser à google la
responsabilité de l'infrastructure et de la montée en charge. Niveau
facturation, on ne paie que ce qu'on consomme à partir d'un certain quota.&lt;/p&gt;
&lt;p&gt;Déjà, le premier point que j'aimerais souligner, c'est que nous disposons
enfin d'une offre solide et abordable d'hébergement mutualisé pour Java (pour
python, on pouvait déjà trouver son bonheur en fouillant un peu). Ça n'a l'air
de rien comme ça, mais j'ai envie de dire c'est pas trop tôt. Voilà près de 10
ans qu'il est très facile de trouver un hébergement mutualisé pour Php, mais
qu'il est très difficile voir impossible de trouver une offre équivalente pour
d'autres technologies. Du coup, PHP est presque devenu un standard sur le net,
alors qu'il est sans doute difficile de trouver pire environnement de dev
(support des TU lacunaire, pas de refactoring, un style très procédural, une
communauté globalement très mal formée et sensibilisée aux bonnes pratiques de
développement, pas de framework unifié de base, etc. etc.). Alors bien sûr, je
ne pense pas qu'AppEngine va réussir à inverser la tendance, mais j'espère
juste qu'à l'avenir, des offres d'hébergement pour des technologies/langages
plus &amp;quot;agréables&amp;quot; comme Python ou Ruby vont fleurir sur le net. Bref, après un
paragraphe qui je suis sûr, va me faire lapider par tous les aficionados de
php, passons aux choses sérieuses (vous pouvez m'envoyer vos cailloux par
email).&lt;/p&gt;
&lt;h3&gt;Un peu (beaucoup) de technique&lt;/h3&gt;
&lt;p&gt;Parlons un peu technique. Je vais me contenter de parler de la partie java
d'AppEngine, car je ne suis pas du tout un expert python, et je n'utilise que
des langages pour lequel il existe un IDE avec un bon support du refactoring
(et ceux qui disent que ces outils ne servent juste qu'à palier les manques
d'un langage n'ont juste rien compris à ce qu'est fondamentalement le
refactoring).&lt;/p&gt;
&lt;p&gt;En terme de développement et de déploiement, si vous utilisez le plugin
eclipse de google, tout est excessivement simple, et mérite à peine d'en
parler : vous codez, vous testez, et vous déployez en un seul clique. Un
serveur de développement AppEngine est fourni pour vous permettre de faire des
tests d'intégration, et TDD peut s'utiliser sans aucune contrainte, en fakant
rapidement l'accès aux données. IntelliJ IDea dans sa version complète je crois
fournit également un support pour tout ça. Là où ça commence à être compliqué,
c'est si vous voulez utiliser maven pour automatiser votre build et votre
intégration. Clairement, ce n'est pas au point, et j'ai laissé tomber l'idée
pour le moment.&lt;/p&gt;
&lt;p&gt;Ceci étant dit, abordons les limitaions d'AppEngines. Pour garantir la
scalabilité et la mutualisation de votre application, Google a dû imposer des
contraintes de taille.&lt;/p&gt;
&lt;p&gt;Première contrainte, toutes les fonctionnalités de l'API java ne sont pas à
votre disposition. Les deux restrictions qui sautent aux yeux mais qui sont
assez logiques sont l'impossibilité bien sûr d'écrire sur le FileSystem, ainsi
que l'interdiction de créer des threads. Il y en a d'autres, mais je vous
laisse la surprise, je ne veux pas trop spoiler.&lt;/p&gt;
&lt;p&gt;Deuxième contrainte très importante, et c'est celle qui va le plus nous
intéresser : le stockage de vos données. Et oui, vous ne pouvez pas
utiliser votre cher SGBD. C'est assez logique en fait. Pour garantir la
scalabilité et la vitesse d'accès à vos données, google fournit son propre
système, BigTable, pas du tout relationnel. Bon si cette base n'est pas
relationnelle, qu'est-elle donc? Elle est hiérarchique. Ce genre d'approche
permet de répartir bien mieux vos données sur N cluster, là ou les SGBD eux ont
beaucoup plus de mal. Ce miracle est dû au fait que ces approches ne se
concentrent par sur la cohérence des données, mai sur leur accessibilité et
leur distribution, là où un sgbd se concentre sur l'accessibilité et la
cohérence. Le bémol est donc que vous n'avez pas la garantie qu'à un instant T,
une entité donnée est cohérente sur l'ensemble des noeuds. Ok, une base
hiérarchique, c'est quoi donc? Vos données sont organisées en entités,
contenant des propriétés clef/valeur de types supportés. Ces valeurs peuvent
être d'autres entités. Le DataStore regroupe les entités par groupe, chaque
groupe ayant une racine. Et là, normalement, si comme moi vous aimez Domain
Driven Design, ça doit faire tilt dans votre tête. Entités? Groupe? Racine?
Pouvons-nous réécrire ça en Agrégat, racine d'Agrégat et entité? Et bien oui,
nous le pouvons. Nous avons face à nous un système de stockage mimant les
grands concepts de DDD, et ça, c'est la classe. Nous pourrions normalement
sauter de joie, mais hélas non, pas encore. Pour nous permettre de décrire la
persistence, Google nous fournit une implémentation partielle de JDO ou JPA.
Voilà déjà un premier point noir à mes yeux : pas d'ignorance de la
persistance pour nos objets du domaine, vu que le mapping se fait donc
nécessairement par annotations. Deuxième gros point noir, pour modélier une
relation entre deux racines d'agrégats, nous devons nécessairement passer par
la clef. Et oui, pas de mapping transparent entre deux racines : l'un ou
l'autre contient la clef qui va nous permettre de faire la requête adaptée.&lt;/p&gt;
&lt;p&gt;Dernière contrainte que je vais aborder : le développement itératif. Si
vous suivez un modèle de développement agile correctement implémenté (ok disons
que vous utilisez XP, ça ira plus vite), vous êtes incrémental et itératif.
Itératif veut donc dire que votre modèle évolue au fur et à mesure des besoins
et de votre compréhension. Si le modèle évolue, nécessairement sa persistance
aussi. Le DataStore n'a pas du tout besoin que toutes les entités d'un même
type possèdent les mêmes propriétés, donc on pourrait croire qu'en théorie pas
de soucis. Oui mais si vous devez tout de même faire une mise à jour des
vielles entités pour une raison X ou Y (notamment si vous avez ajouté un type
valeur comme un boolean), comment faire? Voilà tout le soucis, actuellement,
même si Google planche sur le sujet, vous ne pouvez pas facilement. Vous avez
une limite de 1000 entités par requête, et une requête a un temps de vie très
court accordé par le système avant d'être tuée. Il existe bien sûr des
solutions de contournement, mais rien de bien simple et de pleinement
satisfaisant.&lt;/p&gt;
&lt;h3&gt;Et pour conclure&lt;/h3&gt;
&lt;p&gt;Bien voici venu le temps d'une grosse conclusion. Ce que j'aime, voir ce que
j'adore chez AppEngine, c'est enfin l'accès à un hébergement abordable et de
qualité pour Java. Vous pouvez utilisez si vous développez avec AppEngine en
tête dès le début vos frameworks et techos préférés (Groovy, Restlet, Spring,
Guice &amp;lt;ajoutez ici votre techo&amp;gt;). J'adore également, et ce n'est pas
seulement dû à AppEngine, l'attaque qui est faite aux SGBD traditionnelles. Des
technologies solides de remplacement voient enfin le jour grâce à ces nouveaux
services, et on peut espérer voir la fin de notre vivant des ces applications
codées en procédures stockées, soit disant pour être performantes. Là vous
n'avez pas le choix : votre métier est dans votre application, pas dans la
base. Bien sûr, ce n'est pas encore complètement au point à mes yeux tant que
l'ignorance de la persistance n'est pas atteinte, mais c'est sur une très bonne
voie. Si vous ne voulez pas dépendre, à juste titre, de sociétés comme Google
et Amazon pour stocker vos données, des implémentations solides et open source
de ces nouvelles bases de données sont disponibles.&lt;/p&gt;
&lt;p&gt;Enfin, je m'excuse si ma vulgarisation des théories derrière BigTable est
vraiment lapidaire, mais je vous laisse bien entendu l'opportunité de me
fustiger dans les commentaires &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/12/08/AppEngine#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/12/08/AppEngine#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/465716</wfw:commentRss>
      </item>
    
  <item>
    <title>Vidéos de l'agile tour</title>
    <link>http://bodysplash.fr/post/2009/11/13/Vid%C3%A9os-de-l-agile-tour</link>
    <guid isPermaLink="false">urn:md5:b004f9c520adb235068bee28e8d07356</guid>
    <pubDate>Fri, 13 Nov 2009 16:08:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
        <category>Agile tour</category><category>Extreme Programming</category><category>tdd</category><category>test driven development</category><category>XP</category>    
    <description>    Choses promises, choses dues, quelques vidéos de l'Agile tour Bordeaux 2009
sont d'ores et déjà en ligne. 
&lt;div&gt;Voici, en deux parties, la session que nous avons animée avec Charles sur
TDD.&lt;/div&gt;
&lt;div&gt;&lt;object width=&quot;440&quot; height=&quot;410&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.vcasmo.com/swf/vcasmo_full.swf&quot; /&gt;
&lt;param name=&quot;flashvars&quot; value=&quot;pid=6444&amp;amp;configfile=video&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div&gt;&lt;object width=&quot;440&quot; height=&quot;410&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.vcasmo.com/swf/vcasmo_full.swf&quot; /&gt;
&lt;param name=&quot;flashvars&quot; value=&quot;pid=6445&amp;amp;configfile=video&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;&lt;/object&gt;&lt;/div&gt;
&lt;div&gt;Pour voir le reste des vidéos déjà en ligne, ça se passe &lt;a href=&quot;http://www.vcasmo.com/tag/Agile%20tour%202009%20bordeaux&quot;&gt;par là&lt;/a&gt;&lt;/div&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/11/13/Vid%C3%A9os-de-l-agile-tour#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/11/13/Vid%C3%A9os-de-l-agile-tour#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/459740</wfw:commentRss>
      </item>
    
  <item>
    <title>Les deux écoles de TDD</title>
    <link>http://bodysplash.fr/post/2009/11/02/Les-deux-%C3%A9coles-de-TDD</link>
    <guid isPermaLink="false">urn:md5:60649bb141b7eb9a9a36cf98c20118a3</guid>
    <pubDate>Mon, 02 Nov 2009 16:37:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
        <category>agilité</category><category>tdd</category><category>test driven development</category>    
    <description>    &lt;p&gt;Je ne sais pas pourquoi ces derniers temps, j'entend pas mal de retours
comme quoi le refactoring serait ralenti par les tests unitaires. L'explication
derrière cette affirmation douteuse est qu'il faut bien souvent modifier les
tests en même temps que le code de production.&lt;/p&gt;
&lt;p&gt;J'ai tendance à croire que cette idée bizarre est née d'une des deux écoles
de TDD. Ces deux approches ont été bien décrites par &lt;a href=&quot;http://martinfowler.com&quot;&gt;Martin Fowler&lt;/a&gt; dans &lt;a href=&quot;http://martinfowler.com/articles/mocksArentStubs.html#ClassicalAndMockistTesting&quot;&gt;
son article&lt;/a&gt; sur les mocks et les stubs.&lt;/p&gt;
&lt;p&gt;Je vais me permettre de le paraphraser ici :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'approche classique essaye d'utiliser le plus possible de vrais objets, et
un &amp;quot;double&amp;quot; s'il est difficile ou gênant d'utiliser l'implémentation réelle
(par exemple, l'envoie d'un mail)&lt;/li&gt;
&lt;li&gt;L'approche par Mock va utiliser dans tous les cas des doubles de test pour
tout objet ayant un comportement intéressant.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour qualifier ces deux méthodes, &lt;a href=&quot;http://fabien.bezagu.free.fr&quot;&gt;Mister Fabien&lt;/a&gt; parle de tests Boîte Noire et
de tests Boîte Blanche.&lt;/p&gt;
&lt;p&gt;Appliquer systématiquement une approche par mock implique une chose :
on teste plus la chorégraphie de notre objet que ses résultats. Nous allons
vérifier que tel méthode de tel mock a été appelé avec tel paramètre, et que si
nous retournons tel valeur, alors notre objet va se comporter de telle manière.
Ce faisant, nous liions inexorablement notre test avec l'implémentation
sous-jacente, rendant par la même plus douloureux le refactoring, car il nous
faudra effectivement changer les tests en même temps que le code de production.
L'écriture des tests peut être fastidieux en plus, vu la quantité d'éléments à
doubler (constat fait par exemple lors du &lt;a href=&quot;http://bodysplash.fr/post/2009/05/15/Retour-sur-Bordeaux-JUG-TDD&quot;&gt;JUG Bordelais&lt;/a&gt; sur le
sujet&lt;/p&gt;
&lt;p&gt;Dans une approche classique, comme nous testons la plupart du temps le
comportement extérieur, nous nous moquons éperdument de l'implémentation, pour
vu que le résultat soit bon, et nous passons également moins de temps à écrire
nos doubles.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/11/02/Les-deux-%C3%A9coles-de-TDD#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/11/02/Les-deux-%C3%A9coles-de-TDD#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/457110</wfw:commentRss>
      </item>
    
  <item>
    <title>Et voilà</title>
    <link>http://bodysplash.fr/post/2009/10/30/Et-voil%C3%A0</link>
    <guid isPermaLink="false">urn:md5:29e98ea39f69a658974c64c4b56d0ebe</guid>
    <pubDate>Fri, 30 Oct 2009 11:31:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
            
    <description>    &lt;p&gt;L'Agile Tour c'est (presque) fini pour 2009. Aujourd'hui, Strasbourg et
Lille accueillent les dernières sessions, et ensuite, direction l'année
prochaine.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bodysplash.fr/public/agiletour2009/_IGP0758.jpeg&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/agiletour2009/._IGP0758_s.jpg&quot; alt=&quot;accueil&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;accueil, oct. 2009&quot; /&gt;&lt;/a&gt;Dans tous
les cas, l'édition bordelaise s'est de moins point de vue, assez bien passée.
Je n'ai pu pratiquement rien aller voir personnellement, mais le retours que
j'ai glanés étaient tout de même assez positifs. Un peu plus de 150 personnes
ont fait le déplacement pour profiter des viennoiseries et des sessions.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://bodysplash.fr/public/agiletour2009/_IGP0759.jpeg&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/agiletour2009/._IGP0759_m.jpg&quot; alt=&quot;[((/public/agiletour2009/._IGP0759_s.jpg&quot; title=&quot;M&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Certaines sessions ont eu plus de succès que prévu, et du coup, nous avons
généré je pense un certain nombre de déçus. Nous essaierons de faire mieux
l'année prochaine.&lt;/p&gt;
&lt;p&gt;Il faudra aussi que je retienne ne pas réinstaller mon MacBook de zéro la
veille d'une présentation sur TDD, car nous avons eu la joie de nous rendre
compte en live de ce que j'avais oublié de reconfigurer. Ceci dit nous étions
flattés de la vitesse à laquelle s'est remplie la salle, et de la présence
d'&lt;a href=&quot;http://emmanuelgaillot.blogspot.com/&quot;&gt;Emmanuel Gaillot&lt;/a&gt;, grand
stratiguerre des Dojos XP Parisens depuis 5 ans. &lt;a href=&quot;http://www.vickoff.com/&quot;&gt;Jean-Pierre Vickoff&lt;/a&gt; était également présent, nous
avions donc beaucoup de pressions à avoir autant de sommités dans le public &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;
Si jamais toi lecteur hypothétique tu faisais partie de ces heureux élus, sache
que je suis très friand de connaître tes retours. Je suis au courant de notre
schizophrénie à faire partie de la &lt;a href=&quot;http://www.antiifcampaign.com/&quot;&gt;Anti-If campaign&lt;/a&gt; alors que le design que
nous avons obtenu à la fin de la session en était rempli &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Il y aurait sans doute des milliers d'autres choses à dire, je vais
m'arrêter là, en remerciant encore tous ceux qui ont rendu cette journée
possible, et tous ceux qui ont fait le déplacement, montrant que l'agilité peut
mobiliser les foules, même à Bordeaux.&lt;/p&gt;
&lt;p&gt;P.S: allez, une photo bonus avec presque tous les orgas et orateurs :
&lt;a href=&quot;http://bodysplash.fr/public/agiletour2009/_IGP0763.jpeg&quot;&gt;&lt;img src=&quot;http://bodysplash.fr/public/agiletour2009/._IGP0763_s.jpg&quot; alt=&quot;repas&quot; style=&quot;display:block; margin:0 auto;&quot; title=&quot;repas, oct. 2009&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/10/30/Et-voil%C3%A0#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/10/30/Et-voil%C3%A0#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/456340</wfw:commentRss>
      </item>
    
  <item>
    <title>C'est demain</title>
    <link>http://bodysplash.fr/post/2009/10/28/C-est-demain</link>
    <guid isPermaLink="false">urn:md5:63ff70d36665a5edb5f1b2aabb3c0275</guid>
    <pubDate>Wed, 28 Oct 2009 14:11:00 +0100</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
            
    <description>    &lt;p&gt;&lt;img src=&quot;http://bodysplash.fr/public/agiletour2009/at2009255.jpg&quot; alt=&quot;logo&quot; style=&quot;float:left; margin: 0 1em 1em 0;&quot; title=&quot;logo, oct. 2009&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Je ne fais que répéter ce que vous savez sans doute déjà, mais demain, c'est
le grand jour. Après plusieurs mois de préparation, voici que l'Agile Tour
passe demain par le &lt;a href=&quot;http://www.labri.fr/&quot;&gt;Labri&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Si tout se passe bien et que vous êtes inscrits, vous avez du recevoir les
derniers détails par mail, sinon, nous commençons à accueillir tout le monde à
partir de 9h (avec un petit déjeuner et du café pour faire bonne figure).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://bodysplash.fr/public/agiletour2009/at2009speaker-fr.jpg&quot; alt=&quot;speaker&quot; style=&quot;float:right; margin: 0 0 1em 1em;&quot; title=&quot;speaker, oct. 2009&quot; /&gt;A 14H, nous
aurons la joie avec Charles Couillard de faire une présentation/démonstration
de TDD, qui espérons le sera instructive.&lt;/p&gt;
&lt;p&gt;Je n'ai pas grand chose à ajouter, si ce n'est de dire que demain est
l'aboutissement d'une belle course de fond que j'ai apprécié faire avec les
autres organisateurs.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/10/28/C-est-demain#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/10/28/C-est-demain#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/455908</wfw:commentRss>
      </item>
    
  <item>
    <title>Arg</title>
    <link>http://bodysplash.fr/post/2009/10/23/Arg</link>
    <guid isPermaLink="false">urn:md5:a6154576dea634eb95ff7b20f4ea1fbe</guid>
    <pubDate>Fri, 23 Oct 2009 14:23:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;En changeant d'hébergeur, je pensais ne pas avoir de soucis vu que le nom de
domaine restait le même, ainsi que le contenu et le moteur de blog. Mais hélas,
j'avais oublié un détail qui avait son importance : j'avais laissé toutes
URI au format Dotclear 1 lors de mon passage en v2, pour éviter justement que
toutes les références google and co ne se mettent à pointer dans le vide.&lt;/p&gt;
&lt;p&gt;Et là bien sûr, c'est le drame, car sur cette nouvelle plate-forme, je ne
peux pas choisir le format ou un installer un plugin qui contournerait le
problème. Voilà donc que plusieurs années d'indexation viennent de partir à la
poubelle. Je me console comme je peux en me disant que maintenant, mes URI sont
restfull.&lt;/p&gt;
&lt;p&gt;Bilan de cette histoire, si toi hypothétique lecteur tu lis ceci car ton
flux rss ne te donne plus de mes nouvelles, change ton abonnement, car
l'adresse n'est plus la même.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/10/23/Arg#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/10/23/Arg#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/453712</wfw:commentRss>
      </item>
    
  <item>
    <title>Agile Tour Toulouse 2009</title>
    <link>http://bodysplash.fr/post/2009/10/23/Agile-Tour-Toulouse-2009</link>
    <guid isPermaLink="false">urn:md5:871f3276899000d842656d6aba735344</guid>
    <pubDate>Fri, 23 Oct 2009 11:02:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>Agilité</category>
            
    <description>    &lt;p&gt;&lt;a href=&quot;http://michaelborde.fr&quot;&gt;Michael&lt;/a&gt; a été plus rapide que moi pour
faire un retour sur notre visite hier chez nos parains de Toulouse. Mais qu'à
cela ne tienne, je m'en vais vous faire un petit compte-rendu de ma journée,
sachant que nous n'avons de toute manière pas suivi nécessairement les mêmes
séances.&lt;/p&gt;
&lt;h4&gt;L'organisation&lt;/h4&gt;
&lt;p&gt;Déjà, je tiens à féliciter, s'ils me lisent, les organisateurs, qui ont fait
que cette journée s'est passée sans accroc, avec beaucoup de café, jus d'orange
et autres petits gâteaux. A cause d'eux, nous voilà en train de réviser nos
plans pour la semaine prochaine, c'est malin &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; En plus, ils ont du être agile
face à l'adversité en décalant l'XP Game de deux heures dans une nouvelle
salle. Le timeboxing des sessions étaient parfait également.&lt;/p&gt;
&lt;p&gt;L'IUT de Blagnac qui nous accueillait a vraiment de très beaux locaux en
plus, très bien adapté à cet événement.&lt;/p&gt;
&lt;h4&gt;Les sessions&lt;/h4&gt;
&lt;p&gt;Voici mon petit programme de la journée :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Café&lt;/li&gt;
&lt;li&gt;Les promesses de l'agilité, par Jean-Marie Damas&lt;/li&gt;
&lt;li&gt;Introductions aux Core Protocols, par Emmanuel Etasse&lt;/li&gt;
&lt;li&gt;Café, viennoiseries&lt;/li&gt;
&lt;li&gt;L'agilité dans une SSII, par &lt;a href=&quot;http://www.dotnetguru2.org/gse/index.php&quot;&gt;Guillaume Saint-Etienne&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Repas équilibré donc, à base de crêpes et de flanc de légume en ce qui me
concerne&lt;/li&gt;
&lt;li&gt;Café&lt;/li&gt;
&lt;li&gt;Dojo TDD, par Jean-Marie Damas et &lt;a href=&quot;http://agilitateur.azeau.com/&quot;&gt;Olivier Azeau&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Café et petits gâteaux divins&lt;/li&gt;
&lt;li&gt;Enseigner l'agilité, par Jean-Michel Inglebert&lt;/li&gt;
&lt;li&gt;Muscat et Olives&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Les promesses de l'agilité&lt;/h3&gt;
&lt;p&gt;Pas grand chose à ajouter par rapport au retour de Michael. C'était une
présentation ciblant les gens ne connaissant pas trop l'agilité, mais mettant
bien en avant les &amp;quot;obligations&amp;quot; pour réussir la transition, à savoir adhérer à
l'éthique agile.&lt;/p&gt;
&lt;h3&gt;Introduction aux Core Protocols&lt;/h3&gt;
&lt;p&gt;Je n'avais jamais eu que des retours indirects, et j'avais d'ailleurs un à
priori très négatif sur eux, ayant le sentiment qu'ils sclérosaient la
communication en l'enfermant dans un carcan. Premier constat donc, c'est que
mes critiques finalement s'appliquaient plus aux implémentations particulières
qu'aux protocoles eux-même, qui ne figent pas grand chose apparemment.&lt;/p&gt;
&lt;p&gt;Ensuite dans le fond, je pense que je reste tout de même sur mon idée que la
communication induite par les protocols n'est pas des plus naturelle. A la
rigueur, je pense qu'ils peuvent servir à construire une équipe rapidement avec
des personnes qui ne se connaissaient pas, mais passé une certaine période, on
peut en abandonner une grande partie. Certains bien sûr gardent de la
valeur : j'utilise régulièrement le decider, car il permet de trancher une
décision sans s'éternier dans des débats stériles.&lt;/p&gt;
&lt;p&gt;Le centre de cette session était plutôt le Perfection Game, que nous avons
donc eu l'occasion d'appliquer par groupe de 6 après avoir jugé une magnifique
interprétation d'Hotel California par notre orateur &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; C'était sympathique,
mais encore une fois, je ne suis pas sûr de voir l'utilité d'encadrer ces
échanges du moment qu'on discute entre personnes matures et raisonnables.&lt;/p&gt;
&lt;h3&gt;Agilité en SSII&lt;/h3&gt;
&lt;p&gt;Encore une fois pas grand chose à ajouter à ce qu'a dit Michael: très bonne
présentation, carré avec de bons arguments. Seul bémol peut être sur une
question finale concernant les RAO : la réponse était un peu en déphasage
face à la réalité, car on ne connaît pas le budget des clients à ce moment
là.&lt;/p&gt;
&lt;h3&gt;Dojo TDD&lt;/h3&gt;
&lt;p&gt;A, là, je me suis éclaté &lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt; Enfin, c'était peut être une auberge espagnole
cette session : on y trouvait ce qu'on apportait. Le sujet proposé était
l'implémentation d'une calculatrice, qui malgré son apparente simplicité pose
pas mal de questions de design, et en tant que membre de la anti-if campaign,
je me devais de me passer de switch :D (&lt;a href=&quot;http://twitter.com/ffaure32&quot;&gt;Frédéric&lt;/a&gt; ne pourra pas dire le
contraire).&lt;/p&gt;
&lt;p&gt;Bref, moi je me suis éclaté car c'est du code, et j'aime ça, et car je
pairais avec quelqu'un de moins expérimenté, et j'ai adoré discuter des détails
d'implémentation où de l'approche TDD.&lt;/p&gt;
&lt;p&gt;Bien entendu, la session à la fin a eu son lot de sceptique, mais comment
les blâmer? Il est clairement pas évident de lâcher ses vieilles habitudes
d'upfront design et de s'appuyer avec une confiance presque aveugle sur les
tests. Je ne suis pas devenu l'extrémiste que je suis du jour au lendemain.&lt;/p&gt;
&lt;p&gt;J'ai beaucoup aimé aussi pouvoir comparer donc cette forme de Dojo avec
celle que nous animons avec Charles Couillard la semaine prochaine à l'AT
Bordeaux. Nous ferons une démonstration plutôt qu&amp;quot;une session ouverte, et je
suis curieux de pouvoir comparer les réactions du public.&lt;/p&gt;
&lt;h3&gt;Enseigner l'agilité&lt;/h3&gt;
&lt;p&gt;Je n'enseigne pas l'agilité moi même, enfin pas dans un cadre de cours, et
j'étais donc assez curieux de savoir comment on pouvait transmettre les valeurs
agiles, finalement très pragmatiques quand on s'est déjà confronté à quelques
échecs, à des étudiants vierges de toute expérience. Pour résumer, je citerai
l'orateur : &amp;quot;Enseigner les tests à un débutant, c'est comme enseigner
l'humour à quelqu'un qui commence l'anglais&amp;quot;. Je paraphrase assez mal, mais
c'était ça l'idée : tester est un art subtile, et il est utopique de
l'enseigner à de parfaits débutants. Par contre il semblerait qu'arriver en L2,
là l'approche gagne le coeur de pas mal de monde. Peut-être est-ce donc une
lueur d'espoir pour l'avenir? Nous pouvons rêver d'un monde où tous les
développeurs pratiqueront les tests, dès la sortie de l'école, où les gens ne
pratiquant pas tdd seront regardés comme des bêtes curieuses et dangereuses
&lt;img src=&quot;/themes/default/smilies/smile.png&quot; alt=&quot;:)&quot; class=&quot;smiley&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/10/23/Agile-Tour-Toulouse-2009#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/10/23/Agile-Tour-Toulouse-2009#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/453668</wfw:commentRss>
      </item>
    
  <item>
    <title>Changement d'hébergeur</title>
    <link>http://bodysplash.fr/post/2009/10/14/Changement-d-h%C3%A9bergeur</link>
    <guid isPermaLink="false">urn:md5:4e46cc61884ff3bb0409b020e32286ef</guid>
    <pubDate>Wed, 14 Oct 2009 11:10:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;Je suis en train de changer d'hébergeur, donc il se peut que ce blog ne soit plus accessible pendant quelques jours.&lt;/p&gt;


&lt;p&gt;J'avais pris  un hébergement &quot;gros&quot; à l'époque, car je voulais héberger d'autres éléments, mais le fait est que 4 ans après, je ne tiens toujours que ce blog. Donc, adieu Online.net, qui devient trop cher, et bonjour Gandi.net, dont j'aime l'esprit depuis mal d'année, et qui font maintenant plate-forme de blog.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/10/14/Changement-d-h%C3%A9bergeur#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/10/14/Changement-d-h%C3%A9bergeur#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/453647</wfw:commentRss>
      </item>
    
  <item>
    <title>Inversion de contrôle</title>
    <link>http://bodysplash.fr/post/2009/09/08/Inversion-de-contr%C3%B4le</link>
    <guid isPermaLink="false">urn:md5:2eda87df18663c821554f566f59eabe5</guid>
    <pubDate>Tue, 08 Sep 2009 10:40:00 +0200</pubDate>
    <dc:creator>Jean-Baptiste</dc:creator>
        <category>General</category>
            
    <description>    &lt;p&gt;Je fais assez souvent la réflexion que le métier des SSII s'est dégradé, volontairement ou pas, par rapport aux principes d'origine. J'ai tendance à penser que le rôle premier d'une SSII est de savoir faire des logiciels sur mesure, et mener les projets donc jusqu'à une fin heureuse pour tout le monde. Ceci est bien entendu la vision idéaliste, mais je pense qu'il est censé correspondre à la majorité des cas. La plupart du temps, les clients ne savent pas ce qu'ils veulent, ni comment l'obtenir, et c'est tout à fait notre métier de savoir pourtant extraire un logiciel d'autant de chaos. Il n'y a pas à se plaindre de cet état de fait, c'est une composante normale de notre profession, et s'en indigner est juste une réaction puérile et irréaliste.&lt;/p&gt;


&lt;p&gt;Pourtant, ma propre expérience des SSII a prouvé plutôt que le client, ne connaissant pourtant rien à la construction de logiciels, pouvait demander n'importe quoi, même l'échec, car &quot;le client est roi&quot;. Le rôle de conseil et d'accompagnement qui me semble indispensable s'est transformé dans la grande majorité des cas en une sorte d'intérim très cher qui produit globalement pas grand chose par rapport au prix investi.&lt;/p&gt;


&lt;p&gt;Maintenant, voilà que j'ai deux retours de forfaits ou le client a explicitement demandé l'utilisation de TDD dans le développement de son logiciel. Je ne m'en réjouie pas. Voilà que le client est obligé de demander la qualité contractuellement? Obligé de demander à la SSII de faire son travail, car sinon il sait qu'il va obtenir quelque chose en papier mâché? TDD n'est pas une pratique à négocier, dans un sens ou dans l'autre, mais une obligation pour tout développeur professionnel. Il n'y pas à demander au client, ou à la SSII s'ils sont d'accord pour le faire, c'est une pratique de professionnel au même titre que nous tentons de garder le design propre, de nommer correctement les variables, etc etc.
Donc je considère ces deux cas comme un pas de plus dans l'inversion de contrôle qui s'est opéré dans la profession&amp;nbsp;: Les clients n'ont plus seulement à dicter la gestion de projet, mais également les pratiques de développement. Quel savoir-faire reste-il à la SSII?&lt;/p&gt;


&lt;p&gt;Quel mal tout de même a été fait à la profession pour que le niveau de confiance soit réduit au point de demander contractuellement ce qui semble aller de soit&amp;nbsp;: la qualité et la fiabilité.&lt;/p&gt;</description>
    
    
    
          <comments>http://bodysplash.fr/post/2009/09/08/Inversion-de-contr%C3%B4le#comment-form</comments>
      <wfw:comment>http://bodysplash.fr/post/2009/09/08/Inversion-de-contr%C3%B4le#comment-form</wfw:comment>
      <wfw:commentRss>http://bodysplash.fr/feed/atom/comments/453646</wfw:commentRss>
      </item>
    
</channel>
</rss>