Product Owner et Proxy Product Owner

Article d’origine : http://yannick.ameur.free.fr/dotclear/index.php?post/agile/Product_Owner_Proxy_PO

De plus en plus d’organisation Agile sont confrontées au problème de la scalabilité des processus Agiles.

Safe, LeSS, Scrum Of Scrum, ScrumBan, Kanban et multi-flux

Je vous propose de redéfinir l’un des principes : la mis en place d’un Proxy Product Owner ou d’un Product Manager Owner (PMO).

Principe du Proxy Product Owner

Petit rappel : Le rôle du Product Owner

Définissons le mot Proxy

Dans le cadre plus précis des réseaux informatiques, un proxy est alors un programme servant d’intermédiaire pour accéder à un autre réseau

Pourquoi un Proxy PO

Le cadre de travail du Proxy PO est rattaché à la scalabilité d’un Produit nécessitant de le découper en plusieurs sous produits. Il faut de l’énergie et du courage pour être un facilitateur de PO et faire circuler l’information.

Rôle du Proxy PO (PPO ou PMO)

  • Etre au service des Products Owner
  • Défendre la roadmap, être le représentant des PO
  • Aider à trouver des solutions et à les mettre en place.
  • Il est le garant des processus mis en place au sein de l’équipe PO.
  • Canalisateur de l’information et de la transparence qui en découle.

Je rejoins le point de Bertrand présenté au ScrumDay 2011 ici.

L’objectif du Proxy PO :

  • Aider à la décision entre plusieurs PO ou trouver la ou les bonnes personnes pour prendre la décision.
  • Le Proxy PO Priorise la RoadMap mais il ne peut pas dire comment réaliser les sous produits,
  • Il est facilitateur et doit connaitre un maximum de personne pour orienter et aiguiller les PO : Aiguilleur du ciel.
  • Le PPO est sur le terrain avec les PO et donc il sait qui fait quoi dans la team de PO.
  • Comme pour une team de développeur avec son Scrum Master, chaque PO de son équipe va présenter les éléments de son produit aux CODIR et démos externes.
  • Facilitateur des autres PO (au préalable les autres PO lui auront donnés mandat de PPO), le Proxy Product Owner peut même être élu dans une équipe de PO par élection sans candidat.
  • Le PPO n’est pas obligatoirement hiérarchiquement supérieur au autres PO.
  • Avec le temps le proxy PO devrait disparaître, pour redevenir PO à plein temps, il devrait garder et gérer le sous produit le plus petit.
  • Le Proxy PO doit responsabiliser son équipe, l’équipe doit rechercher ses coéquipiers.

Contre exemples

  • Le PPO n’est pas un PO bouche trous (amicalement)
  • Certain MANAGER s’improvisent Proxy PO et confondent Proxy et Firewall…
  • Certain manager pratique le « Juste in time », traduisez par : Je te donne l’information au dernier moment (voir pas du tout).
  • Le Proxy PO n’est pas un PO secrétaire entre les équipes de dev et les responsables de marchés et/ou le métier (ex AMOA).

Pour finir la définition de votre Proxy PO est la vôtre dans le cadre de votre entreprise avec les contraintes qui sont les vôtres.


C’est ma vision biensur.

Confinés mais formés : un retour d’expérience

Quand il y a un mois de ça, l’idée est apparue de transformer un cours sur l’agilité que je devais donner pour l’école Skema en cours distanciel, je dois avouer que l’idée ne m’a franchement pas emballé… Les étudiants sont un chouette public mais pas le plus facile : il est notamment plus difficiles d’avoir des interactions et de maintenir leur attention, que lors de formations professionnelles. Alors migrer un cours pour 44 étudiants ?

Choisir les bons outils

L’outil ne fait pas la pédagogie, mais dans le cas de la formation à distance avoir de bons outils va clairement participer à la qualité de la formation. Que ce soit pour le participant, pour qu’il se sente embarqué tout au long de la formation, que pour le formateur, si l’outil est simple et l’accompagne il sera plus détendu et plus à l’écoute des interactions plutôt que concentré sur la « technique ».

Pour ma part j’ai fait le choix de 3 outils principaux :

  • Zoom pour la vidéo. J’apprécie le fait de pouvoir avoir une mire des participants, le fait de pouvoir lever la main, le partage d’écran efficace, le fait de pouvoir streamer une vidéo et enfin surtout de pouvoir faire des groupes de travail et de pouvoir naviguer à l’intérieur des groupes.
  • Klaxoon pour tout ce qui est interaction globalement avec les participants. J’ai demandé aux participants de l’ouvrir à côté (onglet ou smartphone, tablette) et de le garder ouvert. J’en reparlerai plus bas mais vraiment Klaxoon est excellent pour garder le contact et pour pousser du contenu.
  • Draft pour les ateliers ou les participants sont libres de s’auto-organiser, de créer des boards par eux-même.

