<?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/"
	>

<channel>
	<title>Quand N@t communique... &#187; méthodes agiles</title>
	<atom:link href="http://www.richand.info/blog/tag/methodes-agiles/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richand.info/blog</link>
	<description>Développement personnel, personal MBA et tout ce qui touche à la vie d'un consultant logiciel.</description>
	<lastBuildDate>Sat, 29 Oct 2011 11:07:07 +0000</lastBuildDate>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>Agilité ? XP (eXtrem Programming) ? Scrum ?</title>
		<link>http://www.richand.info/blog/2008/01/agilite-xp-extrem-programming-scrum/</link>
		<comments>http://www.richand.info/blog/2008/01/agilite-xp-extrem-programming-scrum/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 10:43:12 +0000</pubDate>
		<dc:creator>Nathaniel Richand</dc:creator>
				<category><![CDATA[Méthodes agiles]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[méthodes agiles]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.richand.info/blog/?p=11</guid>
		<description><![CDATA[Après avoir joué l’évangéliste Spring pendant plusieurs mois, me voici maintenant dans la peau de l’évangéliste agile. Cependant, mon évangélisation à plus de mal à passer. La majorité des gens à qui je présente les méthodes agiles n’ont que peu d’idées des concepts agiles voir même plutôt ont de fausses idées sur XP. En effet, [...]]]></description>
			<content:encoded><![CDATA[<p>Après avoir joué l’évangéliste Spring pendant plusieurs mois, me voici maintenant dans la peau de l’évangéliste agile. Cependant, mon évangélisation à plus de mal à passer. La majorité des gens à qui je présente les méthodes agiles n’ont que peu d’idées des concepts agiles voir même plutôt ont de fausses idées sur XP.</p>
<p>En effet, j’ai remarqué que beaucoup de gens connaissaient le terme eXtrem Programming. Malheureusement, pour ces personnes les seules idées qu’ils en restent sont : « XP c’est coder à deux sur un seul PC ? Très peu pour moi… » ou bien « XP c’est coder et ne pas faire de docs ? C’est faire un projet à l’arrache …».</p>
<p>Et bien non ! XP, et plus généralement les méthodes agiles, ce n’est pas ça !</p>
<h3><span id="more-11"></span></h3>
<h3></h3>
<h3>Méthodes agiles … What’s that ?!</h3>
<p>Qu’est ce que les méthodes agiles, en quoi ça nous concerne et surtout qu’est ce que cela peut nous apporter ?</p>
<p><strong> Ca me concerne :</strong></p>
<p>D’après les rapports du Standish Group (plus ou moins contesté), les chiffres concernant les réussites de projets informatiques sont très faible, même s’ils évoluent à la hausse :</p>
<p><img src="/blog/wp-includes/images/AgilePrez/SuccessRate.jpg" /></p>
<p align="center"><span style="color: #808080"><em>Pourcentage de réussite des projets informatique.</em></span></p>
<p>Mitigés voulant dire : un important retard ou surcoût, ou bien un produit ne correspondant pas aux besoins du client.<br />
Les chiffres sont éloquents, nous avons encore beaucoup de chemin à faire…</p>
<p><strong>Devenir agile, qu’est ce que cela :</strong><br />
Les méthodes agiles sont nées d’un mouvement de protestation face aux méthodes classiques de gestion de projets (cycle en cascade, cycle en V, normes ISO, …) et ont prises leur envol lors de la création du <a href="http://agilemanifesto.org/" title="Manifeste agile" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/agilemanifesto.org');">manifeste agile</a> en 2001. Les principes agiles sont :</p>
<p><strong>1 )  </strong><u>Mettre en avant les humains, favoriser leurs interactions</u> et donc donner moins d’importances aux processus et aux outils.<br />
Casser le système de hiérarchie – n’avez-vous jamais eu l’impression des fois de jouer au téléphone arabe ? – et favoriser les contacts (directs de préférence) entre les personnes, notamment entre l’équipe de développement et le client.</p>
<p><strong>2 )</strong> <u>Redonner au client le pouvoir</u> par rapport au cahier des charges.<br />
Actuellement, le cahier des charges a pris une place déterminante dans les projets. C’est à lui que l’on se réfère incessamment. Lorsqu’il est validé, c’est lui qui détient la vérité et non plus le client. Chaque nouvelle demande peut être refusé au titre qu’elle n’est pas spécifiée dans le cahier des charges. Conséquence, les phases de recensement et d’expression des besoins sont par fois très longues et sans réelle fin, le client ayant peur de s’engager.</p>
<p><strong>3 )</strong> <u>Gérer les priorités</u>. Le client doit être le responsable de la priorité des besoins, c’est à lui (aidé éventuellement par l’équipe) de déterminer quelles fonctionnalités sont les plus importantes et méritent d’être développé au plus tôt.</p>
<p><strong>4 )</strong> <u>Accepter le changement</u>. C’est là, que la notion d’agilité prend tout son sens. Actuellement, les changements sont vécus comme une tragédie, certains sont acceptés (mais difficilement vécu par les développeurs qui y voient un surplus de travail), d’autres sont refusés car non inscrit dans le CDC et doivent faire éventuellement l’objet d’un avenant au contrat.<br />
Dans les méthodes agiles, le changement est accepté, car normal. Les besoins sont souvent difficiles à appréhender dans les projets informatique, car complexes et immatériels. De plus, ils peuvent évoluer en fonction de la conjoncture (ex : un concurrent sortant un produit similaire avec des fonctionnalités innovantes). <strong>Il est normal d’accepter le changement</strong>, dans ce cas là, c’est au client, à tout moment, de remettre à jour les priorités et d’accepter le développement de nouvelles fonctionnalités aux dépend d’autres.<br />
Les fonctionnalités annulées feront soit l’objet d’un autre lot, ou bien seront définitivement supprimées. Est-ce réellement un souci ? Au vu de la présentation de la présentation de Jim Johnson (<a href="http://www.agilemodeling.com/shared/AMDDIntroduction.ppt" title="Keynote Speech" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.agilemodeling.com');">Keynote speech, XP 2002</a>) la question se pose :</p>
<p><img src="/blog/wp-includes/images/AgilePrez/FeatureUsage.jpg" alt="Utilisation des fonctionnalités" width="450" /></p>
<p align="center"><span style="color: #808080"><em>Pourcentage d&#8217;utilisation des fonctionnalités implémentées et fonctionnant</em></span></p>
<p><strong>5)</strong> <u>Utiliser un cycle de développement itératif et incrémental</u>. Il est important de découper les développements en périodes de temps dont la durée est fixe. Ces périodes de temps sont appelées itérations ou sprints.</p>
<p>Au début de chaque itération :</p>
<ul>
<li> le client décide des fonctionnalités à traiter en priorité,</li>
<li> les développeurs estiment la durée de chaque fonctionnalités,</li>
<li> en fonction de la vélocité (que l&#8217;on pourrait raccourcir à la productivité de l&#8217;équipe) on détermine les fonctionnalités qui feront partie de l&#8217;itération.</li>
</ul>
<p>Il est important que les itérations restent courtes (de 2 à 6 semaines max). A la fin de l&#8217;itération les fonctionnalités livrées sont testées, intégrées et utilisables. Le client peut ainsi décider de passer en production le produit après n&#8217;importe qu&#8217;elle itération, s&#8217;il le trouve suffisamment avancé.</p>
<p>L&#8217;intérêt de ce découpage en itération et multiple :</p>
<ul>
<li>stimuler les équipes et éviter l&#8217;effet &#8216;gaz parfait&#8217;. En effet, un développeur (et tout être humain <img src='http://www.richand.info/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) a tendance à consommer tout le temps aloué à la réalisation d&#8217;une tâche, même si celui-ci est surévalué.</li>
<li>supprimer l&#8217;effet tunnel. Dans un cycle de développement classique, après la phase de spécification, le projet rentre dans &#8216;la boîte noire&#8217;, ou le client est totalement aveugle. Puis, il ressort plusieurs mois après, quand les développements sont finis, et devient enfin visible pour celui-ci. Difficile d&#8217;identifier les dérapage ou bien même de se rendre compte des erreurs contenues dans les spécifications.</li>
<li>recalculer la productivité. Après chaque itération on peut en effet recalculer la vélocité de l&#8217;équipe et ainsi remettre à jour le planning et prévoir en conséquence, et ce, très tôt dans le projet.</li>
</ul>
<h3>Et les méthodes Agiles prennent :</h3>
<p>D&#8217;après une <a href="http://www.solutionsiq.com/PDF/Truth_About_Agile_Processes.pdf" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.solutionsiq.com');">étude d&#8217;août 2007 sur les méthodes agiles</a>, effectués par le cabinet Forrester, on se rend compte que les méthodes agiles ne sont plus d&#8217;obscures pratiques utilisées en cachette par quelques geeks.</p>
<p><img src="/blog/wp-includes/images/AgilePrez/forresterAgiles.jpg" /></p>
<p>D&#8217;autant plus que d&#8217;après ce rapport, ces chiffres sont à revoir à la hausse, la question ayant été posée aux grands décideurs des entreprises, qui ne sont pas forcément au courant de l&#8217;ensemble des méthodes pratiquées par leurs chefs de projets.</p>
<h3>Attention, aux fausses idées :</h3>
<p>Les fausses idées sur les méthodes agiles ont encore la vie dure, les principales sont pour moi :</p>
<ul>
<li><em>Dans un projet agile, le planning n&#8217;est pas très précisément défini, c&#8217;est donc forcément un projet sans fin</em>. <strong>C&#8217;est faux!</strong> Dans les méthodes agiles ont retrouve également une phase d&#8217;estimation initiale qui permet de fixer une durée et une enveloppe au projet. Là ou cela change, c&#8217;est qu&#8217;après on n&#8217;essaye pas de faire un plan de tout le projet. On ne réalise le planning fin que pour la prochaine itération.<br />
Sur ce point la j&#8217;irai même plus loin, en affirmant que les projets gérés de manière &#8216;classique&#8217; peuvent même être plus risqués et sans fin. En effet, dans ce type de projet le client n&#8217;a pas forcemment conscience des dérives et lorsque l&#8217;on s&#8217;approche des dates critiques, les parties les plus importantes pour lui ne sont pas forcemment celles qui ont été développées, et donc il ne peut rien faire de ce début d&#8217;application qui a été développée. Au contraire, dans les méthodes agiles, le client, à tout instant, a la vision précise de l&#8217;avancement des développements, car après chaque itération un produit fonctionnant lui est livré. A la fin du temps imparti initialement, il est sure que les parties développées correspondent aux fonctionnalités les plus importantes.</li>
<li><em>Cela ne marche pour des contrats au forfait</em>. Si! Mais il faut prévoir dans ce cas la, un contrat différent de ce que l&#8217;on fait actuellement. Et même, si le client ne souhaite pas s&#8217;impliquer, on peut utiliser quand même certains concepts agiles en interne, en désignant dans l&#8217;équipe une personne représentant le client et en réutilisant le concept d&#8217;itération.</li>
<li><em>Les méthodes agiles ne fonctionnent que pour certains types de projets bien précis</em>. Faux. Les méthodes agiles ont été testées sur tout types de projets, et l&#8217;on a remarqué qu&#8217;elles étaient les plus efficaces sur les projets critiques, les projets risqués avec des spécifications mal définies initialement.</li>
</ul>
<p>Voila, je m&#8217;arrête là pour le moment. J&#8217;ai essayé ici de vulgariser les concepts agiles que je trouve extrêmement intéressant (désolé pour les approximations ou les raccourcis). Je ne me suis pas trop arrété sur les concepts de qualité que mettent en avant les méthodes agiles, en effet, même si l&#8217;on doit à celles-ci un regain d&#8217;intérêt pour les tests et l&#8217;apparition de méthodes tels le TDD (Test Driven Development), je pense que ces méthodes ne sont pas incompatibles avec la gestion de projets classiques et que ce n&#8217;est pas la un point de divergence fort.</p>
<p>Dans un second temps je vous présenterai la méthode Scrum et je ferais un petit résumé du<a href="http://www.amazon.fr/Gestion-projet-Vers-m%C3%A9thodes-agiles/dp/2212121652" target="_blank" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.fr');"> livre de Véronique Messager Rota</a> que je viens de finir et qui est extrèmement intéressant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richand.info/blog/2008/01/agilite-xp-extrem-programming-scrum/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Planning Poker</title>
		<link>http://www.richand.info/blog/2007/11/planning-poker/</link>
		<comments>http://www.richand.info/blog/2007/11/planning-poker/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 21:16:49 +0000</pubDate>
		<dc:creator>pastisman</dc:creator>
				<category><![CDATA[Méthodes agiles]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[méthodes agiles]]></category>
		<category><![CDATA[planning poker]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.richand.info/blog2/?p=7</guid>
		<description><![CDATA[J&#8217;ai découvert il y a un certain temps déja cette méthode d&#8217;estimation de charge qui commence à avoir pas mal de succès dans les projets Scrum. Cette méthode, assez ludique, permet d&#8217;estimer en équipe le cout d&#8217;un item de backlog. Chaque &#171;&#160;joueur&#160;&#187; possède un jeu de carte avec une durée marquée sur chacune des cartes [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai découvert il y a un certain temps déja cette méthode d&#8217;estimation de charge qui commence à  avoir pas mal de succès dans les projets Scrum. Cette méthode, assez ludique, permet d&#8217;estimer en équipe le cout d&#8217;un <a href="http://fr.wikipedia.org/wiki/Scrum#Items_de_backlog_de_produit" hreflang="fr" onclick="javascript:pageTracker._trackPageview('/outbound/article/fr.wikipedia.org');">item de backlog</a>.<br />
Chaque &laquo;&nbsp;joueur&nbsp;&raquo; possède un jeu de carte avec une durée marquée sur chacune des cartes et à  chaque tour, le joueur choisi la carte correspondant à  son estimation. Puis chacun dévoile sa carte.</p>
<p><a href="http://www.crisp.se/planningpoker/" hreflang="en" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.crisp.se');"><img src="http://www.crisp.se/planningpoker/crispdeck.jpg" /></a></p>
<p>Une présentation sympa en est faites  <a href="http://www.crisp.se/planningpoker/" hreflang="en" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.crisp.se');">ICI</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richand.info/blog/2007/11/planning-poker/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

