Dans mon précédent article, j’ai traité des méthodes agiles et présenté la méthode PUMA comme un mode d’emploi afin d’améliorer votre utilisation des méthodes agiles et de mettre en place le bonnes démarches dès le début de la gestion de projet. PUMA se place dans la continuité des méthodes agiles et nous aide à distinguer les points importants nécessaires à la réussite du projet afin d’adopter la meilleure démarche pour les piloter.

Comme je vous l’ai dit précédemment PUMA est l’œuvre de Jean Pierre Vickoff. Je vais ici tenter de sortir la méthode PUMA de son application première liée à la réalisation de logiciel pour mettre en avant les points utiles à la gestion de projet en général et plus particulièrement au management.

Jean Pierre Vickoff part d’un constat : la démarche classique et la gestion des risques par prévention est lourde, coûteuse et pas toujours fiable. Plus la planification se fait sur une longue période, plus la marge d’erreur est importante ! De plus, il ne faut pas perdre de vue l’effet tunnel, qui nous empêche de réagir aux évolutions de l’environnement, affectant dans une certaine mesure le projet. L’analyse de Jean Pierre Vickoff passe d’un mode prédictif à un mode adaptatif qui part d’une planification initiale légère réévaluée de manière régulière. Le risque est évité par l’équipe en charge du projet de part la recherche continue de la performance. Les raisons justifiant la mise en place d’une nouvelle méthode générale de gestion de projet étant exprimée je vais maintenant vous exposer la méthode PUMA.

  1. La démarche de la méthode PUMA
  2. Les 4 moteurs de PUMA
  3. La gestion de l’équipe

1) La démarche de la méthode PUMA

La gestion du projet ne peut pas se départir d’une vision d’ensemble du travail à réaliser comme point de départ. Il est ici préconisé une approche de type Top-Down, de manière à décomposer le projet, ce qui facilitera la mise en place des itérations. D’autre part la méthode agile se focalise sur le service à rendre et non pas sur le produit à réaliser (approche classique). Cette notion est importante concernant l’organisation future et le mode de management du projet. Le pilotage du projet se fait ainsi par une gestion mesurée des risques associé à une gestion des enjeux (service à rendre). On retrouve ici la nécessité de l’implication de l’utilisateur. Mais attention, ce dernier doit être représentatif pour les autres utilisateurs (ces derniers respectent son approche, écoutent ses conseils et légitiment son rôle). Ensuite il doit connaître son métier et notamment la réalité opérationnelle à laquelle les utilisateurs futurs auront à faire face. Cela suppose une capacité à anticiper les évolutions futures de manière à ce que le projet s’adapte, maximise sa performance et évite ainsi les risques. L’anticipation passe principalement par une bonne connaissance de l’environnement. En effet, son évolution peut modifier les exigences du client, le but est donc aussi d’anticiper ces exigences ce qui permet de gagner ainsi du temps et d’accroître la satisfaction du client. Enfin, cet utilisateur doit faire preuve de motivation et d’intérêt quant à la modification de son outil de travail.

Face à la multiplicité des méthodes agiles, la difficulté à définir leurs particularités, de manière à gérer (ou piloter) son projet le mieux possible ; PUMA vous donne les clés de la réussite :

  • Mettre en avant les points importants, expression des exigences par le client (si possible en direct, la lecture d’un document entraine une interprétation par le lecteur)
  • Définir les exigences (sur une feuille, user story). Une approche simplifiée permet de mieux planifier.
  • L’équipe en charge du projet travail dans un espace ouvert (War Room) et les murs servent de support de communication (radiateur d’information). Cela permet une communication claire, chacun est impliqué, la progression est visible et les problèmes sont mieux évalués et solutionnés.
  • Mélanger les techniques afin de faire du cas par cas. Ne pas s’arrêter à une analyse, prendre les éléments utiles à gestion du projet. Il ne faut pas perdre de l’esprit que ces méthodes sont avant tout des méthodes de développement de logiciel, elles ne sont donc pas à appliquer à a lettre, mais bien à comprendre et adapter.

En découle une gestion des projets régie par 4 moteurs.

2) Les 4 moteurs de Puma

Idéal : combiner les 4 moteurs ensemble, mais très difficile, voir impossible, donc privilégier les moteurs importants en fonction du projet et du résultat que l’on cherche à obtenir.

A) Le moteur de communication

Ce moteur vise à améliorer les intéractions entre les membres de l’équipe. Les méthodes agiles privilégient la collaboration, la communication est une des clés de la réussite. De cette dernière découle toute l’organisation du projet, son adaptabilité, sa réactivité et sa qualité.