J’ai complété de temps en temps par un tout petit peu de framapad ou google docs pour de micro besoins (leur laisser créer des groupes par eux même par exemple ou produire un devoir évalué).

Avoir les bons outils et surtout se sentir à l’aise avec est pour moi indispensable pour que la formation se passe bien (un peu comme avoir une bonne salle bien équipée, pas surchauffée, peu bruyante dans un monde non confiné 🙂 ).

Lire la suite

Pourquoi et par qui automatiser les TNR (tests de non régression) pour l’intégration d’un progiciel en TDS

La pyramide des tests impose de garder une bonne proportion de l’effort de test à réaliser sur son produit (produit réalisé en pratiques agile) :

Voici une très belle présentation du sujet par Damien Beaufils

Pyramide des tests

Ce que Damien nous montre est dans le cadre du développement de votre produit, mais comment faire si vous avez un produit non maintenue (legacy) et que vous devez faire des modifications ?
Comment faire si mon produit est basé sur un progiciel (logiciel propriétaire, sur étagère à paramétrer) dont je ne connais pas la qualité ?

Il faut mettre en place une chaîne de test TNR ( test de non régression) fiable et sécuriser avec vos scénarios les plus importants.
L’automatisation de vos tests de non régression permet de faire vivre votre produit dans un cycle agile afin de vous permettre de le modifier quand vous voulez et d’avoir un feedback immédiat pour mettre en production dans la journée.
Vous y gagnez du temps de réaction et réduirez votre coût de recette car votre équipe recettera uniquement les changements.
Dans le cadre du logiciel à intégrer dans votre entreprise , les paramétrages du logiciel doivent être sous le contrôle de tests automatisés.

Si votre produit est prioritaire, stratégique pour votre entreprise, vous comptez l’utiliser sur plusieurs années et le faire évoluer, vous devriez faire appel à un qualiticien expérimenté pour la mise en place des outils de tests et son DSL de test.

Deux approches de test à faire :
Via la couche API :
Si votre produit est récent, vous devriez avoir accès aux APIs des services du produit (rest, soap, client-serveur).
Cette méthode est privilégié car plus simple à mettre en place afin d’éviterez les temps de latence de la couche IHM ou le scripting sur l’XLM qui provoque souvent des faux-positifs.
Via la couche IHM :
Utiliser des robots via des scriptes pour remplir les champs et valider les résultats via votre IHM logiciel : voir Robot Framework ou Cucumber.

Dans votre stratégie de test, chaque paramétrage a un objectif de comportement du produit, c’est ce comportement que vous devez tester et que vous devez rendre testable.
Pour cela votre qualiticien basera ses efforts en suivant le pattern SOLID :

Responsabilité unique (single responsibility principle)une classe, une fonction ou une méthode doit avoir une et une seule responsabilité
Ouvert/fermé (open/closed principle)une entité applicative (class, fonction, module …) doit être ouverte à l’extension, mais fermée à la modification
Substitution de Liskov (Liskov substitution principle)une instance de type T doit pouvoir être remplacée par une instance de type G, tel que G sous-type de T, sans que cela ne modifie la cohérence du programme
Ségrégation des interfaces (interface segregation principle)préférer plusieurs interfaces spécifiques pour chaque client plutôt qu’une seule interface générale
Inversion des dépendances (dependency inversion principle)il faut dépendre des abstractions, pas des implémentations

Pourquoi un qualiticien pour réaliser votre stack de tests ?
Le plus compliqué n’est pas d’écrire le test ou de tester, le plus compliqué est de définir les bons outils à mettre en place pour tester votre produit, et ensuite de mettre en place une mécanique de test résiliant aux changements des données sur votre environnement de test et minimiser les faux-positifs.
Ensuite, son travail est de gérer l’effort à mettre dans chaque test par rapport à son ROI car rappelez-vous la pyramide de tests présenté par Damien plus haut, les tests d’IHM et d’intégration sont les plus chers à faire et maintenir.

C’est la mission du Qualiticien Agile afin de vous permettre de sécuriser votre produit avec la mise en place du BDD Behavior Driven Development ou pour nous ici du TDS : Test Driven Settings.

Si besoin, nous travaillons avec des partenaires experts dans la mise en oeuvre de l’automatisation de vos tests de non régression TNR.

Agile Framing

Le Framing Agile donne du sens à nos initiatives de BootCamp et des starterKit Agile qu’AgileTribu a lancé ces dernières années.

Le Framing Agile est née de différente aventures initialisées avec Nathaniel Richand, poursuivi avec Judicael Paquet lors de nos missions communes.

Judicael à réussi à formaliser les réflexions sur : comment industrialiser le bootstrapping de Produit Agile avec Agile Framing sur son blog MyAgilePartner :

