Accueil Blog PMA Gestion de projet 5 idées fausses à propos des Méthodes Agiles
5 idées fausses à propos des Méthodes Agiles Imprimer
Gestion de projet
Mercredi, 13 Janvier 2010 01:20

La grande diversité des méthodes agiles et de leur pratique génère de nombreuses idées fausses à leur sujet. L'objet de cet article est de démystifier les idées fausses les plus courantes trouvées dans les débats sur le Web en y répondant factuellement.

 

L'arrivée des Méthodes Agiles est en train de générer un fossé entre leurs partisans et ceux des méthodes traditionnelles. Cette rupture est renforcée par le fait que les 4 principes fondateurs des méthodes agiles sont des contre-pieds vis à vis de l'approche classique:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

(cf. le Manifeste Agile, site officiel: http://agilemanifesto.org/)

 

L'idée ici n'est pas de prendre parti mais de permettre des débats sains. En effet, chez Time Performance, nous sommes convaincus qu'il n'y a pas de méthode bonne dans l'absolu. Et c'est d'ailleurs pourquoi notre logiciel de gestion de projet a été conçu pour être souple tout en s'inspirant des meilleures pratiques et outils, agiles ou classiques.

 

Idée fausse n°1: Les Méthodes Agiles sont réservées aux "petits" projets

Faux, faux et archi-faux... C'est pourtant l'idée la plus répandue. C'est aussi la plus fausse.

1) Les Méthodes Agiles ont pour raison d'être de permettre au projet de s'adapter facilement aux changements ("Reponding to change.."). Cela n'a de sens que pour les projets de durée plutôt longue, car le risque de changement est d'autant plus fort que le projet s'éternise. De plus, la durée est nécessaire pour rentabiliser l'investissement lourd qui est fait dans les tests, leur automatisation et la qualité du code, qui sont au coeur des méthodes agiles.

D'ailleurs les méthodes Agiles ont été conçues pour le développement de produit logiciel (d'où le terme de Product Owner qu'on trouve dans SCRUM), dont la durée de vie s'étend sur plusieurs années voir plusieurs décennies.

Cette idée fausse a peut-être été inspirée par la brièveté des cycles de développement. Or un développement itératif a pour but d'éviter le risque d'effet tunnel, qui est d'autant plus important que le projet est long.

Donc les méthodes Agiles sont particulièrement adaptées, voir recommandées, pour les projets de longue durée et non pour les projets courts.

 

2) Concernant la taille de l'équipe, il est vrai que SCRUM limite la taille des équipes à 8 ou 9 individus, et XP le recommande en pratique, car c'est le fonctionnement optimal. Mais rien n'interdit de constituer plusieurs équipes qui travailleront chacune sur un sous-projet. D'ailleurs SCRUM le prévoit avec un mécanisme de coordination qui s'appelle le SCRUM de SCRUMs. Une équipe de plusieurs dizaines de personnes peut être ainsi constituée.

 

Idée fausse n°2: La classification "Méthode Agile" détermine un groupe homogène

Les méthodes Agiles sont très différentes les unes des autres. Elles sont même parfois presque totalement complémentaires, comme XP et SCRUM. Si ces 2 dernières méthodes marquent une réelle rupture par rapport à l'approche classique, certaines comme le Unified Process constituent des chaînons intermédiaires de l'évolution des méthodes au cours des 20 dernières années.

Toutes ces méthodes ne s'entendent que sur les 4 principes, ce qui est peu. De plus, le Manifeste Agile offre certaines latitudes en matière d'interprétation. Il est donc hasardeux de parler des Méthodes Agiles en général. Il vaut mieux parler des pratiques proposées par telle ou telle méthode.

A cela, il faut ajouter que les mises en oeuvre de ces méthodes sont encore plus hétéroclites.

 

Idée fausse n°3: Les Méthodes Agiles sont des méthodes de gestion de projet

D'une part, l'objet des méthodes agiles est le développement logiciel et non la gestion de projet. Si certains sujets de la gestion de projets sont évoqués comme les estimations et la planification, d'autres sont tout bonnement absents (par exemple la gestion des coûts).

D'autre part, les méthodes agiles ne sont pas des méthodes. Les auteurs de XP et de SCRUM les définissent comme des ensembles de bonnes pratiques.

 