C’est pour cela que JP Vickoff développe un outil entièrement dévoué à la communication. Le principal mode d’échange et d’organisation sont les réunions. Afin que celle-ci se déroule le mieux possible et maximise leur efficacité, il est bon de respecter quelques principes…

La réunion, ou session doit être préparée. Il faut dans un premier temps définir les thèmes, qui va parler de ces thèmes et qui sera présent pour discuter. Ensuite, afin d’organiser la discussion et de ne pas perdre de temps, il est nécessaire d’affecter une durée consacrée à ce thème. Cette durée dépend naturellement aussi du degré de priorisation du thème. Enfin, il est judicieux de s’interroger sur les prérequis nécessaire au déroulement de la session. Une fois tout ceci établi, l’organisateur de la session peut envoyer les convocations aux participants.

Si la démarche semble lourde, elle s’avère efficace:

– Les sujets sont abordés par ceux qui les maitrisent et qui sont concernés, on ne fait pas perdre de temps aux autres.

– Les participants peuvent préparer leur intervention, et donc sélectionner à l’avances les points importants, pas de perte de temps en réflexion durant la session. Ce phénomène est renforcé par le minutage

– La précision et la structure de la session rassure et motive les participants: pas de risque de débordement. Cela les maintient dans une certaine dynamique.

– Un exemple de rigueur invite à la rigueur.

La seconde partie est le déroulement effectif de la session. Il est utile d’introduire la session, et de rappeler les thèmes qui seront abordés ainsi que le minutage effectué. Suite à cette première étape la réunion commence réellement. De manière à respecter la structure de la réunion, les thèmes proposés devront être résolu immédiatement. Il existe de type de résolution directe: le consensus ou l’arbitrage. Toutefois certains thèmes nécessitent une discussion plus longue et aucun accord immédiat ne peut-être trouver. Afin de ne pas faire perdre de temps aux autres participants et de prendre du recul sur le sujet abordé (facilite une résolution future), la résolution sera différé. Dans ce cas, on crée un point d’action, cette situation ne doit pas être une esquive du problème.

La troisième partie de la réunion, à l’image de la troisième mi-temps, n’est pas indispensable mais souvent très utile. Elle favorise la cohésion au sein de l’équipe et permet à chacun de faire le point, en retenant les bons éléments et les éléments à améliorer. Cela passe principalement par la formalisation du résultat. Toutefois, d’autres solutions complémentaires peuvent être envisagées, ceci en fonction de l’équipe.

En effet, le moteur communication ne correspond pas seulement à l’organisation de réunion, il a aussi pour objectif d’animer l’équipe (durant et en dehors des sessions). On peut mettre en avant 8 clés à l’animation:

  • Organiser le développement des thèmes
  • Maîtriser la dynamique du groupe en gérant la participation de chacun
  • Recentrer les thèmes
  • Eviter et gérer les conflits (création d’un point d’action, résolution du conflit puis résolution du problème)
  • Respecter les priorisations définies préalablement et le temps impartis
  • Faire apparaître la progression, que les participants en soit conscient
  • Supporter les participants (relance, questionnement, reformulation)
  • Synthétiser et formaliser la décision en direct, importance de la clarté

Afin d’optimiser l’utilisation de ces clés, l’utilisateur se doit de respecter certaines règles, telles que la recherche continue d’un consensus et la conservation d’un statut neutre (pas de prise de position, objectivité). Sa neutralité est en quelque sorte une garantie de manière à ce que les autres membres de l’équipe lui fasse confiance. Enfin, de manière générale, il faut veiller à ce que ce qui est dit soit fondé sur des faits. L’éveil aux techniques de médiation peut être un atout pour l’animateur.

B) Le moteur de solution

L’approche agile du projet suppose une remise en cause de l’approche classique verticale, au travers de l’organisation hiérarchique. En effet, PUMA prône un engagement de tous, l’organisation n’est plus verticale, mais horizontale. L’équipe s’auto-gère sans chef.

JP Vickoff distingue 4 classes de préocupations. Cette distinction permet de cerner le problème dans son ensemble et de trouver la solution la plus adaptée. Ces préoccupations se répartissent suivant l’avancée de la réflexion.Il associe à ces 4 classes 4 étapes majeurs du projet:

  • La vision : stratégie et contrainte (pourquoi? quand? combien?)
  • Le cadrage : aspects fonctionnels (comment?)
  • Les spécifications : aspects techniques (avec quoi?)
  • La solution : aspects organisationnels (qui fait?)