framing-agile-2

Bravo pour cette synthèse que nous partageons et qui évolue avec les différents coach, clients, Produits, tests réalisés autour des différents éléments du Framing.

Je conseils de lire les articles liées ici :

https://blog.myagilepartner.fr/?s=framing

A suivre pour 2019.

ScrumBan en Action

Why de l’article

Je ne trouve pas sur le web de définition du ScrumBan qui me satisfasse.

How

J’ai cherché à avoir un schéma proche des habitudes Scrum mais plus orienté ScrumBan.
Mais la littérature web ne montre que des images de board Kanban.

What
ScrumBan

 

Quelques explications :

Pour rester simple, cela représente un flux continu avec en entrée le backlog qui est entretenu par le processus ScrumBan et en sortie l’incrément qui est alimenté en continu comme en méthode Kanban.

La particularité du flux ScrumBan, quelque soit votre workflow, est que vous devez réaliser les actions en « just in time ».

Le ScrumBan est un mélange de Scrum (cérémonies et sprint) et Kanban (le flux tiré, la gestion des limites du travail en cours, du just in time ..) adapté à l’équipe et par l’équipe, dans mon cas voici la description des actions de notre flux :

  • Pas de sprint planning en début d’itération, mais des cérémonies d’affinage pour lever les loups entre analyste / dev
  • et des cérémonies d’estimation pour valider le ready d’une user story.
  • Nous avons gardé la rétrospective de fin d’itération.
  • Nous avons des rétrospectives technique.
  • La mise à disposition des US Done sont délivrées toutes les nuits, via le déploiement du ‘master‘ du gestionnaire de code source.
  • Nous avons aussi gardé le sprint review de fin d’itération pour communiquer vers les clients et sponsors les réalisations Done du Sprint.

Quand déclencher une action just in time ?

Quand une limite est atteinte ou quand le flux tiré le demande.
C’est à dire pour nous quand la limite de 3 US dans la file « A affiner » ou quand la file « Prête pour dév » est vide, alors nous déclenchons un atelier d’affinage ou d’estimation.

Un des objectifs de l’équipe et du coach est d’avoir un flux équilibré et fluide.

Vous pouvez lire le livre de Laurent Morisseau Kanban pour l’IT.

Dans mon cas, le kanban commence de la planification des prochaines études et fini à la mise en place de la feature dans le master de notre GitLab.

Vous pouvez lire l’article de Martin Fowler sur le FeatureBranch.

Je serai ravi de discuter avec vous de ce sujet à un Meetup Agile Tribu ou lors d’un BBL.

La tribu fait deux Cubes le Jeudi 26/01

Oyé Oyé

Agile Tribu fait son 2ème et 3ème Cubes : Prioriser, estimer et planifier et Expliquer l’agilité dans mon entreprise

le Jeudi 26 janvier 2017

logo_1cubego_officiel

Cube Après-midi : Expliquer l’agilité dans mon entreprise

Depuis plusieurs jours, semaines ou mois, vous entendez des personnes de votre entreprise dire qu’il faut passer à l’Agilité.

Vous entendez des : « Agile c’est quand tu collabores pour réaliser des user stories grâce au Scrum Master », « Tu es agile, tu mets des post-it au mur, et tu fais des points courts quotidiens » ou encore « Agile c’est un truc de dev, c’est pour qu’ils arrêtent la spec’ ! »…

Deux possibilités : vous ne savez pas exactement ce que c’est et vous aimeriez bien qu’on vous éclaire sur ce qu’est réellement l’agilité ou bien vous connaissez le sujet par cœur mais ne savez pas comment bien l’expliquer aux acteurs de votre projet.

Comment expliquer la démarche à mon équipe de développement sans qu’elle ne prenne peur ? A mon manager pour qu’il se sente impliqué ? A mon métier pour qu’il se sente rassuré ? A mon client pour qu’il se sente valorisé ?

Cube matin : Prioriser, estimer et planifier

De responsable métier avec son cahier des charges à Product Owner avec son backlog produit, prioriser est probablement un des sujets les plus délicats.


Estimer la valeur, le contentement client ou l’effort, tous ces critères sont indispensables pour faire une bonne priorisation et satisfaire tout le monde.


Vous testerez plusieurs techniques de priorisation, d’estimation et de planification. A pratiquer seul ou en équipe, de basique à complexe, il y aura des pratiques pour tous les goûts.

Venez prioriser, c’est une priorité !

Vos hôtes : Nathaniel Richand, Jean-Claude Grosjean et Yannick Ameur.

Rendez-vous chez nous au 4 ter passage de la main d’or 75011 Paris de 8:45 à 12:30
Métro Ledru-Rollin

Tarif : 216 € TTC / cube
Inscriptions à la Billetterie :

Product Owner : études récurrentes, Studies Loop

