Les membres des équipes Scrum, participants aux formations, collègues et parties prenantes diverses impliquées dans des projets de mise en œuvre Agiles/Scrum posent souvent les mêmes questions sur les histoires d’utilisateur (User Stories). Ci-dessous, une liste de questions et réponses que je partage avec vous. J’espère que ces informations seront utiles à quiconque veut en apprendre davantage sur les histoires d’utilisateur.
Q: Que sont les histoires d’utilisateur (User Stories) ?
Une histoire d’utilisateur est une brève description de tout besoin fonctionnel. Elle est écrite d’une perspective utilisateur pendant ou avant la priorisation de l’arriéré de produit (Product Backlog) ou une session de planification de Sprint (Sprint Planning). Une histoire peut inclure, mais n’est pas limitée à, une fonctionnalité avec ses caractéristiques et ses règles de gestion, des demandes d’amélioration, des corrections de bogue, l’installation d’infrastructure, ou une documentation technique. Les histoires d’utilisateur peuvent représenter presque n’importe quelle activité pendant le cycle de vie du développement logiciel.
Q: Comment les histoires d’utilisateur sont-elles apparues ?
Il n’y a aucune date spécifique ou événement rapportés sur l’origine des histoires d’utilisateur. Cependant, la littérature suggère que les histoires d’utilisateur ont évoluées pendant le processus de collecte et de mûrissement des besoins qui ont été à l’origine documentés sous forme de cas d’usage. Des « programmeurs extrêmes » à la fin des années 1990 ont rendu les histoires d’utilisateur populaires dans l’arène du développement logiciel. Des approches Agiles plus récentes, comme Scrum et Kanban, ont aidé à largement promouvoir l’usage massif les histoires d’utilisateur.
Q: Comment dois-je écrire une histoire d’utilisateur ?
Le format le plus populaire pour écrire des histoires d’utilisateur dans beaucoup d’approches Agiles est comme suit :
En tant qu’utilisateur (du système), je veux faire (action) pour que (les bénéfices à avoir cette fonctionnalité).
Par exemple, « En tant qu’étudiant, je veux voir mes notes pour connaitre ma performance. »
Q: Qui est responsable d’écrire les histoires d’utilisateur ?
Il n’y a aucun rôle spécifique responsable d’écrire une histoire d’utilisateur. Toute personne impliquée dans le processus de développement logiciel, des parties prenantes du métier aux membres de l’équipe Agiles, peut écrire des histoires d’utilisateur. Cependant, beaucoup d’histoires sont écrites pendant la session de revue de l’arriéré de produit par les membres de l’équipe de développement, comme les programmeurs, testeurs et analystes, ainsi que le propriétaire de produit (Product Owner).
Q: Quelles sont les qualités d’une bonne histoire d’utilisateur ?
Une histoire d’utilisateur idéale devrait être courte, simple et sans équivoque. Beaucoup de partisans Agiles considèrent le modèle de Bill Wake INVEST comme une base pour une bonne histoire.
Q: Les histoires d’utilisateur exigent-elles une approbation ?
qui approuve une histoire utilisateur ?
Contrairement aux exigences opérationnelles ou aux documents dans des approches de développement logicielles traditionnelles, aucun processus formel n’existe pour approuver des besoins dans un environnement Agile. Et les histoires d’utilisateur ne sont pas les seules fonctionnalités, donc ce sont les membres de l’équipe Agile qui acceptent les histoires quand la plupart d’entre eux sont confiants sur la capacité à livrer cette histoire en une itération. Tous les doutes sur une histoire d’utilisateur sont clarifiés par le propriétaire de produit dans le cadre de Scrum.
Q: Quels sont trois Cs des histoires d’utilisateur ?
En 2001, Ron Jeffries Proposé le concept de trois Cs : Carte (fiche), Conversation Et Confirmation, pour atteindre le consensus sur une histoire de la part des parties prenantes dans le cadre Agile.
La Carted’histoire est écrite sur une fiche, qui est souvent un Post-it®.
La Conversationest une série de discussions entre l’équipe de développement et les parties prenantes internes et externes pour comprendre la complexité et la valeur de l’histoire.
La Confirmationdoit s’assurer que la conversation tournant autour de l’histoire est parvenue à une conclusion.
Q: Quelles sont les différences entre un cas d’usage (Use Case) et une histoire d’utilisateur ?
Bien le cas d’usage et l’histoire d’utilisateur semblent semblables et que beaucoup de personnes les confondent comme une des façons de décrire des besoins, ils sont différents de bien des façons, comme suit :
Histoires d’utilisateur et tâches :
Les membres de l’équipe exécutent des tâches basées sur l’ensemble d’activités pour construire une fonctionnalité, comme exprimé dans l’histoire d’utilisateur. Par exemple, l’histoire d’utilisateur est: Comme un acheteur de mon futur domicile, je veux voir la liste de maisons dans mon voisinage pour que je puisse faire une liste des maisons candidates sélectionnées que je veux acheter.
Les tâches pour l’histoire pourraient être:
Codage, utilisation de la logique appropriée
Intégration d’APIs de recherche et de cartographie
Développement de scénarios de test
Intégration avec des sources de données
Finalisation de filtre de sélection
Les histoires d’utilisateur sont mesurées de manière relative avec des tailles comme S, M, L, XL, etc., ou en utilisant la séquence de Fibonacci : 1, 2, 3, 5, 8, 13 …, basée sur la complexité de développement des histoires. Les tâches sont toujours calculées en heures et sont basées sur le niveau d’effort que chaque membre doit fournir pour chacune des tâches.
CertYou est partenaire de DantotsuPM
Histoires d’utilisateur et épopées
Une épopée est un jeu de fonctionnalités qui ressemblent à une histoire au début, mais quand les membres de l’équipe commencent à l’analyser, ils constatent qu’elle pourrait être plus grande que précédemment envisagé. Donc ils doivent la décomposer en de multiples histoires. Une façon de différencier une épopée d’une histoire est en vérifiant qu’elle suit le modèle INVEST discuté plus tôt.
partagez ce billet avec vos amis, collègues et relations professionnelles
Vous avez entendu vos amis chanter les louanges d’Agile. Vos copains chefs de projet deviennent des scrum masters. Vous entendez combien c’est formidable. Tous les gamins dans le coup le font et vous êtes un peu jaloux. Vous vous sentez exclu. Vous voulez voir l’objet de toute cette agitation.
Bonnes nouvelles ! Il existe des pratiques Agiles que vous pouvez utiliser même dans votre monde prédictif en cascade. Vous obtiendrez les bénéfices d’une communication accrue, de la collaboration avec le client et de l’amélioration continue. Et vous aurez une opportunité de présenter quelques pratiques Agiles à votre équipe. Sans devoir vous coller à la transition de l’organisation toute entière vers Agile.
AVERTISSEMENT : que faire avant que vous n’adoptiez ces pratiques Agiles
N’adoptez pas de pratiques Agiles simplement pour suivre les foules.
Comprenez les bénéfices que vous tirerez à incorporer des pratiques Agiles. Vous économiserez du temps et de l’argent en obtenant des réactions des clients et en livrant le bon produit. Vous travaillerez plus intelligemment avec une communication accrue et transverse dans l’équipe et des pratiques de travail améliorées.
Discutez avec votre équipe et obtenez leur adhésion. Le changement sera un effort d’équipe et vous aurez besoin de leur collaboration et coopération. L’équipe entière doit être à bord. Vous ne pouvez pas réussir seul.
Partagez vos idées avec l’équipe sur pourquoi vous voulez le faire. Découvrez les idées et préoccupations de vos coéquipiers. Assurez-vous qu’ils sont ouverts à faire un essai. Vous devrez vous lancer avec leur appui, parce qu’ils font aussi partie du jeu.
Voici 3 pratiques Agiles que vous pouvez déjà commencer à utiliser:
1. Standup Quotidien
Bénéfices : transparence et communication accrues dans l’équipe.
Votre équipe aura une plus grande compréhension de la progression et des défis. Le chef de projet peut « mener » si nécessaire, mais les équipes Agiles s’auto-organisent et peuvent le faire elles-mêmes si le chef de projet n’est pas là.
Comment le faire : c’est une réunion très courte (15 minutes ou moins) qui donne chaque jour une occasion à l’équipe de faire un point et partager l’information.
Chaque membre d’équipe répond brièvement à ces trois questions :
Qu’avez-vous fait hier ?
Sur quoi travaillez-vous aujourd’hui ?
Y-a-t-il des obstacles vous empêchant de faire votre travail ?
Dans le Scrum traditionnel, le scrum master élimine les points de blocage, mais le chef de projet peut aussi le faire.
Avertissement : ce n’est pas une réunion de statut d’avancement de 30 minutes. Ce n’est pas une longue discussion sur les détails. Cela devrait plutôt être très court : 15 minutes ou moins. C’est un rendez-vous pour votre équipe chaque jour pour rester à niveau. Si l’équipe doit discuter de plus de détails, faites-le après le stand up.
Un de mes amis a suggéré à son chef qu’ils s’y essaient. Ils avaient des très longues réunions de statut de projet. Son patron a accepté et aimé l’idée. Mais au lieu que ce soient les membres de l’équipe qui aient une réunion quotidienne rapide, son chef la dirige. Pis encore, le stand up s’est métamorphosé en réunion de statut prolongée tous les jours : une situation pire qu’avant. Évitez la tentation de faire traîner le stand up. Tenez l’agenda et le rythme et gardez les longues conversations pour après le stand up.
2. La Rétrospective
Bénéfices : amélioration continue.
Votre équipe identifiera des façons de s’améliorer pendant le projet, plutôt que d’attendre jusqu’à ce que le projet soit fini. Vous y gagnerez les bénéfices d’améliorations continues tout au long du projet.
Comment le faire : à divers moments pendant le projet, l’équipe évalue son efficacité.
Livre sur Amazon
Il y a 3 questions clefs à poser :
Qu’est-ce qui a fonctionné bien pour nous ?
Qu’est-ce qui n’a pas bien marché ?
Que pouvons-nous faire différemment pour nous améliorer ?
Choisissez divers moments pendant le projet pour mettre en œuvre cette pratique Agile. Une fois que vous avez fait l’exercice et identifié des choses que vous pouvez améliorer, choisissez-en une ou deux à cibler les premières. Incorporez ces changements et voyez comment ça va. Répétez ensuite ce processus pendant le projet.
Votre équipe peut incorporer des améliorations tandis que le projet est toujours en voie de réalisation, plutôt qu’attendre jusqu’à ce que le projet soit fini.
Notez : Il doit y avoir un environnement de confiance et de soutien entre les membres de l’équipe. Ne critiquez personne pour des suggestions faites. Ne blâmez pas de membres pour des fautes, mais identifiez plutôt des façons de vous améliorer. Soyez ouvert à considérer les challenges comme des opportunités.
3. Démonstrations de logiciel au client
Bénéfices : transparence et collaboration avec le client.
Les clients bénéficient de voir le produit en l’état et en partageant leurs réactions. L’équipe obtient l’avantage de retours des client sur n’importe quels ajustements nécessaires.
Comment le faire : Démontrez un logiciel qui fonctionne au client à des points appropriés en cours de développement. N’attendez pas jusqu’à ce que tout ce soit prêt pour les tests d’acceptation de l’utilisateur final.
Ce n’est pas une présentation PowerPoint. Vous montrez le logiciel réel. Ne cherchez pas de tape à l’œil ni perfection. Votre but est de montrer au client comment le produit progresse et d’obtenir des réactions. Vous ne devez pas louer une énorme salle de conférences et faire des PowerPoint tapageur. Vous ne montrez pas de produit fini pour l’instant.
Gérez les attentes du client sur ce que vous montrez. Vous ne voulez pas les étonner s’ils s’attendaient à quelque chose d’autre. Assurez-vous qu’ils sont conscients que c’est un premier jet et pas le produit fini. Expliquez pourquoi vous le faites et ce que vous espérez y gagner.
CertYou est partenaire de DantotsuPM
C’est un Voyage
Adoptez un esprit de collaboration, de communication et d’amélioration continue. Faites-le avec respect pour tous vos membres d’équipe pendant que vous adoptez de nouvelles pratiques.
Soyez patient avec eux. Vous n’atteindrez pas tout de suite la perfection. Mais vous en bénéficierez et l’aimerez probablement, aussi.
Maintenant que nous avons vu ces 3 pratiques Agiles, vous pouvez probablement voir comment les utiliser même si vous ne vous lancez pas à fond dans Agile.
Il n’y a désormais plus aucune raison de vous sentir exclu. La prochaine fois que vos amis scrum masters parleront Agile, vous pourrez vous joindre à eux.
Dites-leur les façons dont votre équipe s’en sert pour s’améliorer et combien vos clients en sont heureux.
Et ces autres amis qui ne l’ont pas encore essayé ? Partager votre amitié en partageant cette information avec eux !
partagez ce billet avec vos amis, collègues et relations professionnelles
Grand problème : l’Humanité a besoin d’un éclairage bon marché, efficace pendant l’obscurité
1er mVP : Feu. Les gens ont observé comment la foudre des cieux pouvait enflammer des forêts et créer le feu. Après expérimentation, en frottant des bouts de bois entre eux, ils ont créé leur propre feu. Problème résolu. Mais le feu n’est pas particulièrement portable.
2ème mVP : Lampes à pétrole, Bougies et Lanternes à Gaz. Maintenant les gens pouvaient emporter la lumière avec eux quand ils se déplaçaient. Problème résolu. Mais les bougies et des lanternes à gaz ne sont pas particulièrement éclairantes et la plus légère brise les éteint.
3ème mVP : Ampoules incandescentes. Les premières ampoules étaient alimentées par batterie et plus fiables qu’une bougie vacillante. Problème résolu. Mais comme les villes ont grandi en taille, la demande pour un éclairage plus répandu a grandi. Le réseau national n’avait pas encore été construit.
4ème mVP : Électricité largement disponible. Pour transmettre l’électricité sur de longues distances, le courant alternatif et les transformateurs ont été développés. Des centrales électriques thermales ont été construites pour satisfaire la demande massive. Problème résolu. Mais comme la demande mondiale en électricité augmentait, des alternatives sont devenues nécessaires.
5ème mVP : Énergie solaire. Des ampoules de consommation en watts inférieures remplacent les ampoules incandescentes originales tandis que les panneaux solaires deviennent plus efficaces et meilleur marché à produire. Problème résolu. Mais les solutions solaires restent encore relativement chères et l’adoption trop faible pour être en position d’éteindre le réseau électrique.
6ème mVP : une Planète dont l’énergie provient seulement du soleil. Des batteries hautement efficaces peuvent être chargées par des panneaux solaires bon marché et omniprésents. À ce point il devient possible d’éliminer notre dépendance aux carburants fossiles. Nous n’y sommes pas encore tout à fait.
Méta Projets Management est partenaire de DantotsuPM
Elon Musk est un entrepreneur qui est exceptionnel dans son application du processus mVP en 3 étapes.
1. Commencez avec un produit simple résolvant un problème minuscule.
Il a lancé une voiture électrique en moins de 3 ans qui est devenue la voiture électrique la plus demandée au monde.
2. Continuez à itérer, en résolvant constamment des problèmes plus grands.
L’autonomie de la batterie continue de s’améliorer pour que les voitures aient davantage d’autonomie et améliore leurs performances: 100km/h en 2.28 secondes, la technologie de conduite sans chauffeur réduit les accidents, la seconde phase de Tesla introduit des bus et des camions électriques, la fusion de Tesla avec Solar City et l’achèvement de Gigafactory.
3. Communiquez constamment la vision du grand problème.
La vision suprême de Musk est une planète actionnée entièrement par le soleil et finalement habiter de multiples planètes. Il n’est pas le meilleur communicant du monde. Beaucoup de ses discours sont maladroits (il s’améliore avec le temps). Mais il a capturé l’attention du monde parce qu’il communique constamment sa vision, en livrant des mVPs tout au long de ce voyage.
Imaginez si Musk avait commencé à résoudre son grand problème en construisant d’abord la Gigafactory (avant Tesla et Solar City). Il pourrait avoir lancé un mVP qui produise 1 batterie par mois. Cette idée n’irait nulle part, parce qu’il ne nous aurait pas embarqué dans ce voyage depuis où nous nous trouvons maintenant vers où il voit que nous devons aller. Son mVP ne serait pas viable.
Les entrepreneurs font très souvent l’erreur de commencer par le grand problème. Ils livrent alors un mVP, mais le marché ne répond pas parce qu’ils ne nous ont pas embarqués sur le voyage exigé. Le résultat ? mVP non viable qui aboutit souvent à un flop.
Processus mVP en 3 étapes en pratique
Disons que vous ayez lancé votre produit. Une poignée de clients a signé pour votre première version. Votre outil de suivi vous dit qu’il y a des téléchargements. Mais vous remarquez aussi que l’engagement est très faible. Vos projections financières sont loin de l’utilisation que vous aviez prévue.
Contrairement à la croyance populaire, ce n’est pas un désastre.
La bonne nouvelle est que les gens adhèrent à une certaine partie de votre vision. C’est le premier pas dans la validation de votre marché. C’est à ce moment que le responsable de la stratégie produit doit sortir du bureau, parler aux clients et comprendre la situation :
Quelle est exactement la partie de votre vision qui a initialement capté leur attention ?
Qu’est-ce qui précisément rend votre produit difficile à utiliser pour atteindre la vision ?
Y a-t-il quelqu’un d’autre qui fait ceci mieux que vous? Que fait-il différemment ?
Le problème est-il que les clients veulent résoudre un problème différent de celui que vous adressez ?
C’est un processus systématique d’analyse et de compréhension du sens. C’est un processus scientifique qui se base sur des données et une métrique bien définie. Mais le processus est guidé par la vision de l’artiste qui imagine un futur meilleur plus enrichissant. Non seulement l’artiste voir l’avenir, mais il peut voir le chemin à parcourir pour atteindre cet avenir. Et il sait que les livraisons de mVPs sont comme des tremplins pour nous déplacer d’ici jusque là-bas.
C’est ma compréhension de ce que fait un Produit Viable Minimal qui est réellement Viable.
Quelle est la vôtre ?
partagez ce billet avec vos amis, collègues et relations professionnelles
The #AgileManifesto is the core of the Agile Movement.
It was written in February 2001 by software practitioners who found consensus around 4 values and 12 Agile principles.
The Agile Manifesto, its 4 values and 12 Agile Principles, were the consequences of industry frustration in the 1990s about the time lag between business requirements and the delivery of technology. Business and customer requisites changed during this lag time, and the final product did not meet the then current needs.
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions OVER processes and tools Working software OVER comprehensive documentation Customer collaboration OVER contract negotiation Responding to change OVER following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
The 12 Agile Principles included in the Agile Manifesto describe a culture in which change is welcome, and the customer is the focus of the work.
Curieusement, l’auteur reste très dichotomique et ne considère pas dans ce billet une approche hybride entre les deux mondes adaptatif et prédictif mais son retour sur la genèse de la méthode Waterfall me parait intéressant à partager avec vous.
What Does ‘Waterfall’ Really Mean? How Do People Use That Word?
Y avez-vous jamais réfléchi ? Cette expression est souvent utilisée en comparaison de ‘Agile’ mais les gens savent-ils ce qu’ils font quand ils comparent ‘Agile’ à ‘en cascade’ ? Je pense que le mot ‘Waterfall’ est un des mots les plus abusés dans la langue anglaise (et le mot ‘Agile’ n’arrive pas loin derrière).
Quand les gens parlent de ‘Agile’ et ‘en cascade’, il semble qu’ils comparent deux méthodologies très spécifiques et bien définies qui sont les opposés binaires et mutuellement exclusifs l’un de l’autre. Cependant, quand vous fouillez dans ce que signifient vraiment les mots ‘Waterfall’ et ’Agile’, vous découvrez vite que c’est une comparaison très imprécise et prône à erreurs.
Que signifie vraiment ‘en cascade’ dans le management de projet ?
À proprement parler, le mot ‘ Waterfall ‘ a été à l’origine défini en 1970 par docteur Winston Royce dans son papier très célèbre :
Il a décrit un modèle qui consiste en ordonnancer un projet en phases où les livrables d’une phase coulent dans la phase suivante et qui donne quelque chose comme ceci :
Il l’a appelé ‘en cascade’ parce que les résultats d’une phase s’écoulent naturellement dans la phase suivante comme l’eau dans une ‘cascade’.
A quoi ressemblait la Vie avant ‘en cascade’ ?
Pour mieux comprendre, il est utile de voir à quoi ressemblait la vie avant ‘en cascade’ et quels problèmes cette méthode essayait de résoudre. Ce qui a précédé ‘en cascade’ était beaucoup d’efforts de développement mal organisés avec peu ou pas de structure, discipline et planification. Certains des problèmes principaux avec ces approches étaient :
Comme les projets grossissaient en termes de portée et de complexité avec de plus grands nombres de développeurs, il est vite devenu apparent qu’une approche plus planifiée et structurée était essentielle pour coordonner le travail de grosses équipes de développement
L’autre problème principal était une prévisibilité très limitée tant sur les dépenses que les délais des projets de développement informatique. Il y avait de fréquents en très importants dépassements de coûts et de délais et les commanditaires ont exigé un certain niveau de prévisibilité.
Pour ces raisons, quand l’approche ‘en cascade’ a été définie à l’origine, c’était une grande amélioration que de passer de pratiquement aucune méthodologie du tout à un processus très bien défini :
“Un plan d’ensemble” pour coordonner le travail de multiples développeurs ainsi que l’intégration de leur travail avec d’autres ressources essentielles en dehors des immédiates équipes de développement
Un mécanisme pour gagner un certain niveau de contrôle de la portée du logiciel (de son contenu ou périmètre) pour obtenir plus de prévisibilité des dépenses et des délais.
Beaucoup de personnes plus jeunes n’apprécient pas aujourd’hui cette historique et critiquent juste la méthode ‘en cascade’ comme étant mauvaise sans comprendre les problèmes qu’elle a été créée pour adresser.
relisez ce billet sur les bénéfices de ‘en cascade’
Quels étaient certains des problèmes avec l’approche de originale ‘en cascade’ ?
Comme dans beaucoup de choses, il y a un effet de « balancier » et, quand l’approche a été initialement mise en œuvre, il y avait le sorte d’une sur-correction dans de nombreux cas. Le balancier est passé dans beaucoup de projets de presque aucun contrôle ni discipline à un contrôle très rigide et très rigoureux. La pratique commune quand le processus ‘en cascade’ a été défini à l’origine en 1970 était un processus de documentation très intensif et un sur-contrôle où vous ne pouviez pas quitter une phase tant que toute la documentation exigée pour prouver que tout le travail demandé pour cette phase avait été achevé, passé en revue et approuvé.
C’était un processus très pénible et qui avait un certain nombre de problèmes que même le Dr. Royce a reconnus en 1970 quand il a défini le processus. Certains des problèmes les plus sérieux étaient :
L’utilisateur final du logiciel ne voyait pas normalement aucun logiciel avant que tout le développement et les tests ne soient complets et à ce moment-là, il était très difficile, sinon impossible, d’apporter quelques changements significatifs.
L’accent sur le contrôle du contenu rendait le processus très inflexible et résistant aux changements qui pourraient être nécessaires pour répondre aux besoins des utilisateurs et des objectifs business dans un environnement incertain.
En conséquence, il y a eu beaucoup de situations où le projet peut avoir respecté le coût et les délais, mais échoué à fournir un niveau suffisant de valeur business.
Un autre problème principal était que le lourd accent sur la documentation exigée pour les revues et les approbations rendait le processus tout entier bureaucratique et pas très efficace côté coûts.
Comment ‘en cascade’ s’est-elle développée pour Résoudre Ces Problèmes ?
Avant que Agile ne se répande, beaucoup de variations sur le modèle original ‘en cascade’ et d’autres modèles plus itératifs ont été développées et utilisées pour créer une approche plus adaptative et résoudre certains de ces problèmes. Un exemple était le Processus Unifié Rationnel (Rational Unified Process RUP) dont les origines peuvent être retracées jusqu’en 1996 et 1997. RUP a proposé une approche de développement itérative pour résoudre certains des problèmes de l’approche ‘en cascade’. RUP et les variations de RUP comme Enterprise Unified Process (EUP) sont devenus très populaires à la fin des années 1990 et au début d’années 2000.
En conséquence, si vous regardez ce que les gens ont fait en pratique pendant les 15 à 20 dernières années, il y a eu prolifération d’une large gamme de beaucoup de modèles différents (dont certains ont une ressemblance très limitée au modèle original ‘ Waterfall ‘ défini en 1970). Les gens les caractérisent toujours tous de ‘en cascade’ comme si c’était une méthodologie spécifique, unique et bien définie appelée ‘en cascade’ et ce n’est pas vraiment le cas. De la façon dont le mot ‘Waterfall’ est utilisé en pratique, il se réfère en réalité à une large gamme de méthodologies différentes.
Quelle est une façon plus précise de décrire ‘Agile’ versus ‘En cascade’ ?
Le dénominateur commun de toutes les méthodologies que les gens appellent ‘en cascade’ est qu’ils soulignent un certain niveau de planification en amont et de contrôle pour essayer de réaliser la prévisibilité sur le contenu du projet, des dépenses et des échéances. C’est pourquoi, je pense que « dirigé par un plan » est une description plus précise et objective de ce que les gens veulent vraiment dire quand ils disent ‘en cascade’.
Le mot ‘Agile’ est aussi utilisé de manière floue. Nous savons tous que ‘Agile’ n’est pas une méthodologie spécifique bien que beaucoup de personnes assimilent ‘Agile’ avec Scrum :
Scrum n’est pas vraiment une méthodologie spécifique, c’est vraiment une structure destinée à être adaptable à une large gamme de situations
Agile n’est pas vraiment l’équivalent de Scrum. Il y a d’autres méthodologies Agile comme Kanban
Il est assez facile de voir que le mot ‘Agile’ est aussi utilisé très largement pour qualifier une méthodologie spécifique et bien définie quand ce n’est pas le cas. Le dénominateur commun des méthodologies que les gens appellent ‘Agile’ consiste en ce qu’elles sont flexibles et adaptatives et soulignent la créativité et l’innovation dans un environnement incertain plutôt que la planification et le contrôle pour une prévisibilité avec des niveaux moindres de certitude. C’est pourquoi, je préfère utiliser le mot « adaptatif » au lieu du mot ‘Agile’ lors de la comparaison avec ‘en cascade’ (dirigé par un plan).
Pourquoi comparer « Dirigé par un plan » et « Adaptatif » est-il plus précis et objectif ?
Voici pourquoi je préfère utiliser une comparaison entre « Adaptatif » et « Dirigé par un plan » plutôt que ‘Agile’ versus ‘en cascade’ :
C’est plus précis
« Dirigé par un plan » n’implique pas de méthodologie spécifique. C’est une caractéristique d’une large gamme de méthodologies ce qui je pense décrit plus exactement ce dont parlent les gens.
C’est plus objectif
Le mot ‘Waterfall’ associe des tas de connotations très négatives car il ramène au modèle original ‘Waterfall’ défini en 1970 et ce que les gens appellent ‘en cascade’ peut aujourd’hui avoir peu de ressemblance avec l’original de 1970. L’expression « Dirigé par un plan » ne traine aucun de ces bagages négatifs.
Quand les gens dans la communauté Agile comparent ‘Agile’ et ‘en cascade’, c’est d’habitude dans le contexte Agile est bon et ‘en cascade’ mauvais et ce n’est ni vraiment précis ni objectif. Dire « ‘Agile’ est meilleure que ‘en cascade’ » s’apparente à dire “une voiture est meilleure qu’un bateau”.
Les deux ont des avantages et des inconvénients selon l’environnement dans lequel vous évoluez:
Une approche ‘dirigée par un plan‘ donne à son meilleur dans les projets qui ont un faible niveau d’incertitude et exigent un fort niveau de prévisibilité
Une approche adaptative marche mieux dans les projets qui ont un niveau élevé d’incertitude et exigent un focus sur la créativité et l’innovation pour trouver une solution optimum plutôt qu’une orientation sur la planification et le contrôle pour atteindre la prévisibilité
En bref
livre sur Amazon
Je ne pense pas avoir la moindre chance de faire en sorte que les gens cessent d’utiliser la comparaison ‘Agile’ versus ‘en cascade’ qui est trop largement utilisée. Je l’utilise même moi-même parfois parce que c’est une façon commode et simple de décrire quelque chose qui est en réalité beaucoup plus complexe. J’espère juste que les gens comprennent combien c’est une simplification excessive et à quel point ce peut être imprécis et trompeur.
L’auteur de ce billet, Chuck Cobb est l’auteur du livre « The Project Manager’s Guide to Mastering Agile » et il a développé un cours appelé “Learn the Truth About Agile Versus Waterfall” qui fournit plus de détail pour aider les gens à voir ces approches depuis une nouvelle perspective comme complémentaires l’une à l’autre plutôt que en compétition : Free Agile versus Waterfall course
N’hésitez pas à poster vos commentaires sur ce livre, ce cours et/ou ce billet…
partagez ce billet avec vos amis, collègues et relations professionnelles
These two pages have been developed with the goal to be informative on Agile, as our partner QRP International saw that most of the search queries for Agile are still related to general topics like the Agile manifesto or the overview and comparisons of different agile methods.
The Agile Manifesto was written in February 2001 by software practitioners who found consensus around 4 values and 12 Agile principles. The Agile Manifesto is the core of the Agile Movement. The intention of Agile is to align development with business needs.
Agile Project Management describes an iterative approach to planning and guiding project processes. Nevertheless, Agile is a mindset. There is not one Agile Project Management approach that works for all situations; rather the general term “Agile” represents a variety of methods and practices.
partagez ce billet avec vos amis, collègues et relations professionnelles
Afin de soutenir l’éventail de plus en plus large des approches de réalisation de projets, PMI propose un PMBOK® Guide – Sixième édition accompagné du nouveau Guide de pratiques Agiles.
Le PMBOK® guide – Sixième édition contient maintenant des informations détaillées sur Agile; tandis que le Guide de Pratique Agile, créé en partenariat avec Agile Alliance®, sert de passerelle pour connecter méthodes prédictives et agilité. Ensemble, ils constituent un outil puissant pour les managers de projets.
“PMI,” the PMI logo, “PMP,” “PMBOK,” “PM Network,” “Project Management Institute” and “Pulse of the Profession” are registered marks of Project Management Institute, Inc.
partagez ce billet avec vos amis, collègues et relations professionnelles
Why should organizations and project professionals consider AgilePM to support their adoption or improvement of agile project management practices?
AgilePM guidance from the Agile Business Consortium offers a practical and repeatable methodology that achieves an ideal balance between the standards, rigour and visibility required for good project management, and the fast-pace, change and empowerment provided by Agile.
The white paper looks at the reasons why you should consider the AgilePM guidance for effective agile project management.
APMG est partenaire de DantotsuPM
partagez ce billet avec vos amis, collègues et relations professionnelles
Décomposer les projets en périodes de temps limitées et connues comme les sprints ou itérations est souvent associé aux approches Agiles, mais peuvent aussi être utilisés pour délivrer par rapport à des exigences détaillées sur un projet complet selon l'(infâme) approche prédictive généralement nommée « en cascade ».
L’avantage est que cela aide à focaliser une équipe sur un jeu d’articles de travail petit, réalisable, et donnant aux parties prenantes de fréquentes occasions de réagir sur des lots de travail achevés en augmentant la transparence et l’objectivité des rapports d’avancement.
Les approches Agiles encouragent la priorisation de l’arriéré de travail et cela peut aussi être une bonne pratique en utilisant des sprints sur des projets traditionnels. Mais cette priorisation pourrait ne pas être suffisante de produire le niveau souhaité d’énergie et de focus de l’équipe. Alors, pourquoi ne pas mettre sur l’agenda permanent de l’équipe de définir des objectifs spécifiques à chaque cérémonie de planification de sprint ?
Les objectifs de sprint peuvent aider en :
Fournissant une mesure de progrès allant au-delà de la livraison d’individuels articles de travail de l’arriéré de produit. Des objectifs de sprint significatifs donnent des événements marquants à célébrer !
Donnant de la visibilité aux accomplissements qui dépassent la livraison du contenu planifié. Par exemple, terminer tous les articles de travail du sprint avec zéro défaut. Ou bien, compléter tous les engagements du sprint sans exiger d’heures supplémentaires de la part des membres d’équipe. Voici 2 choses qui méritent d’être célébrées.
Aidant l’alignement et le focus de l’équipe de livraison et des parties prenantes principales sur un objectif clairement partagé. Cela peut encourager l’autodiscipline dans l’équipe qui peut utiliser l’objectif de sprint comme un déterminant clé pour déterminer si un nouvel élément de travail proposé mérite ou pas d’entrer dans l’arriéré de sprint.
CertYou est partenaire de DantotsuPM
Les objectifs de sprint ne devraient pas être dictés, ils devraient plutôt émerger de la méthode globale de travail collectif de l’équipe et sont un bon contrôle de si l’équipe est alignée sur la vision complète du projet.
En définissant des buts, l’habituel acronyme SMART (Spécifique, Mesurable, Réalisable, Approprié et Temporel) peut être utilisé pour les évaluer et les affiner.
À la fin d’un sprint, la démonstration devrait inclure une présentation des objectifs et si vraiment ils ont été atteints et la cérémonie de rétrospective de l’équipe devrait inclure leur examen et l’identification d’idées d’objectifs pour améliorer les sprints futurs.
Comme l’a dit Albert Einstein: “si vous voulez vivre une vie heureuse, liez-la à un but, pas aux gens ni aux choses.”
Selon Lyssa Adkins, les coach Agile doivent pouvoir enseigner l’approche Agile à leurs équipes en moins de 10 minutes ! Voici ce qu’elle suggère de dire (en anglais).
partagez ce billet avec vos amis, collègues et relations professionnelles
Il y a beaucoup de fausses idées sur l’Arriéré de Produit. En fait, je dirais que c’est probablement l’artefact le moins bien compris de Scrum. Et cela peut causer de gros problèmes, pas seulement pour votre produit et son planning, mais pour vos développeurs également. Étant un propriétaire de produit et manager cette chose est un travail difficile et il est facile se tromper. Cet article dissipera certaines des fausses idées sur l’arriéré de produit.
L’Arriéré de Produit n’est pas une liste géante d’histoires utilisateurs
Beaucoup de gens pense que l’arriéré de produit est essentiellement une grande liste d’histoires d’utilisateurs, classées de la plus haute à la plus faible priorité. Comme si vous aviez un grand tableau et chaque ligne dans le tableau était une histoire d’utilisateur, avec un identificateur, un nom et une description et c’est votre arriéré.
Cela semble agréable et simple, mais c’est un arriéré de produit épouvantable, pour nombre de raisons :
Les histoires ne sont reliées l’une à l’autre d’aucune façon significative
Il n’y a aucune dépendance entre les histoires
Les histoires sont non seulement sans rapport l’une avec l’autre mais elles ne sont liées à aucun horizon particulier ou version
Il n’y a aucune explication “de l’image plus grande” sur comment les histoires touchent au produit, ses fonctions et sa vision.
Un arriéré de produit est vraiment une feuille de route
Un bon arriéré de produit commence par une feuille de route, qui est une vue très de haut niveau de l’avenir du produit. Il y a évidemment beaucoup de choses que nous ne savons pas au commencement, mais un propriétaire de produit devrait commencer par une feuille de route et une vision de comment le produit pourrait se développer puis commencer à décomposer ce plan en des fonctionnalités ou des épopées et des versions ou des horizons.
Il s’agit d’une feuille de route
Cela vous permet de :
Rapprocher des histoires l’une de l’autre, via une fonction ou une épopée
Donner les dépendances entre histoires
Définir les fonctionnalités et épopées et quelle valeur elles fournissent et pourquoi vous les construisez.
Les fonctionnalités et épopées peuvent entrer dans l’arriéré. Et elles peuvent avoir leur propre description avec valeur, risque, bénéfices, dépendances et critères d’acceptation définis. Elles peuvent être évaluées et priorisées. Tout cela fournit “l’image plus grande”, la « big picture ». Si vous avez juste une liste d’histoires, comme quelqu’un l’a une fois dit, vous avez “un sac de feuilles, au lieu d’un arbre”.
Un arriéré de produit devrait être un arbre, pas un sac de feuilles
Donc vous voulez vraiment des histoires dans votre arriéré, mais vous voulez d’autres choses aussi. Et vous voulez que les histoires découlent de ces autres choses. Les histoires entrent en dernier, pas en premier.
Ainsi, si vous voulez un arbre :
Débutez avec une vision de produit et une feuille de route
Décomposez-les en fonctionnalités et épopées
Dressez la carte des fonctionnalités et des épopées sur des horizons ou des versions
Décomposez -les alors en histoires d’utilisateur.
C’est un grand sujet et qui mérite beaucoup plus de couverture. Je recommanderais que vous lisiez User Story Mapping par Jeff Patton si vous voulez en savoir davantage.
Vous n’avez pas besoin d’évaluer toutes les histoires de l’arriéré
Certaines personnes pensent que vous devez avoir des évaluations sur tout dans l’arriéré, parce qu’autrement les items ne sont pas prêts à être travaillés. C’est-à-dire, ils ne respectent pas votre définition de « Prêts » (Ready). Et avoir quelques histoires prêtes à engager est bon, vous n’avez pas besoin que tout l’arriéré soit prêt à être entrepris. Le fait est que certaines des choses dans l’arriéré pourraient ne pas être travaillées avant une longue période de temps. Certaines d’entre elles pourraient ne jamais être développées. Et c’est OK.
Souvenez-vous, votre arriéré est fondamentalement superflu. Pour être plus spécifique, c’est le gâchis de type « Inventaire » en Lean. C’est une pile de choses qui restent là à attendre. Sans faire quoi que ce soit, sans allant où que soit, sans ajouter aucune valeur. Vous pouvez dépenser beaucoup de temps à construire, définir et évaluer un énorme arriéré de choses. Ou vous pouvez dépenser ce temps à faire en réalité du travail. C’est-à-dire à construire un logiciel.
Trouvez le bon équilibre
Il existe un bon équilibre et le trouver n’est pas aisé. Si vous n’évaluez rien, vous ne savez pas combien de temps il faudra pour construire quoi que ce soit. Si vous évaluez tout, c’est beaucoup de travail. Je pense qu’il est bon d’utiliser un système « n+1 » ou « n+2”, où vous avez le prochain ou les 2 sprints suivants de travail bien défini et évalué et prêt à entreprendre. Ainsi, si vous entrez dans la planification de sprint, vous pouvez avoir une vue d’où vous allez vous rendre. Et si les choses changent et que vous décidez de prendre quelque chose d’autre dans l’arriéré qui est un peu plus loin, vous pouvez aussi le faire. Mais vous ne dépensez pas 90 % de votre temps en planification et estimations.
Mais comment faisons-nous la planification d’une version si nous n’avons pas évalué les histoires ?
Les gens se bloquent sur ce point, mais c’est très simple. Vous pouvez simplement utiliser des moyennes. Donc, vous avez les un ou deux sprints d’histoires évaluées et pour le reste de votre arriéré, vous pouvez juste utiliser des points d’histoire médians (pour cette équipe) pour chaque histoire. Si vous avez 50 points d’histoires dans vos deux sprints suivants, avec une moyenne de 6.2 points (ce ne sera probablement pas un nombre de Fibonacci). Vous avez 30 autres histoires dans votre arriéré. Donc votre taille d’arriéré de produit est de 186 (6.2 fois 30) plus 50 (vos sprints évalués) pour un total de 236. Vu ? Facile.
La vérité est, quelques histoires s’avéreront être plus grandes que la moyenne et certaines s’avéreront être plus petites et c’est OK. Parfois votre vitesse sera plus élevée, parfois plus lente et c’est OK. Si vous le pouvez, essayez de faire décomposer les histoires en tailles semblables, proches des 5 ou 8. Cela rend l’affaire plus simple et plus précise. Vous pouvez même faire des estimations approximatives pour des fonctionnalités où vous n’avez pas décomposer les histoires, avec des évaluations de niveau de fonctionnalité, ou en utilisant un nombre moyen d’histoires par fonctionnalité et en multipliant le tout.
Souvenez-vous, l’estimation n’est pas porteuse de tant de valeur en premier lieu. N’y investissez pas trop de temps. Parce que les incertitudes sur les bénéfices sont plus fortes que les incertitudes sur les dépenses.
Vous ne devriez pas mettre chaque idée à laquelle vous pouvez penser dans l’arriéré
Certains propriétaires de produit se lâchent un peu trop quand ils passent sur Agile et disent “Super, je peux mettre tout ce que je veux ici ! Étonnant !”. Et passer les 20 jours suivants à bourrer l’arriéré de plein de particules et des pièces aléatoires, comme des gosses dans une confiserie.
Ce n’est pas une bonne pratique. Souvenez-vous, les articles dans l’arriéré sont une forme de gâchis. Vous voulez une feuille de route claire et une vision pour votre produit, pas une grande liste aléatoire de blanchisserie “de choses qui pourraient être sympas”. L’arriéré devrait refléter votre vision et stratégie pour le produit. Il devrait être capable de prendre en compte des changements, mais ne l’exagérez pas et surinvestissez pas. Concentrez-vous sur votre sprint actuel et paire suivante de sprints. Essayer de penser beaucoup plus loin que cela est de la pure spéculation et n’apporte pas de valeur.
CertYou est partenaire de DantotsuPM
Vous pouvez aussi totalement enlever des choses de l’arriéré
Des personnes pensent qu’une fois que quelque chose entre à l’arriéré, il ne peut jamais en ressortir. Ils pourraient penser “quel serait le point d’ôter quelque chose de l’arriéré ? C’est juste une idée, c’est juste un item de contenu potentiel. Nous pourrions ne jamais le construire, mais il n’y a aucun mal à le garder là”. Il y en a, c’est du superflu. Il introduit de la confusion embrouille les choses. De nouveau, l’arriéré n’est pas une liste de blanchisserie, c’est une feuille de route des fonctionnalités par version et qui reflète une vision et une stratégie de produit. Tenez-le fermement et propre et à jour. N’ayez peur de supprimer des choses. Si vous voulez vraiment y revenir plus tard, vous pourrez probablement la déterrer ou y bien réfléchir de nouveau (les choses peuvent avoir changé et reprendre le besoin pourrait ne pas être une mauvaise chose de toute façon).
Les développeurs devraient avoir voix au chapitre dans l’arriéré de produit
Certains pensent que l’arriéré de produit est exclusivement le domaine du propriétaire de produit. Et c’est partiellement vrai, mais pas tout à fait. Le propriétaire de produit dit ce qui y entre et dans quel ordre. Il est responsable de l’arriéré de produit. Et généralement, les développeurs s’occupent de l’arriéré de sprint, puisque c’est leur domaine. Ils construisent la portée qui entre dans le sprint. Mais un propriétaire de produit avisé parle toujours à l’équipe comme il construit et manage l’arriéré.
Les développeurs comprennent de domaine technique du produit. Ils comprennent ce sur quoi d’autres équipes travaillent et quelles nouvelles technologies arrivent (au minimum, ils le devraient). Ils comprennent les risques techniques et les dépendances dans le travail. Donc la discussion sur l’arriéré de produit avec eux est extrêmement importante.
La planification de sprint devrait être un environnement “sans aucune surprise”. Personne ne devrait lever la main en lisant un article de l’arriéré et dire “qu’est-ce diable que cela ? Je n’ai même aucune idée de ce que cela signifie ». La planification de sprint devrait être le choix final de quels articles de portée bien définis et compris de l’équipe prêts pour entrer dans le sprint.
J’espère que cet article effacera quelques fausses idées sur l’arriéré de produit! C’est un sujet important, difficile et il existe beaucoup de lectures que vous pouvez faire si vous êtes intéressés par ce sujet.
partagez ce billet avec vos amis, collègues et relations professionnelles
Nexus est une structure pour développer et supporter des initiatives de développement de logiciel avec Scrum à grande échelle. Il utilise Scrum comme sa composante de base. Ce guide contient la définition de Nexus qui consiste en des rôles Nexus, des événements, des artefacts et les règles qui les lient ensemble. Ken Schwaber et Scrum.org ont développé Nexus et ce guide qui a été traduit en français.
Nexus est une structure composée de rôles, événements, artefacts et techniques qui lient et tissent ensemble le travail de trois à neuf Équipes Scrum travaillant sur un même et unique Arriéré de Produit pour construire un Incrément Intégré qui atteint un objectif précis.
Contexte de Nexus
Récupérez gratuitement ce document disponible en français et de nombreuses autres langues.
Le développement logiciel est complexe. L’intégration de ce travail en une application logicielle qui fonctionne contient beaucoup d’artefacts et d’activités qui doivent être coordonnées pour créer un résultat « Fait ». Le travail doit être organisé, séquencé, les dépendances résolues et les résultats organisés. Le logiciel présente des difficultés complémentaires par rapport à d’autres produits puisqu’il n’est pas physiquement présent.
Beaucoup de développeurs de logiciels ont utilisé la structure Scrum pour travailler collectivement comme une équipe pour développer un Incrément de logiciel qui fonctionne. Cependant, si plus d’une Équipe Scrum travaille sur le même Arriéré de Produit et dans le même code source pour un produit, les difficultés surgissent. Si les développeurs ne sont pas dans une même équipe géographiquement colocalisée, comment communiqueront-ils quand ils font un travail qui peut impacter les autres ? S’ils travaillent dans des équipes différentes, comment intégreront-ils leurs livrables et évalueront-ils l’Incrément Intégré ?
Ces défis apparaissent dès que deux équipes sont en jeu et deviennent significativement plus difficiles avec trois ou davantage d’équipes.
Il y a de nombreuses dépendances qui surgissent dans le travail entre des équipes multiples qui collaborent pour créer un incrément complet et « Fait » dans chaque Sprint.
Ces dépendances sont liées aux :
Exigences : La portée des exigences peut se chevaucher et la façon dans laquelle elles sont mises en œuvre peut aussi les impacter les unes les autres. Cette connaissance devrait être prise en compte dans l’ordonnancement de l’Arriéré de Produit et le choix des exigences sur lesquelles travailler.
Connaissances de domaine : Les personnes dans les équipes possèdent la connaissance de divers systèmes informatiques. Cette connaissance devrait être reportée sur la carte des équipes Scrum pour s’assurer de son adéquation et réduire au minimum les interruptions et passage de relais entre les équipes pendant un Sprint.
Logiciels et artefacts de tests : Les exigences sont ou seront instanciées dans le code de logiciel et des jeux de test.
En fonction des exigences, la connaissance des membres d’équipe, les artefacts de code et de test et leur alignement sur les équipes Scrum en présence peut permettre de réduire la dépendance entre ces équipes.
Quand le développement de logiciel utilise Scrum à grande échelle, ces dépendances entre les exigences, la connaissance de domaine et les artefacts de logiciel/test devraient diriger l’organisation d’équipe. Dans la mesure où ceci est réalisé, la productivité sera optimisée.
CertYou est partenaire de DantotsuPM
partagez ce billet avec vos amis, collègues et relations professionnelles
Il y a environ 2 ans nous avons créé notre version d’un manifeste de test, comme un résumé rapide de l’état d’esprit que vous devriez adopter dans vos tests agile. Nous avons pensé que c’était cool. Apparemment, beaucoup ont aussi trouvé cela cool et la diapositive que nous avions partagée a été retweetée et intégrée dans beaucoup de présentations depuis lors.
Nous avons récemment refait la diapositive pour qu’elle soit visuellement un peu plus agréable et attractive :
Cela commence par “Pourriez-vous juste … ?”, “En ce qui concerne …” ou “ne me tuez pas, mais … ?”. Ce qui vient est ensuite une nouvelle idée, fonctionnalité, ou demande qui n’a pas été abordée auparavant. Cette conversation arrive tout le temps et cause beaucoup de bougonnement sur “la dérive de contenu”.
Mais si vous considérez l’étude et la découverte comme étant des parties naturelles du processus de développement de logiciel, il n’existe pas de dérive de contenu. C’est seulement un changement mal managé.
Nous ne savons pas de quoi nous avons besoin quand nous commençons. De nouvelles choses surviennent toujours . Le client a besoin de changement. Le marché force le changement. Des personnes à l’extérieur de l’équipe trouvent de nouvelles idées. Les gens dans l’équipe ont de nouvelles idées. Ce changement constant est la seule chose sur laquelle nous pouvons compter. Donc arrêtons de feindre de pouvoir l’arrêter et améliorions-nous dans bien le manager.
avec Ventura Asssociates, partenaire de DantotsuPM, recrutez les ressources critiques dont vous avez besoin pour vos projets
Appréciez l’apprentissage
Un des problèmes avec la terminologie « dérive de contenu » est qu’elle implique que nous n’avons pas fait assez bien notre travail. Elle implique que quelqu’un, quelque part, a failli et si nous étions de meilleurs managers, ce ne serait pas arrivé. Nous aurions prévu toutes les demandes possibles ou nous aurions la force ou la capacité de dire « Non » à chaque fois quelqu’un a une nouvelle idée. Elle implique que la dérive de contenu est un monstre effrayant qui doit être tenu éloigné par un chef de produit toujours vigilant qui garde jalousement la porte de grange.
Cela décourage le changement et l’apprentissage. Une des leçons du mouvement de développement de logiciel Agile est qu’il n’y a aucune façon fiable de spécifier à l’avance ce que nous devons construire. Apprendre sur les besoins est nécessaire pour pouvoir converger sur une solution idéale.
L’équipe de développement doit apprendre ce qui est possible en fonction des contraintes des outils et de la technologie disponible. Les chefs de produit doivent valider leurs suppositions sur quelles fonctions ou technologies particulières sont les plus susceptibles de répondre à un besoin, tandis que les consommateurs du produit ne savent souvent pas vraiment ce qu’ils veulent avant qu’ils ne le voient.
Nous pouvons penser qu’une solution donnée sera idéale quand nous la considérons sur le papier ou sur un tableau blanc, mais quand nous mettons une application entre les mains d’un utilisateur, nous obtiendrons toujours une compréhension nouvelle et plus profonde de ce qu’est la « bonne » chose à construire. Apprendre est quelque chose qui doit être recherché et pas craint.
Le management du changement est une compétence
Une équipe de développement a une capacité fixée et aucune quantité de désirs, de pressions ni de contraintes ne générera de production plus significative. Au lieu de cela, la gestion du changement réussie est l’art d’optimiser le travail qui est fait avec cette capacité.
Cela commence par un processus pour rassembler toutes les nouvelles idées, demandes et choses apprises à travers toute votre organisation. Des modèles apparaîtront, montrant quelles nouvelles choses sont les plus importantes. Le management du changement n’a pas pour objet d’agir sur toutes ces idées; il s’agit plutôt de trouver l’équilibre entre être réactif et disruptif.
Si nous avons un processus robuste pour gérer notre capacité, nous pouvons considérer autant de nouvelles idées que nous voulons, sachant que le processus exigera que nous nous engagions seulement sur ce que nous pouvons raisonnablement faire. Les équipes arrêtent de craindre la dérive de contenu quand elles se rendent compte que de nouvelles idées ne signifient pas automatiquement des nuits plus courtes.
Certaines nouvelles idées qui surgissent sont suffisamment bonnes pour remplacer de vieilles idées. Certaines ne sont pas aussi bonnes que ce que nous avons déjà, et nous devrions y renoncer. Et parfois l’union d’une vieille idée avec une nouvelle crée quelque chose de magique.
Finalement, nous avons besoin d’un rythme raisonnable pour considérer de nouvelles idées et changer de direction. Si une équipe consomme une grande partie de son temps chaque jour à considérer de nouvelles choses, elle fait probablement peu de progrès sur le livrable. Plusieurs méthodes agiles spécifient une période courte pendant laquelle aucun changement de ce sur quoi l’équipe travaille n’est permis. Mais tout est alors à prendre en considération aux frontières de cette courte période de temps.
La dérive de contenu est un ennemi imaginaire
Nous n’avons absolument ni le temps ni les ressources pour agir sur toutes les bonnes idées qui sont déposées sur la table pendant le déroulement du projet. Mais agir sur quelques-unes de ces idées peut être essentiel.
Alors, la prochaine fois une nouvelle demande arrive, arrêtez-vous et considérez-la. Cette dérive de contenu à laquelle vous avez résisté pourrait juste être la chose qui fait réussir votre projet.
partagez ce billet avec vos amis, collègues et relations professionnelles
Quand Henry Ford a conçu ses usines en 1913 pour construire la Modèle T, il a réduit le temps nécessaire pour assembler une voiture de plus de 12 heures à 2 heures 30 minutes. Ce processus a permis la production d’une automobile à prix ciblé pour “le travailleur”. Toutes les voitures avaient la même conception et toutes étaient peintes en noir.
Les designs préconfigurés fonctionnent quand les prévisions rencontrent les attentes (qui en 1913 aurait demandé une voiture rouge ?) et quand un spécialiste peut remettre son travail au suivant sans aucune perte de temps dans la transmission.
Quand une société est dans le business de produire des produits et des services innovants, ses plans reposent sur une ou plusieurs estimations et suppositions. Ces évaluations ne sont rien de plus que des probabilités. Baser un plan de projet sur des suppositions exige que votre système puisse manager les changements.
Livre sur Amazon
Marie Poppendieck a exposé dans Lean Software Development, An Agile Toolkit, “le simple fait mathématique ici au travail est que toute variation est toujours amplifiée comme elle déplace le long d’une chaîne d’événements connectés. Une petite variation dans une étape peut représenter une énorme variation cinq étapes plus loin”. Donc la question reste entière quant à pourquoi les managers continuent à planifier des projets en se basant sur des suppositions séquentielles.
Pour comprendre comment un changement inattendu peut causer des retards significatifs en aval, visualisez une chaussée très occupée avec des voitures se déplaçant selon la limitation de vitesse. Le trafic s’écoule régulièrement jusqu’à l’entrée d’un nouveau véhicule ou autre événement qui fasse qu’un conducteur actionne ses freins. Le trafic sur la chaussée ralentit ou s’arrête alors pendant une brève période puis recommence à s’écouler de nouveau sans signe apparent de pourquoi il a ralenti en premier lieu. L’exemple de cette route illustre comment, à moins que les systèmes ne soient conçus pour se concentrer sur le flux, ils ne fonctionneront pas efficacement à pleine capacité. Parce que le développement de logiciel est un effort complexe dans lequel les suppositions et les décisions devraient être prises le plus tard possible. Le fait de prendre des décisions au dernier moment possible permet à l’équipe Scrum de changer pour travailler sur les articles d’arriéré de produit de plus de valeur en fonction des données les plus récentes.
CertYou est partenaire de DantotsuPM
L’empilement de beaucoup de suppositions l’une après l’autre dans un plan de projet réduit significativement la probabilité d’un résultat positif.
Par exemple, considérez cinq tâches tout d’une probabilité de 90 % d’achèvement en une semaine: (0.9 * 0.9 * 0.9 * 0.9 * 0.9 = 0.59). Dans ce cas, nous avons cinq tâches sur lesquelles nous nous sentons confiants, mais le résultat cumulatif est que nous sommes à seulement 59 % de probabilité de finir ces cinq tâches en cinq semaines. Je soutiendrais que basé sur mon expérience de professionnel en management de projet, il est aussi peu probable que cinq tâches séquentielles atteignent jamais chacune un niveau de confiance de 90 %. Alors, êtes-vous encore étonné quand vous lisez Standish Group’s Chaos Report qui indique qu’approximativement 70 % de tous les projets des technologies de l’information échouent à atteindre leurs objectifs et sont significativement en retard et sur-dépensent ?
Ceci n’empêche pas que vous devriez adorer les statistiques 🙂
La meilleure façon d’optimiser la livraison de valeur est de faire des tâches ajoutant une valeur visible pour les parties prenantes. La documentation de chaque flux de valeur mettra en évidence l’avancée et les retards entre les transitions. En évaluant quantitativement des activités du flux de valeur, le coût des retards devient aussi visible. Cette visibilité aidera l’organisation à déterminer où la constitution d’équipes fonctionnelles transverses améliorera immédiatement les temps de réponse.
L’utilisation de Scrum pour rendre ces inefficacités visibles est seulement le premier pas.
Le leadership a-t-il le désir et l’engagement d’effectuer le changement ? Craig Larman, l’auteur des Laws of Organizational Behavior, a observé que les organisations sont implicitement optimisées pour éviter de changer les positions de statu quo et les structures de pouvoir. Il a aussi noté que si vous voulez changer la culture d’une société, vous devrez changer la structure de votre organisation parce que la culture/comportement et la mentalité suivent les systèmes organisationnels et leur design.
Les organisations comme des sociétés d’assurance et banques ont typiquement les silos de spécialisation fortifiés autour des applications, technologies et fonctions. Chacun de ces départements a développé des règles soigneusement travaillées et des procédures interdisant le changement. Ces processus administratifs ont pour conséquence fortuite de perturber le flux de valeur qui va du concept à la livraison au client.
avec Ventura Asssociates, partenaire de DantotsuPM, recrutez les ressources critiques dont vous avez besoin pour vos projets
Marie Poppendieck a décrit cette situation Lean Software Development: An Agile Toolkit, “la règle établie pour résoudre un problème renforcera souvent le problème, créant une spirale vers le bas : Comme un problème empire, les managers appliquent encore plus agressivement la même politique qui cause le problème.” La mise en place d’équipes fonctionnelles transverses qui ont toutes les compétences pour achever le travail sans avoir à traverser des silos fonctionnels aura un impact étonnamment positif sur la capacité des organisations d’améliorer la qualité et le temps nécessaire pour commercialiser.
Votre direction a-t-elle le courage et l’engagement d’entreprendre le dur labeur d’éliminer les processus et les procédures qui n’ajoutent pas de valeur ?
La plupart des sociétés considérant l’adoption de Scrum devront changer leurs structures organisationnelles pour soutenir des équipes fonctionnelles et transverses autonomes. Si la structure organisationnelle ne change pas, les comportements ne vont pas probablement changer. Si votre modèle business dépend de l’innovation, ce changement devrait être d’une priorité supérieure.
partagez ce billet avec vos amis, collègues et relations professionnelles
Les démonstrations ou « showcase » comme elles sont parfois appelées, sont des cérémonies critiques quand elle sont menées efficacement car elles adressent des objectifs multiples du projet en un événement simple incluant :
Valider que ce que l’équipe a achevé jusqu’à présent est de valeur de la perspective de leur client et d’autres parties prenantes importantes
Aider l’équipe et les parties prenantes à changer ou développer leur compréhension de la solution souhaitée
Obtenir l’acceptation des parties de travail achevées dans les organisations où une telle signature est un préalable exigé pour mettre en œuvre le changement
Faciliter un rapport d’avancement transparent car les parties prenantes voient ce qui a été promis par l’équipe et ce qui a été livré
Fournir aux membres d’équipe des retours réguliers et une reconnaissance de leur travail , ce qui augmente les niveaux de satisfaction au travail et l’engagement
Mais les démonstrations peuvent (comme d’autres pratiques de management de projet) aboutir à un résultat pire que si elles avaient été omises.
Voici quelques-unes des choses à faire et ne pas faire pour accroître la valeur que votre équipe tirera des démonstrations.
A faire : Envoyez les invitations pour la rencontre à l’avance et si vous suivez une cadence de sprint ou d’itération standard (par exemple toutes les deux ou trois semaines). Envoyez un jeu d’invitations récurrentes.
A ne pas faire :Les démonstrations le vendredi après-midi afin d’éviter d’avoir les parties prenantes absentes de corps ou d’esprit.
A faire :Partagez la richesse en vous assurant que chaque membre de l’équipe ait son opportunité de présenter une démonstration.
A ne pas faire :S’en servir pour vous plaindre de l’équipe, des points de blocage ou ce qui aurait pu ou dû être fait différemment.
A faire :Fournissez objectivement le contexte sur le sprint ou résultats itératifs (par exemple le prévu versus le réalisé).
A ne pas faire :Présenter une démonstration sans avoir testé à l’avance ce que vous allez montrer.
A faire :Invitez les représentants du client et parties prenantes associées appropriées à vos démonstrations.
A ne pas faire :Submerger vos parties prenantes de contenu.
A faire : Enregistrez les présentations à l’avance ou, si vous vous sentez chanceux, pendant la démonstration elle-même pour le bénéfice de parties prenantes qui ne pourraient se libérer.
A ne pas faire : Prendre les retours négatifs personnellement.
Bien que cet article soit principalement destiné aux équipes qui utilisent une approche de développement Agile, il est également applicable aux projets traditionnels. Les démonstrations éblouissantes peuvent aider à maintenir l’attention, conserver l’appui de votre client et maintenir les membres de l’équipe concentrés sur délivrer de la valeur.
CertYou est partenaire de DantotsuPM
partagez ce billet avec vos amis, collègues et relations professionnelles
La Scrum Alliance était le premier organisme de Certification Scrum, fondée en 2002. Elle offre une gamme de Certifications Scrum, la plus populaire étant le Certified Scrum Master (CSM). Il y a actuellement plus de 400000 CSMs dans le monde. Le CSM est une certification de niveau d’entrée. Pour obtenir le CSM vous devez suivre une formation de 2 jours donnée par un Certified Scrum Trainer (CST) et réussir ensuite un test en ligne avec le livre ouvert. Pour trouver une formation proche de vous, allez sur le site de la Scrum Alliance. Les tarifs des cours varient selon la région et le fournisseur. Si vous considérez cette certification, la meilleure approche est d’acquérir quelques mois d’expérience avant d’y aller. Ainsi, vous saurez quelles questions poser et les parties sont les plus difficiles pour vous.
La Scrum Alliance offre aussi une certification de niveau d’entrée pour des Propriétaires de Produit appelés le Certified Scrum Product Owner (CSPO). Un cours de 2 jours donné par un CST. Actuellement, il n’y a pas de test sur le CSPO.
Certified Scrum Product Owner offre un parcours de certification avec Certified Scrum Professional (CSP), Certified Scrum Coach (CSC), Certified Enterprise Coach (CEC), Certified Agile Leader (CAL) et Certified Scrum Trainer (CST) pour ceux avec plus d’expérience. Vous pouvez en découvrir davantage sur ces programmes sur le site de la Scrum Alliance.
Ken Schwaber a quitté la Scrum Alliance et formé Scrum.org en 2009. Ils offrent maintenant des certifications Scrum. Vous pouvez passer la certification Scrum.org en ligne sans suivre de formation. La certification Scrum.org est appelée Professionnel au lieu de Certifié. PSM au lieu de CSM. Il y a des niveaux multiples sur chacune des certifications de Scrum.org, c’est-à-dire PSM I, II et III. Il y a actuellement plus de 75000 I PSM, 600 PSM II et 360 PSM III dans le monde. On considère le PSM comme l’équivalent du CSM.
Vous pouvez passer les évaluations sans suivre aucun cours, mais il y a un coût à prendre l’examen. Scrum.org offre aussi un Professional Scrum Product Owner (PSPO). Les prix des cours varient par région et formateur.
Listée en dernier parce que ce n’est pas une certification spécifique à Scrum, il y a l’offre du PMI : le Praticien Certifié Agile (PMI-ACP). Actuellement il y a 17000 détenteurs de la certification PMP-ACP. C’est une offre agile semblable au PMP dans la gestion de projet traditionnelle. Elle exige la preuve tant d’expérience de gestion de projet traditionnelle que d’expérience agile et il faut réussir une évaluation dans un centre d’examen autorisé.
Pour tous les détails (en anglais)
Bien qu’il n’y ait aucun cours spécifique exigé, 21 heures de formation sont requises. Comme avec le PMP, il y a des cours préparatoires disponibles pour fournir les heures de formation nécessaires et couvrir le matériel que vous devez connaitre.
CertYou est partenaire de DantotsuPM
“PMI,” the PMI logo, “PMP,” “Project Management Institute” and “PMI-ACP” are registered marks of Project Management Institute, Inc.
partagez ce billet avec vos amis, collègues et relations professionnelles
Dans cet article, l’auteur a pris le parti de la complémentarité plutôt que de l’opposition entre les méthodes de développement traditionnelles et Agile.
Serhiy Kharytonov
Selon Serhiy Kharytonov, le choix entre les méthodes « en cascade », RUP (rational unified process) et agile, dépend à la fois de l’expérience de l’équipe, de la culture d’entreprise, du type de projet, de l’environnement, du mode de développement interne/externe, et prend en compte la dispersion géographique de l’équipe.
Une combinaison des trois méthodes selon les moments du cycle de développement pourrait être une bonne approche.
Cet article qui date pourtant de presque dix ans reste étonnamment actuel.
Utilisez vous d’autres critères de choix de votre approche de développement?
Waterfall, RUP et Agile : quelle est la bonne méthode de développement logiciel pour vous?
Rationalisez la production avec les processus rapides et efficaces « en cascade », RUP et Agiles. Créez le bon mix de stratégies de développement logiciel afin de répondre aux besoins spécifiques de votre projet.
Malgré les signes de reprise dans l’économie, une réalité persiste dans le développement logiciel: La plupart des sociétés et clients ont besoin de leur logiciel pour hier avec les fonctionnalités les plus avancées au coût le plus faible possible.
Pour atteindre ces objectifs apparemment contradictoires, les développeurs cherchent à rationaliser la production avec des processus rapides et efficaces qui peuvent donner au client ce qu’il veut en un laps de temps le plus court possible.
Ces constantes et les échecs de développement passés ont mené à un changement dans le développement logiciel depuis des méthodes très structurées, séquentielles de développement logiciel souvent appelées le modèle Waterfall / « en cascade », vers des modèles plus itératifs et progressifs tels que « Rational Unified Process » et « Agile. »
Les partisans d’Agile sont nombreux et il peut parfois sembler que les processus de développement plus traditionnels sont tombés en défaveur, mais en réalité les trois modèles ont leurs avantages, leurs incovénients et leurs environnements de projet favoris.
Au bout du compte, la meilleure méthode ou le meilleur mix de méthodes pour vous dépend d’une compréhension minutieuse des trois processus et comment ils s’adaptent à votre projet logiciel, votre culture business et votre propre environnement de développement.
Waterfall / « En cascade »
La programmation « en cascade » est un processus fortement structuré qui compte fortement sur une planification initiale et un ensemble d’étapes séquentielles, prescrites qui découlent l’une de l’autre comme l’eau dans une une cascade. Chaque étape a typiquement sa propre équipe d’experts et jalons soigneusement préparés à l’avance et aucune étape ne peut commencer tant que l’étape précédente n’a pas été complétée. Le but est de recueillir tous vos besoins détaillés tôt dans le processus et de fournir une seule solution complète avec des résultats qui sont fortement prévisibles. On appelle aussi souvent cette approche le cycle en « V ».
Typiquement les étapes dans le développement « en cascade » sont :
Recueil des besoins et rédaction du cahier des charges
Analyse fonctionnelle
Développement du code
Intégration
Test et mise au point
Installation
Maintenance
Ceci peut marcher très bien pour des applications complexes, critiques à la mission de l’entreprise et qui s’intègrent avec de nombreux autres systèmes ou pour des organisations comme la NASA ou l’armée qui exigent les plus hauts niveaux de fiabilité.
Les détracteurs disent que le « Waterfall » demande simplement trop longtemps et manque de la flexibilité, ou de l’agilité, requise pour le marché logiciel actuel avec son environnement de développement en constant mouvement. Les projets qui suivent la méthode « en cascade » prennent typiquement des mois ou des années et quand ils sont finis, on découvre parfois que les besoins ont changé ou que les besoins originaux étaient incorrects depuis le départ. Le résultat peut alors être des corrections onéreuses explosant le budget initial.
RUP (rational unified process)
Comme la « cascade », le Rational Unified Process (RUP), produit par Rational Software et plus tard par IBM, est aussi un processus lourd, mais c’est une approche itérative qui prend en compte le besoin de répondre au changement et introduit de l’adaptabilité pendant le processus de développement.
Comme la « cascade », RUP a une série de phases et des jalons qui découlent l’un de l’autre :
L’initiation, où la portée du projet, l’évaluation des dépenses, des risques, le business case, l’environnement et l’architecture sont identifiés.
L’élaboration, où les besoins sont spécifiés en détail, l’architecture est validée, l’environnement de projet est détaillé et l’équipe de projet est configurée.
La construction, où le logiciel est construit et testé et la documentation de support est produite.
La transition, où le logiciel est testé au niveau système et utilisateur, corrigé et déployé.
RUP définit en détail les rôles et les activités de membres de l’équipe et compte à chaque étape sur la production de modèles visuels, qui sont les représentations graphiques riches de systèmes logiciels et des cas d’utilisation spécifiques plutôt que de grandes quantités de documentations requises pour chaque étape « Waterfall ». Tous les membres de l’équipe ont accès à la même grande base de connaissance de guides, modèles, outils et autres articles pour s’assurer qu’ils partagent les mêmes langages et perspectives sur le projet.
Alors que cela apparaît de prime abord similaire au développement « en cascade », la plus grande différence du RUP est son approche de développement itérative, qui construit le produit en plusieurs étapes basées sur des revues fréquentes avec les parties prenantes. Les premières itérations RUP sont surtout de la définition de besoin, de l’architecture et l’exploration de différentes idées, alors que les itérations ultérieures essayent d’assembler un produit complet. Chaque itération est un livrable exécutable et chaque phase RUP peut interagir avec les phases précédentes pour s’adapter au besoin.
Non seulement le processus RUP est itératif dans son ensemble mais RUP suppose aussi que chaque phase ait plusieurs itérations internes basées sur des retours utilisateurs.
RUP adresse bon nombre des critiques du développement « Waterfall » et c’est une bonne méthode pour des agences gouvernementales et institutions éducatives qui apprécient un cycle de développement de logiciel stable et répétable, ainsi que pour des organisations qui « offshore » les développements dans des pays comme l’Inde et la Chine, ou qui produisent des progiciels.
Les critiques disent que RUP n’est pourtant pas aussi rapide ni adaptable que d’autres méthodes, comme Agile et ne marche pas bien quand un délai de mise sur le marché rapide est crucial et là où l’on s’attend à des mises à jour fréquentes et des compléments rapides de fonctionnalités.
Agile
Tandis que « Waterfall » et RUP penchent vers la prédictibilité, les buts principaux d’Agile sont la vitesse et l’adaptabilité. Il y a beaucoup de types différents de processus de développement Agile, dont XP et SCRUM, et tous s’efforcent de mettre une version du produit basique mais fonctionnelle entre les mains du client aussi vite que possible.
Ils font alors suivre cette version par des versions successives qui ajoutent et changent les fonctions nécessaires au fil du temps pour fournir un produit plus robuste. Chaque module successif est planifié, codé, testé et complété sur de courtes périodes de deux à quatre semaines. Bien que le processus Agile soit planifié d’avance comme en « Waterfall » et RUP, il fait passer les gens et la collaboration avant le processus lui-même.
Plutôt que de dépendre d’équipes composées de nombreux experts, le processus de développement Agile est typiquement entrepris par une seule, petite équipe, cross-fonctionnelle, censément auto-organisée, qui doit inclure un représentant client qui suit des réunions quotidiennes et s’assure que l’équipe travaille sur les choses dont le business a vraiment besoin. La constante collaboration en face à face est l’objectif, avec le représentant du client comme l’un des collaborateurs les plus importants. La documentation est dé-priorisée par rapport à l’approche « Waterfall » et même RUP pour sortir quelque chose aussi rapidement que possible.
Avec son approche modulaire, progressive, faite en collaboration, Agile est rapide et fortement adaptative au changement des besoins et réponses aux challenges amenés par la compétition, qui sont les raisons de tant de partisans.
Certaines sociétés sont fréquemment citées comme ayant utilisé la programmation Agile avec beaucoup de succès, avec des cycles de développement de 30 à 90 jours qui ont apporté une productivité spectaculaire et des avantages business par rapport aux 18 mois ou plus pris dans le passé pour produire un logiciel utilisable.
Mais même s’il est facile de tomber amoureux d’Agile, l’approche a aussi ses limitations et inconvénients. Son accent sur les réunions quotidiennes en physique et la collaboration rapprochée rend le processus difficile à adapter à l’externalisation des développements, à des situations où clients et développeurs sont géographiquement éloignés, ou aux clients qui n’ont tout simplement pas les compétences, les ressources ou le focus nécessaires.
Son accent sur la modularité, le développement progressif et l’adaptabilité ne convient pas aux clients qui veulent des contrats avec des évaluations fermes et définitives et des échéanciers fixes. Sa dépendance sur de petites équipes auto-organisées rend difficile l’adaptation aux grands projets logiciels avec de très nombreuses parties prenantes aux besoins différents et néglige de prendre en compte le besoin de leadership pendant que les membres de l’équipe s’habituent à travailler ensemble.
De plus, le manque de documentation complète peut rendre la maintenance et les nouveaux développements difficiles quand les membres de l’équipe originale laissent leur place à d’autres. Cela peut mener à des modules aux fonctionnalités et interfaces inconsistantes. Finalement, plus qu’avec le « Waterfall » et RUP, le développement Agile dépend éminemment de la capacité à recruter des analystes fonctionnels très expérimentés qui savent comment travailler indépendamment et s’interfacer efficacement avec des utilisateurs métiers.
CertYou est partenaire de DantotsuPM
Le meilleur de chaque monde
Si Agile, RUP et des modèles « en cascade » ont chacun leurs inconvénients, lequel devriez-vous choisir ? De plus en plus, le secret des développements logiciels réussis est de comprendre les trois processus dans le détail et de sélectionner les parties de chacun qui conviennent le mieux à leurs livrables et environnements spécifiques. Donc, être agile dans l’approche même du choix du processus, en regardant sans cesse ce qui a été réalisé, en réévaluant et révisant le processus de développement jusqu’à ce qu’il s’adapte au mieux aux circonstances actuelles.
Par exemple, si vous développez du logiciel « Software as a Service » SaaS dans un marché fortement concurrentiel, vous ferez probablement le meilleur choix en penchant vers des méthodologies Agile. Le SaaS se prête particulièrement bien à Agile puisqu’il prévoit un accès constant au logiciel pour y ajouter ou en changer des caractéristiques. Dans un tel marché concurrentiel avec des besoins utilisateurs changeants, vous voudrez probablement être capables d’apporter rapidement des changements.
D’un autre coté, si vous produisez pour le médical, l’ingénierie, ou autres systèmes qui exigent un haut degré de design et de certitude, alors il semble logique de commencer par du »Waterfall ».
Si vous produisez un progiciel grand public « sur étagère », avec de nouvelles versions qui vont être des enrichissements des versions précédentes, votre processus devrait probablement pencher vers RUP, avec une attention particulière sur le recueil des besoins, la définition du périmètre et du contenu au tout début, ainsi que des standards de parcours et d’interface utilisateur.
Quel est le meilleur de chaque approche que vous puissiez utiliser sur votre projet ?
Les développeurs peuvent tout de même utiliser des techniques Agile pour présenter des prototypes fréquents et des modules successifs aux chefs de produit de la société pour s’assurer qu’ils sont sur la bonne voie. La fréquence et l’intensité de collaboration entre chefs de produit et développeurs dépendent vraiment de leur proximité et de la culture de la société (selon que ces équipes soient plus ou moins habituées à une telle collaboration). Quand la distance géographique est un problème, les outils de collaboration comme la conférence à plusieurs sur le web et la vidéo peuvent être d’une grande aide.
Ce même mélange de techniques peut être utilisé dans un environnement d’externalisation du développement en « offshore ». En fait, avec les différences de fuseaux horaires et de cultures, il est important d’intégrer autant d’étapes itératives et progressives et autant de contacts de suivi que possible pour votre projet.
Choisir de partir sur des équipes auto-organisées ou une approche plus directive (« top-down ») de management dépend aussi du niveau de compétence et d’expérience de vos développeurs. Beaucoup de projets peuvent exiger au départ un leadership qui va ajouter une certaine urgence, une direction et une gestion des risques du projet jusqu’à ce que les membres de l’équipe s’habituent à travailler ensemble. Alors le rôle de leadership peut être réduit selon les besoins lors des itérations suivantes.
Le bilan est qu’il n’y a probablement aucun processus parfait pour tous les projets et tous les environnements, ni même pour un seul.
C’est pourquoi les sociétés doivent intégrer fréquemment « les leçons apprises » pour évaluer et réviser le processus lui-même, qui peut se déplacer d’un bout à l’autre du spectre à différents moments dans le cycle de développement.
Bref, en choisissant entre Agile, RUP et « Waterfall », adaptez le processus à vos besoins, plutôt que de chercher à adapter votre projet au processus !
partagez ce billet avec vos amis, collègues et relations professionnelles
Si Scrum est la méthodologie Agile la plus largement utilisée, Kanban devrait être en seconde place. Ça existe depuis longtemps, c’est élégant, c’est efficace, c’est simple et ça marche. Beaucoup de gens utilise Kanban en conjonction avec Scrum. Ils appellent parfois cette « Scrum-ban ». Quelques personnes utilisent juste quelques idées de Kanban, certaines un mélange à 50/50 des deux et d’autres uniquement Kanban. Pas de Scrum du tout. Cet article expliquera quand utiliser Kanban ou Scrum. Cela dépend vraiment de quel type de travail vous faites.
scrumban board
Cependant, beaucoup d’équipes utilise juste deux ou trois des idées de base de Kanban, plutôt que la totalité. Kanban est bien comme ça. Vous pouvez facilement ajouter, choisir les parties que vous aimez et laisser celles qui ne vous conviennent pas. Scrum ou la Programmation Extrême ne sont pas aussi flexibles. Elles n’ont pas tendance à bien fonctionner si vous n’en prenez que deux ou trois particules aléatoires. Elles sont un système logique. Kanban n’est pas vraiment un système logique, c’est juste un jeu de principes pour visualiser et améliorer le travail. Choisissez ceux que vous aimez. Ou utilisez-les tous!
D’abord, passons les différences principales entre les méthodes.
Scrum est avant tout itérations
Voici le diagramme du Modèle Scrum
Le focus principal dans Scrum est sur les itérations. Une itération est une courte unité fixe de temps. Scrum appelle ces itérations « des sprints ». Un sprint dure d’habitude deux, trois ou quatre semaines. Vos sprints doivent tous être de même durée. Vous ne pouvez pas avoir un sprint légèrement plus long ici et un sprint plus court là. Ce serait tricher. Le principe est d’entrer dans un modèle prévisible de livraison de travail. L’équipe exécute une planification fréquente et des revues et rétrospectives fréquentes. Cela permet à l’équipe de prévoir et planifier le travail qui sera fait sur les deux prochains sprints.
Kanban est avant tout états de travail
Dans Kanban, il n’y a aucun sprint. Il n’y a aucune itération. Il ne s’agit pas tellement de temps et de prévisibilité, il s’agit plutôt de travail. Le focus dans Kanban est dans le découpage et la visualisation de petits articles de travail. Vous dressez alors la carte des articles de travail sur des états spécifiques du travail. Essayer de placer peu d’articles de travail dans n’importe quel état particulier et aussi peu d’articles de travail possible comme bloqués. Vous pouvez aussi imposer des “limites WIP ” (nombre d’items « work in progress » donc de travail en cours) dans chaque état. Cela signifie que vous ne pouvez pas avoir plus qu’un certain nombre d’articles dans un état particulier. L’objectif est d’avoir un flux de travail lissé à travers tous ces états.
Scrum est bon pour suivre le progrès et planifier
Scrum est une bonne structure pour le travail de développement de fonctionnalités. Pour le travail où vous avez une pile de fonctionnalités à construire et vous devez planifier grossièrement combien de temps il faudra pour les construire et quand elles pourraient être finies. On utilise des sprints de durée fixe donc vous pouvez mesurer votre progrès comme vous avancez et déterminer votre vélocité. La vitesse vous aidera à projeter combien de temps il faudra pour finir tout le travail. Souvenez-vous, la vélocité est pour qu’une équipe pour fasse son propre planning, pas pour qu’un manager mesure la productivité.
Alors, en résumé, Scrum est bien adapté pour réaliser un travail de développement parce que :
Le travail est composé de grosses parties vagues qui peuvent alors être décomposées en item de fonctionnalité spécifiques plus petits
Le travail fait généralement partie d’une série encore plus grande de buts à long terme (« des releases » ou « des horizons »)
Les délais fixes et limités, les timeboxes, vous laissent mesurer votre taux de progression
Les délais fixes et limités et un taux de progression signifient que vous pouvez planifier vers les objectifs à long terme.
Kanban est bon pour le flux et la quantité livrée
Get the book for free on line
Kanban est bien adapté à un travail où il n’y a pas de gros arriéré de fonctionnalités à développer. L’attention est plutôt sur livrer rapidement de petits items de travail comme ils arrivent. Un exemple usuel est celui d’une équipe assignée à résoudre des incidents de production. Kanban fonctionne vraiment bien ici parce que :
Le travail surgit devant l’équipe (c’est-à-dire poussé vers elle, basé sur la fourniture) plutôt que tiré par l’équipe (c’est-à-dire basé sur la demande)
Le travail est composé de petits composants distincts qui ne sont pas d’habitude connectés à d’autres composants de travail
Il n’y a aucun objectif à long terme ou but à atteindre
La planification est sans importance ou sans rapport.
Et si vous voulez utiliser les deux ?
Eh bien, bonne nouvelle, vous pouvez. En fait, la plupart des personnes le font. Les équipes de développement de logiciel les plus agiles utilisent Scrumet beaucoup d’entre elles utilisent au moins certaines (mais pas toutes) les idées de Kanban. La plus commune est celle des colonnes sur le tableau de visualisation Kanban. Elles sont si fréquemment utilisées que je les prends pour acquises et oublie souvent qu’elles ne sont mentionnés nulle part où dans Scrum ! C’est aussi une pratique commune que d’utiliser quelques autres idées des tableaux de visualisation Kanban comme des avatars et de marquer les histoires bloquées.
Alors, quand utiliser Kanban ou Scrum ?
En résumé, vous devriez :
Utiliser Scrum (ou quelque chose de similaire) pour le travail de développement de fonctionnalités avec des gros objectifs de livraison ou des jalons importants
Utiliser Kanban (ou similaire) pour les petites items de travail entrant dans l’équipe comme la réparation de bugs ou de petites demandes d’améliorations
Mais ne pas hésiter à les combiner, en particulier en adoptant Scrum, mais en appliquant certaines grandes idées Kanban comme les tableaux de visualisation.
J’espère que cela aide à éclaircir les choses!
CertYou est partenaire de DantotsuPM
Une petite vidéo de 6 minutes en anglais pour exposer comment appliquer certains des principes de Kanban à Scrum.
partagez ce billet avec vos amis, collègues et relations professionnelles
The #AgileManifesto is the core of the Agile Movement.
It was written in February 2001 by software practitioners who found consensus around 4 values and 12 Agile principles.