Au cours de cette démarche, il est important de veiller à ce qu’un représentant de l’utilisateur soit présent sur place afin de valider le travail accompli. Ce travail de validation se fait au travers de points de contrôles. Le fait d’organiser une réunion de présentation à la fin de chaque itération oblige l’équipe a bien « terminé » son travail. Chaque décision est prise sous forme de « go/nogo », cela correspond a une prise de décision collaborative sous forme de consensus.

L’objectif du moteur solution est aussi de traquer les tâches ne générant pas de valeur ajoutée. Cela passe par une recherche de la simplicité. Ce système permet de mettre en place une gestion de la valeur acquise (EVM) et de constater ainsi l’avancée du projet en terme de valeur. Si l’on veut que la valeur soit bien évaluée et répartie sur l’ensemble de la durée du projet, il s’avère nécessaire de cerner de manière précise les exigences des utilisateurs. C’est pour cela que l’expression des besoins par l’utilisateur, se fait de manière concise, sur une feuille et surtout avec ses mots. L’échange entre utilisateur et développeur est envisageable. Le tout génère une précision accrue de la tâche à réaliser.

C’est un système apprenant selon le principe de la roue de Deming. A la fin du cycle de production l’équipe a engrangé une expérience et un savoir. La réunion organisée en fin d’itération permet de faire le point sur les progrès effectués et de formaliser l’acquis en terme de connaissances pour l’équipe. Cela crée une sorte de « cale » qui empêche l’équipe de regresser. Ce mode de fonctionnement favorise la mise en place d’une gestion de la valeur acquise (EVM). Cette méthode consiste à donner une valeur monétaire au projet en cours en fonction de la progression effectuée. On regarde l’évolution par rapport au coût total estimé, de cette manière on a un meilleur suivi des coûts et l’on peut mieux gérer le budget.

On retrouve dans le moteur solution une des caractéristiques des méthodes agiles quant à la finalité du projet. En effet, l’agile se tourne vers une obligation de résultat, celle-ci s’obtient par une autonomie des moyens. En pratique cela reprend l’équipe auto-gérée, l’indépendance, la satisfaction des attentes des membres de l’équipe. Cette orientation résultat est la traduction de la satisfaction exacte du besoin du client ou plus généralement, du besoin des utilisateurs. Ceci diverge de l’état d’esprit classique qui dans le cadre de ses méthodes s’engage sur des moyens. Ces derniers sont formalisés de manière claire, mais le résultat ne génère pas d’engagement précis. Il est supposé que la réussite dépend des moyens, si ceux-ci sont bien évalués au départ, alors la réussite est sûre. Cette différence à la particularité de rassurer le client. Dans le cadre de la méthode agile, le projet commence sans que tous les besoins ne soient définies, une relation de confiance est donc nécessaire.

C) Le moteur de pilotage

Le moteur de pilotage préconise de commencer le projet par une vue d’ensemble, afin d’envisager la finalité du projet son application et les risques et problèmes auxquels il sera confronté. Cette approche permet de savoir où l’on va, mais surtout, comment on va y aller de manière à prendre le meilleur chemin, de choisir la meilleure solution dès le début.

Jean-Pierre Vickoff découpe ici le projet en 4 étapes clés et pondère chacune de ses étapes. Puis il développe quelques outils qui vous aideront à piloter votre projet.

La première phase d’un projet est le cadrage, cela représente environ 15% du projet. Durant cette phase, l’utilisateur pourra définir ses besoins et ses exigences avec les informaticiens. Il est important que le rapport informaticien/utilisateur soit direct et non pas au travers du responsable de projet ou du scrummaster. Cette tendance est fréquente car elle génère un pouvoir pour le détenteur de l’information, ce qui est renforcé par l’habitude des développeurs à ne pas être en relation directe avec le client. Leur domaine c’est la technique. La modification de cet état d’esprit et la compréhension de l’importance de l’échange est un prérequis au bon déroulement du projet.

La seconde phase d’un projet est l’architecture, cela représente 25% du projet. Durant cette phase on va concevoir de manière globale le projet, en répartissant les points d’exigences exprimés par l’utilisateur en itération. De cette manière on priorise les tâches et on prépare les prototypes afin de commencer la phase solution de manière sereine.

La troisième phase est la phase solution, elle représente environ 50% du projet. Durant cette phase les modules sont construits. C’est la phase de réalisation du projet durant laquelle on produit le livrable. Cette phase orientée technique, ne doit pas pour autant mettre l’utilisateur de côté, ce dernier continue à être présent sur le projet. En effet, si les exigences sont définies, elles peuvent évoluer, se modifier, il faut donc pouvoir réagir de manière immédiate afin de perdre le moins de temps possible. Le contrôle n’est pas présent qu’en fin d’itération, il se fait en continu.