Comme d’autres Product Owner, dans le monde de l’Agile, j’ai besoin de clarifier certain mode de fonctionnement.

En ce moment, je suis confronté à définir un Produit qui encapsulera et simplifiera d’autres produits. Chaque produit à intégrer se transforme donc en épic.

Donc voici le mode de fonctionnement que j’ai décidé de tester :
Je considère que chaque épic à intégrer représente une release dans ma roadmap, donc un lot fonctionnel à mettre en production en fin de release.

La Release sera composée de tout ce qui est nécessaire pour livrer l’épic : son découpage en stories fonctionnelles, mais aussi les stories techniques ou autres stories transverses nécessaires à la livraison.

Processus de l’étude de la Release commence par un Sprint 0 :

etudeproduitenboucle

Step 1 : Workshop de Définition

  • Timing : Selon l’épic, le workshop prendra entre 3h et 2j
  • Participants : les responsables et acteurs de l’épic
  • Animateur : un facilitateur externe au projet
  • Target / output / livrables :
    • Première vision de la vie actuelle de l’épic
    • Première vision de la cible intégrée et simplifiée
    • Les utilisateurs concernés par la cible : la liste avec nom prénom pour le 2.1
    • Les gains attendus pour établir la business value

Step 2.1 : Découverte des utilisateurs

  • Timing :
    • 30min à 1h par type de end-user,
    • observation de 3 à 4 actions différentes
  • Passer du temps avec les end-users :
    • Laissez-vous guider par leurs explications sur les cas d’utilisations, les besoins
  • Observez leurs manières de travailler et … trouvez le moyen de simplifier leurs actions, interactions, délais d’attentes…
  • Type de rencontre : One To One ou sur les genoux du end-user
  • Target / output / livrables :
    • Affinage de l’épic en end-user Stories dans votre Release Backlog ou Epic Backlog

Step 2.2 : Design cible

  • Timing :
    • en parallèle du Step Customer Discovery
    • cette étape continue dans les sprints de la release, car l’ergonomie, le look&feel, l’UX devront être challengés par vos équipes de réalisation, votre UX designer et par vous.
  • Réalisez vos Mockups des écrans à réaliser
  • Avec un UX (ou pas) alimentez le schéma des écrans avec les chemins d’utilisations de votre application.

Step 3 : Release Roadmap Mapping

  • Timing : 2 heures
  • Target / output / livrables
    • User Stories avec :
      • une priorité
      • une business value
      • une estimation avec vos équipes
    • Une estimation du nombre de sprint

Fin du sprint 0 :

  • Début du sprint 1 de la release
  • Début du sprint 0 de la prochaine Epic pour vous

Voila, merci pour vos commentaires, vous répétez cela en l’améliorant à chaque fois jusqu’à épuisement du Product Backlog ou de vous ;o)

Yannick AMEUR

Pimp my gif : création d’un widget avec dashing

Je vous ai brossé dans l’article précédent tout l’intérêt d’un dashboard sur mesure avec Dashing. Aujourd’hui je vous propose de voir comment celui-ci fonctionne à travers la création concrète d’un widget. 

Pour cet exemple je vous propose de créer avec vous un widget permettant d’afficher sur notre dashboard dashing un gif animé, qui sera récupéré en fonction d’un ensemble de mots clés.  Pour cela nous allons utiliser Giphy et son API.

Avant de commencer je vais vous expliquer les concepts clé dans Dashing :

  • nous allons commencé par créer un dashboard, celui-ci déclarera l’ensemble des widgets que nous allons avoir et leur définira un id
  • pour la partie widget nous pouvons soit utiliser les widgets existants soit créer un widget custom.
  • enfin pour envoyer la donnée nous pouvons soit l’envoyer directement via un appel POST en HTTP, soit créer un job en ruby dans dashing.

dashing-architecture

Création du dashboard

Pour commencer vous aurez installé Ruby & Dashing (qui vous demandera certainement également l’installation de NodeJS). 

Puis pour initier notre projet nous allons utiliser la commande : 

Lire la suite

Supprimer les comportements négatifs avec le sourire!

Notre problème : quand la revue coince

Lors de la dernière rétrospective, nous avons identifié tous ensemble que le principal point de contention de l’équipe se situe lorsque les développements sont terminés, au moment de faire une revue du code par les pairs, pour que la story puisse ensuite passer en recette.

Nous avons discuté sur le fait d’éviter de bloquer trop longtemps l’auteur de cette pull request (nous utilisons git). En effet si la story n’est pas revue rapidement le cout du switch et du travail parallèle devient très fort. En contrepartie, l’équipe ne peut pas s’arrêter immédiatement pour la valider afin de ne pas casser son flot et dans ce cas-là, elle aussi switcher…

PullRequest-blurred
Un exemple de pull request (certaines sont plus utiles 🙂 )

Lire la suite