Idée fausse n°4: Les Méthodes Agiles sont des méthodes de développement rapide ou de prototypage

Des cycles de livraison courts ne signifient pas que les développements sont rapides. Cela implique simplement de valider l'avancement régulièrement et concrètement.

Il y a même fort à parier que les développements seront moins rapides au départ par rapport à un cycle en V, à cause des exigences en matière de qualité de code et de couverture de tests, incluant de nombreux refactorings (redéveloppements). Ce n'est donc pas une bonne approche pour faire du prototypage.

Les projets Agiles sont des marathoniens et non des sprinters. C'est pourquoi ils voyagent légers. Et sur la distance, ils sont en général les plus rapides et consomment moins.

 

Idée fausse n°5: Les développements agiles sont difficilement maintenables à cause du manque de documentation

La crainte de voir la connaissance du fonctionnement du logiciel partir avec les développeurs à l'issue du projet est parfaitement légitime lorsque la documentation est insuffisante.

Cependant c'est une erreur de considérer qu'il n'y a pas de documentation. A l'instar de l'Open Source, dans une approche Agile, la principale documentation est le code source. Et comme de nombreuses livraisons sont réalisées tout au long du projet, tout est fait pour garantir une parfaite maintenabilité.

D'une part, les règles de codage sont très strictes et leur validation automatisée. Plusieurs pratiques au coeur des méthodes Agiles (le refactoring,  l'absence de Code Ownership, le Pair Programming etc.) garantissent au final un code source propre, bien conçu, lisible et bien documenté.

D'autre part, dans code source il faut inclure les tests (unitaires, intégration, fonctionnel etc.). Les tests sont comme un document de spécifications détaillées et un outil de validation intégrés. C'est un investissement non négligeable mais indispensable pour la maintenabilité et l'évolutivité.

Dans une approche agile, le code source et les tests tiennent lieu respectivement de conception détaillée et de spécification détaillée, exprimées en langage naturel dans les commentaires et en langage informatique. Le gros avantage est de garantir que la documentation est toujours à jour par rapport au code, et que le code reste conforme aux spécifications grâce à l'exécution quotidienne des tests avec l'intégration continue. Un développement agile devrait donc être très facile à maintenir.

 

En réalité, la vraie question est: "Entre une documentation complète (spécification, analyse, conception etc.) et un code source propre et bien testé que choisiriez-vous?"

Les méthodes agiles donnent la priorité au code source et aux tests. Le cycle en V favorise dans la pratique les documents qui sont générés en amont du projet, au détriment du code et des tests situés en aval du cycle lorsque la pression pour aller vite, trop vite, est beaucoup plus forte.

 

Cet article a maintenant une suite: 5 autres idées fausses sur les Méthodes Agiles

 


Rétrolien(0)
Commentaires (12)Add Comment
0
Coach Agile et Achitecte informatique
Par Bruno Larouche, janvier 20, 2010
Excellent Billet, j'ai souris en lisant vos points. Je ne compte plus le nombre de fois que j'ai du fournir ce genre d'explications.

Je vous dirais continuer, la connaissance d'agile grand publique est encore jeune. Conséquence, il y a beaucoup de fausses idées. Ensemble, nous finirons par expliquer mais surtout faire comprendre la vrai réalité des méthodes (approches) Agiles.
0
L'idée fausse n°3 me parait... fausse.
Par Olivier Destrade, février 04, 2010
Certes, toutes les méthodes agiles ne sont pas des méthodes de gestion de projet. XP, comme vous le soulignez, est plutôt une méthode d'ingénierie logicielle.

En revanche, Scrum est bien une méthode de gestion de projet:

- Il s'agit bien d'une méthode et pas seulement d'un ensemble de bonnes pratiques, puisque Scrum décrit un processus de cycle de vie du projet complet et précis.

- Elle recouvre les domaines classiques de l'intégration, du contenu, du temps, de la qualité, des RH, la communication. Les coûts, comme les risques, ne sont pas explicitement traités, mais rien ne s'oppose à mettre en place un indicateur de performance de coût (Technique de la valeur acquise), et d'autre part Scrum dans son ensemble peut être considérée comme une gestion de risques...
0
Réponse à: L'idée fausse n°3 me parait... fausse
Par Renaud (Time Performance), février 04, 2010
Merci d'avoir ouvert le débat sur ce point.