La quatrième phase d’un projet est la livraison, cela représente environ 10% du projet. C’est durant cette période de temps que le projet et sa progression seront présentés. A chaque release (fin d’itération) la partie réalisée et livrable du projet est présenté au cours d’une réunion avec les responsables du projet (maîtrise d’oeuvre, maîtrise d’ouvrage). Cette présentation oblige l’équipe à présenter un livrable fini et donc utilisable au client. La présentation du travail valorise ce dernier,

Ces phases s’entrecoupent, chaque itération étant alors considérée comme un mini-projet.

Afin que chacune de ces phases se déroulent le mieux possible et que la pondération accordée soit respectée, il est nécessaire de mettre en place certains outils.

Le premier d’entre eux est l’espace de travail. Une organisation du travail de l’équipe en « War Room » multiplie par 2 la productivité de l’équipe selon une étude de Stéphanie Teasley de l’université du Michigan. Cela correspond à un espace de travail commun et ouvert. Toute l’économie est réunie dans la pièce, ce qui favorise la fluidité de la communication et la collaboration entre les différents éléments qui composent l’équipe. De manière à maximiser l’effet bénéfique du travail en War Room il est utile de suivre quelques règles :

  • Maximum 12 personnes dans l’équipe
  • Les informations présentes ne doivent concernées que le projet
  • Disposer d’une pièce séparée pour les meetings, d’un vidéo projecteur, d’une horloge murale, de bureaux avec vision indirecte, de lumière naturelle
  • Le représentant du client doit avoir une place
  • Le mobilier doit être adapté, notamment pour la programmation en binôme
  • Une salle de détente extérieure
  • Eliminer toutes nuisances extérieures (téléphone, bruit, passage,…)

De plus, il a été constaté que la mise en place d’un radiateur d’information (utilisant les murs comme support) et la tenue de standing meeting (permettant de maintenir la réunion courte), était bénéfique au déroulement du projet.

Par ailleurs, afin mieux piloter le projet il faut veiller à rester transparent, les problèmes ne doivent pas être masqués.

D) Le moteur de réalisation

Ce moteur, qui s’appuie sur trois éléments (travail en binôme, le remaniement du code et les tests) s’adresse plus particulièrement aux projets informatiques et à la programmation.

Dans le cadre de la gestion de projet (pas restreint aux projets informatiques) il est intéressant de comprendre ce qu’apporte le travail en binôme. Cette technique peut-être réutilisée.

Contrairement à ce que l’on pourrait penser dans une première approche, le travail en binôme ne représente pas une perte de temps dans la réalisation du projet. Cela représente dans le pire des cas un surcoût d’environ 15% mais cela entraine un minimum de 15% de réduction des bugs en fin de projets.

Le travail en binôme permet une meilleure concentration de l’équipe. Le binôme fonctionne sous la forme : l’un programme, le second vérifie. Les rôles changent au sein du binôme et les binômes changent au sein de l’équipe projet. Le travail à deux permet d’avoir une approche polyvalente sur un problème, cela donne une hauteur et un recul nécessaire à un solutionnement rapide des difficultés rencontrées. Par ailleurs le travail en commun oblige les développeurs à faire preuve de rigueur dans le développement de la logique du code. Cette technique accroit aussi le risque de conflits. L’écriture du code suit une logique personnelle au développeur qui peut dans certains cas difficilement accepter la remise en cause de cette logique, d’ou l’importance du médiateur. Enfin ce type d’organisation génère une dynamique de transmission des connaissances et de polyvalence des membres de l’équipe. Afin d’approfondir l’approche du travail en binôme, il est intéressant de consulter les écrits de Christophe Thibaut sur internet (http://cthibaut.club.fr/PourquoiBinomer.pdf).

Les bénéfices du travail en binôme se retrouvent principalement lors du remaniement et des phases de tests. Cela permet un gain de temps conséquent.

Le remaniement du code consiste à rechercher tous les doublons, redondances et parties de code mort. Le but est de nettoyer les fonctionnalités afin de rendre le code plus clair et la logique plus accessible (moins personnelle). Cette démarche se révèle très importante dans le cadre de la maintenance future. Les éventuels bugs rencontrés seront solutionnés plus rapidement.

Le pendant du remaniement (ou refactoring) c’est la phase de test. Plusieurs techniques et méthodologies de test existent telle que le TDD (test driven development) qui consiste à écrire les tests avant même de programmer ou encore le Behaviour Driven Development. Les tests sont une étape incontournable du développement de logiciels.

Selon Jean-Pierre Vickoff la gestion idéale d’un projet utiliserait les 4 moteurs en même temps, mais il est conscient que cela reste souvent impossible dans la réalité du projet. Plutôt que de tenter d’utiliser chacun des moteurs de manière incomplète, il est conseillé de définir les points à travailler ou à surveiller et à se concentrer sur un ou deux des moteurs proposés par la méthode Puma. Puma propose donc une solution de gestion de projet qui ne se limite pas aux projets informatiques mais qui s’adapte aux spécificités du projet.

3) La gestion de l’équipe

Dans le cadre des méthodes agiles et plus particulièrement dans le cadre de PUMA la gestion et le choix de l’équipe est primordial!

Le mode d’organisation suppose une auto-gestion de l’équipe, ce qui demande une certaine maturité de la part des différents membres. Cette maturité s’acquiert avec l’âge mais aussi et surtout avec l’expérience. Le rythme de travail et le choix des tâches à accomplir sont encadrés par des outils propores à l’application de la méthode PUMA. Toutefois les décisions sont prises en commun, chacun doit donc connaître, ou savoir évaluer le travail à accomplir.

Afin d’entretenir une motivation continue au sein de l’équipe et d’organiser cette dernière au mieux de manière à la laisser fonctionner de manière autonome, il est important de respecter certains points:

-Entretenir une culture du défi, les membres de l’équipe doivent être volontaire, autonome (individuellement), la progression doit être mise en evidence de manière claire et marquée. La récompense fait partie intégrante de la gestion de l’équipe (argent, mais aussi reconnaissance personelle du travail accompli, des pairs,…).

-Développer au sein de l’équipe une solidarité tournée vers l’entraide. Les membres doivent s’identifier à l’équipe (intérêt commun), se soutenir et reconnaître le travail accompli par les autres memebres. Il faut faire disparaître toute crainte de « demander », stopper immédiatement les réactions négatives (non-constructives) et récompenser l’équipe plus que l’individu.

-Créer une culture de la qualité. Cela passe par la mise en place et l’appropriation par chacun des membres de principes et de normes, ainsi que par l’entretien d’une « culture agile » au sein de l’équipe.

La composition de l’équipe s’appuie sur un besoin de complémentarité. En effet, l’approche agile suppose une équipe polyvalente (en opposition à spécialiste). Le degré de polyvalence de l’équipe dépend donc du degré de spéciaisation des différents membres la composant. Si la complémentarité est essentielle, l’humour s’avère nécessaire, le but étant de mettre en place une dynamique positive. Les membres se complètent, et donc s’apprennent mutuellement, ils savent désamorcer un conflit, prendre du recul sur les évènements et utilisent l’humour. Le fait de prendre en compte ces aspects permet de sélectionner les profils adéquats à la constitution de l’équipe.

Afin de réussir au mieux le projet il faut prendre en compte les évènements extérieurs et l’environement de travail.

Il paraît alors judicieux de nommer une personne en charge de la garantie de l’environnement de travail: pas de perturbations extérieures (sonnerie téléphoniques, passage de personnes étrangères à l’équipe,…)

L’un des facteurs extérieurs les plus importants est la vie des membres de l’équipe en dehors du projet. On peut limiter cette perturbation en assurant un revenu suffisant aux membres de l’équipe (pas de soucis d’argent), des horaires de travail adaptés et soutenables. Un intéressement pécunier en fonction de la réussite du projet (délai et qualité) peut-être envisagé, et génère en plus une motivation supplémentaire.

Enfin, solliciter l’avis d’une personne extérieure au projet de manière régulière permet de débloquer certaines situations et d’apporter un regard neuf.

Pour conclure ce paragraphe sur la gestion de l’équipe, voici un petit résumé des attitudes à bannir: absence de transparence, absence de confiance, absence de résultats, absence d’engagement, absence de responsabilisation.

Les méthodes agiles et plus particulièrement la méthode Puma s’appuient sur des prérequis intrinsèque aux membres de l’équipe: culture du défi, développement de l’entraide, culture de la qualité, complémentarité des profils. Le rôle du médiateur prend ici toute son envergure, car c’est à lui de garantir ces prérequis, ou de les générer au sein de l’équipe. Il doit donner une dynamique de « gagnant » à l’équipe. Pour cela il peut s’appuyer sur divers outils : humour, PNL, médiation, avis extérieurs, neurochirurgie (période les plus productives: environ 3h après le réveil; période verbale: après le déjeuner)…

Il faut garder à l’esprit l’importance du choix de l’équipe, ce sera à elle de mettre en place les outils préconisés par la méthode.

Puma est donc plus qu’une simple méthodologie, c’est un état d’esprit qu’il faut s’approprier.