A propos de SCRUM, Ken Schwaber le dit lui-même "SCRUM isn't a methodology" dans cette vidéo (http://www.youtube.com/watch?v=IyNPeTn8fpo avancer jusqu'à 11 min. 40 s.). Ce co-auteur de SCRUM le définit plutôt comme un ensemble des meilleures idées, un ensemble de pratiques et de règles, un framework... (autre source: http://www.scrumalliance.org/resource_download/227).

Loin d'affaiblir la valeur de SCRUM, cela la renforce car cela étend son domaine d'application. SCRUM est plutôt "inclassable", entre le processus de développement et le management d'équipe.
0
Retour sur l'idée fausse n°3
Par Jérémy Buget, mars 26, 2010
Si les méthodes agiles ne sont pas des méthodes de gestion de projet, pourquoi classer ce billet dans la catégorie "Gestion de projet 2.0" ? smilies/wink.gif

[NDR] la catégorie a depuis été renommée "Gestion de Projet" tout court.
0
Encore l'idée fausse n°3
Par Renaud (Time Performance), avril 02, 2010
Pourquoi classer ce billet dans cette section du blog ?

Tout simplement parce qu'il y a une interdépendance très forte entre le processus de développement et la gestion de projet. C'est d'ailleurs pourquoi dans SCRUM la frontière entre les 2 domaines n'est pas toujours très claire.

Un nouveau type de processus développement conduit à changer notoirement la façon de gérer les projets, d'où le 2.0 qui marque une évolution majeure.

Enfin, si vous vous intéressez aux méthodes de gestion de projet, je vous recommande fortement Prince2.
0
Débat sur le point 3
Par Alexandre de Pellegrin, avril 13, 2010
Merci pour ce bilet. Il me donne du grain à moudre. Concernant le point 3, j'ai aussi quelques remarques. Je suis plutôt orienté SCRUM pour le moment. Je voudrais revenir sur la partie de gestion de budget. Si effectivement elle n'est pas présente pour le SCRUM Master, je pense que c'est uh point que dois gérer le Product Owner. Enfin, je n'ai pas fait la formation PO alors je m'avance peut-être un peu mais ça me semble être du bon sens. En tout cas, pour ma part, SCRUM peut tout à fait se substituer sur l'ensemble des points de gestion de projet classique. Du moins, c'est expérience que j'en ai.
0
Débat sur le point 3 et gestion des coûts
Par Renaud (Time Performance), avril 13, 2010
@Alexandre
Merci pour votre commentaire qui fait naturellement surgir la question suivante:
- Qui est le chef de projet dans SCRUM (c-à-d qui fait de la gestion de projet dans SCRUM), le Product Owner ou le SCRUM Master ?

Il est difficile de trancher. Personnellement, je pencherais plutôt vers le Product Owner, qui a le pouvoir de décision et les cordons de la bourse. Le SCRUM Master s'apparenterait alors à un Team Manager, tel que définit dans Prince2.

C'est un débat un peu théorique car en pratique les rôles se mélangent allègrement. smilies/wink.gif
0
Réponse à l'idée fausse N°3
Par Pierre Neis, avril 19, 2010
Ma réponse se décompose en deux parties:
1. les méthodes agiles
2. Scrum

Concernant les méthodes agiles, je suis assez d'accord que celles-ci ne sont pas "une méthode" mais un ensemble de règles et de bonnes pratiques ayant eu comme support originel le développement de logiciels.
L'agilité peut être considérée comme un fil conducteur, une philisophie, le concept de base.

Pour Scrum, il s'agit en fait de tout autre chose.
Scrum est une méthode de Gestion de Projet, permettant de manager un projet de manière extrêment efficace. Dans cette structure où le rythme est le moteur de base, se joue la mise en place de l'agilité.
Si nous parlons de Gestion de Projet, nous parlons également de Responsable de Projet.
Dans Scrum, l'approche se fait de façon démocratique, càd:
- Le ScrumMaster est le responsable du Process (et de l'architecture/organisation in extenso)
- Le Product Owner est le responsable du produit

Ils sont tous les deux responsables, Pourquoi? Le Product Owner s'engage sur le Produit et sur la Release; le ScrumMaster s'engage à développer un Process "Industriel".

Scrum fonctionne seulement si les deux "managers" co-habitent.

C'est pareil dans une entreprise: le PDG est responsable du Process, le DG est responsable du Produit; ou le PDG est responsable du Bilan et le DG est responsable du compte de résultat.
0
Idée n°3 vue au travers du guide PMBoK
Par Jérôme Boullot, avril 21, 2010
Les méthodes agiles et scrum en particulier sont-elles des méthodes de gestion de projet ? On peut trouver des éléments de réponse à cette question dans le PMBoK guide.

Scrum est bien une méthode de gestion de projet, dans la mesure où elle propose des outils et des pratiques pour chacun des 5 process groups (§1.3). Il n’est écrit nulle part qu’une méthode doit proposer des solutions pour tous les items, bien au contraire, c’est au chef de projet de déterminer les outils et artefacts à utiliser, en fonction de leur coût d’utilisation et des contraintes du projet : l’éventail sera complet pour la construction d’une centrale nucléaire ou le développement d’un nouveau TGV, réduit à l’essentiel pour un site web développé sur moins d’un mois.

Un autre insight est apporté par le PMBoK guide : c’est l'explicitation de la différence entre les projets et les opérations. Ces dernières supportent les projets, mais se concentrent sur des productions et des services récurrents. Dans la mesure où Scrum fonctionne comme un flux, standardise les opérations, introduit une répétitivité au travers des sprints, la méthode peut être porté par les opérations. La construction du project charter doit prendre comme éléments d’entrée les pratiques et contraintes opérationnelles. Dans le charter d’un tel projet, on trouverait donc « le projet sera organisé et suivi avec la méthode scrum, le scrum master sera X, le sponsor sera Y, etc. »
Un chef de programme bâtit un planning et une structure de coût pour un projet donné sur la base du calcul de vélocité de projets antérieurs, et des planning-pokers, et un responsable d’un petit B.E software, owner des process opérationnels pour le dév software, pourrait remplir le rôle d’un scrum master sur ce projet.

Concernant les méthodes agiles, il faut voir au cas par cas:
XP représente juste des guidelines, et d'ailleurs on couple souvent l'extereme programming avec scrum pour avoir des éléments de suivi de projet.
Le Lean software development, en revanche, est typiquement un ensemble d'outils et de méthodes opérationnelles qui apporte ses process prêts à l'emploi pour la gestion de projets. Ainsi, le contrôle de l'avancement et du "product backlog" est déjà porté dans un système kanban.
0
Article traduit en anglais
Par michel operto, avril 22, 2010
http://dantotsupm.wordpress.co...e-methods/

J'ai enfin trouvé le temps de traduire cet intéressant article en Anglais. Michel.
0
Sur le terrain ...
Par Fred, septembre 03, 2011
En soit bien documenter son code est une bonne chose (dedans), mais si c'est l'unique design comme suggéré par l'Xp, c'est du hack code, c'est à dire inmaintenable ...
L'Xp dans la bouche de certains codeur c'est avoir le droit de faire du code spaghetti orienté ... fonctionnel, de coder sans de presque de design et de test ... ils te font des régressions et après ils disent je fais de l'Xp et ils font perdre du temps au team, qui eux suive le process classique (itératif cela dit) design/codage/test. D'où avez vous vu un cycle en V sans itération aujourd'hui (depuis 10 ans ..) ???
0
Re: sur le terrain
Par Renaud, septembre 04, 2011
La maintenabilité du code est à mon humble opinion supérieure en approche Agile pour les raisons expliquées au point n°5. Encore faut il suivre les pratiques agiles... Le fait de prétendre faire de l'Xp ne suffit pas.

Je suis à 100% d'accord avec vous sur votre dernière remarque. Personne ne pratique plus le cycle en V comme dans les années 70. Il y a quand même 2 différences majeures entre les itérations d'une approche par lots avec des cycles de design/codage/test et un mode Agile:
- la durée des itérations, beaucoup plus courte en mode agile,
- le fait d'inclure ou non l'expression de besoins + analyse + spécification dans le cycle.

Cela étant dit, il n'y a pas d'approche meilleure qu'une autre. Cela dépend du contexte du projet et surtout il est possible de faire un mix des deux.

Ecrivez un commentaire
Réduire l'éditeur | Agrandir l'éditeur

security code
Entrez les caractères affichés


busy