En tant que personne qui a travaillé efficacement avec Agile auparavant, j'essaie de convaincre mes employeurs actuels de ses avantages. Cependant, la direction insiste pour que nous conservions la capacité de faire des estimations initiales afin d'évaluer la valeur commerciale des projets.
La plupart de mes clients sont internes et j'ai récemment été chargé de faire le tour des équipes et de leur demander des idées sur les processus métier à automatiser. Je devais ensuite savoir combien de temps cela leur prenait, déterminer combien de temps la solution permettrait d'économiser et estimer le temps de développement total. De cette façon, les gestionnaires pourraient tenter de mesurer l'efficacité d'une solution en termes de gain de temps.
Cependant, il me semble qu'il n'y a aucun moyen d'aborder cette exigence de manière "agile". Des exigences flexibles signifient que non seulement les estimations du temps pris seront fausses, mais aussi les estimations du temps potentiel économisé. J'ai expliqué autant, expliqué pourquoi cela pourrait être problématique, mais on m'a dit que ce n'était pas négociable.
La question Comment vendre le développement Agile à des clients (en cascade) contient quelques conseils utiles sur la façon de "vendre" Agile à des clients externes. Je n'essaie pas de le vendre à des clients externes: j'essaie de trouver la meilleure façon de concilier les exigences de la gestion interne tout en conservant une méthodologie qui, je pense, fonctionne bien.
Existe-t-il un moyen d'aborder cette tâche de manière flexible qui me permette de conserver au moins certains avantages Agile?
Réponses:
Comme d'autres réponses l'ont indiqué, la direction a parfaitement le droit d'obtenir une estimation de haut niveau en amont d'un projet. Ils ne sont pas déraisonnables pour essayer de déterminer le retour sur investissement.
Cependant, l'une des approches que j'aime chez Agile est que la portée d'un projet n'est pas fixe. Il peut être initialement dimensionné au niveau de la fonctionnalité et de l'épopée, puis les entreprises peuvent déterminer le retour sur investissement en fonction des fonctionnalités les plus importantes. L'interface utilisateur sophistiquée avec cloches et sifflets a peut-être une faible valeur commerciale, mais le moteur de flux de travail pour le traitement des réclamations a un retour sur investissement élevé.
Lorsque vous regroupez l'ensemble du projet, il est plus difficile de respecter le retour sur investissement que si vous vous concentrez sur les fonctionnalités commerciales essentielles souhaitées.
Voici une façon dont j'ai fait cela:
Prenez vos étapes WBS et transformez chacune d'elles en une fonctionnalité livrable
Cela vous permet de classer votre projet en mini-sous-projets dont la valeur commerciale varie. Chacun de ces éléments devrait être autonome en termes de valeur commerciale.
T-Shirt taille l'effort sur les fonctionnalités
C'est un moyen très simple d'avoir une idée approximative de la taille ou de l'implication d'une fonctionnalité particulière. Peut-être que les fonctionnalités de faible valeur ont toujours un excellent retour sur investissement si elles ressemblent à des gains faciles.
Décomposer une fonctionnalité en histoires
Parcourez l'exercice pour trouver une petite fonctionnalité bien comprise et décomposez-la d'abord en histoires. Estimez ces histoires par points. Maintenant, vous avez une base où
Ce sera une base de comparaison avec d'autres fonctionnalités
Associez l'effort du point d'histoire à toutes les fonctionnalités
Comparez votre petite fonctionnalité à d'autres fonctionnalités. Par exemple,
La caractéristique moyenne Y représente probablement 80 points d'histoire. Continuez jusqu'à ce que vous ayez des points d'histoire estimés à un niveau élevé pour toutes les fonctionnalités.
Estimez la vitesse de votre équipe
En regardant votre équipe de développement, essayez de déterminer combien de points d'histoire cette équipe pourrait-elle livrer efficacement dans un sprint donné. Si vous avez des projets Agile précédents comme exemple avec cette équipe, c'est un excellent point de départ. Si vous n'avez pas un tel historique derrière l'équipe, passez par une simulation de planification de sprint avec votre équipe où vous commencez à regarder votre petite fonctionnalité que vous avez détaillée. Quels types d'estimations horaires les gens donnent-ils pour leurs tâches sur ces histoires?
En fonction de la quantité de travail que l'équipe pense pouvoir réaliser en 2 semaines, utilisez ce nombre total de points d'histoire comme la vitesse potentielle moyenne de votre équipe!
Trouvez votre date d'achèvement prévue
Si votre équipe dans la planification d'un sprint simulé se sent à l'aise de livrer 25 points d'histoire dans un sprint, et que votre carnet de commandes total ressemble à 300 points d'histoire pour la version Cadillac or de votre projet, alors il semble que votre équipe prendrait idéalement 12 sprints ou 24 semaines pour tout compléter.
Maintenant, il est trivial de transformer le coût des ressources de votre équipe en dollars par semaine pour arriver à un coût pour le retour sur investissement par rapport à la valeur commerciale. La négociation peut se poursuivre sur les fonctionnalités les plus importantes, puis la gestion de votre projet devient fondamentalement un problème de sac à dos.
la source
Ce n'est pas un problème avec la "gestion". Il est impératif de pouvoir estimer le coût et les avantages de tout projet potentiel avant de commencer. Sinon, comment pourrait-on savoir ce qui vaut la peine d'être fait (ou tenté)?
Alors pourquoi Agile?
Je dirais que l' utilisation de méthodes Agiles ne signifie pas choisir l'incertitude. Agile est plutôt un argument selon lequel l'incertitude est inévitable, et les spécifications et estimations détaillées des méthodes traditionnelles introduisent une fausse certitude - ce qui peut être assez coûteux.
Quelques points clés en termes d'estimation de temps:
Mise à jour:
Juste pour clarifier, votre réponse à vos patrons semble être "Nous ne pouvons pas très bien estimer le temps gagné ou l'effort de développement total en utilisant Agile, car il est flexible." Je pense que c'est une erreur. Je pense que ces estimations peuvent être faites aussi bien en utilisant un processus Agile, car l'incertitude est là de toute façon. Et bien sûr, Agile permet un processus plus flexible et réactif à mesure que le projet se déroule.
la source
C'est certainement l'une des parties les plus difficiles de l'introduction d'Agile
"La direction a encore besoin d'estimations de temps"
Mon approche est:
Tampon 300%. Le vieil adage de 300% est utile lorsque vous êtes dans une situation où être vraiment agile au niveau de la gestion ne se produira pas. Ce n'est peut-être pas une "approche agile" mais c'est un compromis pour cette situation. Vous pourrez prendre de l'avance à quelques reprises - mais ne comptez pas là-dessus!
Demandez un examen basé sur le travail accompli à ce qui serait le point «à mi-chemin» du projet. Projetez quand vous seriez complet basé sur le travail effectué. Ensuite, parlez à la direction et passez en revue les personnes à sacrifier - fonctionnalité ou qualité - étant donné que le temps est fixé en fonction des suppositions au début du projet.
Assurez-vous que vous collaborez sur les fonctionnalités et la qualité avec la direction afin qu'ils prennent réellement ces décisions
Suivez le déroulement de ce projet et permettez aux choses habituelles de se produire - des délais manqués, une qualité compromise, des employés épuisés et stressés (et éventuellement décédés) qui partent. Lorsque le prochain projet de phase arrive, discutez de ces «effets secondaires».
Concentrez-vous et démontrez les avantages d'une "vraie" approche agile. Parlez de l'amélioration de la qualité. Parlez de la possibilité d'apporter des modifications tard dans la journée jusqu'à leur passage en production. Parlé de moins de besoin de retravailler. Parlez de moins de dettes techniques qui finiront par amener le développement à une rampe. Faites des analogies avec le monde réel, par exemple, nous pouvons différer un changement d'huile n'importe quel jour, mais le retarder suffisamment longtemps et le moteur souffre, fonctionne mal et finit par souffler une tige.
Gardez votre CV et votre profil LinkedIn à jour. Si vous ne pouvez pas obtenir de support de gestion après avoir présenté votre cas à plusieurs reprises, passez à autre chose. Certaines organisations ne seront pas répertoriées dans vos arguments, alors passez à celles qui le font. Appelé cela l'emploi du darwinisme;)
la source
Je pense que vous faites de fausses hypothèses sur le développement Agile. La flexibilité et les exigences changeantes sont littéralement intégrées dans le Manifeste Agile .
Les exigences flexibles (lire: changer) sont les bienvenues dans Agile. Certes, si vous demandez à la plupart des développeurs, ils ajouteront une mise en garde que le changement doit être raisonnable. Demander à une équipe de construire un jeu 3D puis changer les exigences pour être "système de contrôle d'un réacteur nucléaire" est un peu trop. Mais l'ajout, la suppression ou la modification d'exigences dans la portée du projet est parfaitement correct.
La question est de savoir comment faire face à l'évolution des exigences? La réponse typique consiste à utiliser de courtes itérations afin que vous puissiez effectuer des ajustements de cours tôt avant de perdre trop de temps. Cela oblige également l'équipe à décomposer les exigences en petits morceaux afin que chacun puisse mieux les comprendre et les mettre en œuvre dans un délai et des efforts raisonnables.
J'aime aussi ce principe Agile. Cela signifie normalement qu'une équipe doit s'efforcer de fournir uniquement les choses nécessaires grâce à une efficacité impitoyable. Par exemple: si le client pense avoir besoin de quelque chose mais que cela semble louche, fouillez. Peut-être que les utilisateurs finaux n'en ont vraiment aucune utilité, donc le travail ne devrait pas être fait.
Cependant, je pense que votre question porte sur un autre aspect de ce principe. Le logiciel sert généralement à automatiser un processus manuel. Le logiciel lui-même existe pour maximiser la quantité de travail non effectué - par les utilisateurs finaux.
Mesurer la quantité de travail que le logiciel sauvera pour les utilisateurs finaux est certainement une mesure valable. J'ai mesuré cela moi-même dans ma carrière. Il s'agit en fait d'un élément essentiel d'une analyse coûts / avantages: combien d'efforts le projet logiciel mettra-t-il en œuvre, par rapport aux efforts que le produit final permettra aux utilisateurs finaux d'économiser.
Ceci est absolument compatible avec la philosophie de développement Agile (ou toute autre) et votre direction devrait absolument y adhérer.
la source
Oui, l'agilité a certains avantages.
Mais, vous devez toujours fournir des estimations initiales raisonnablement précises.
Si vous ne le faites pas, vous demandez effectivement à l'entreprise d'investir dans votre produit sans aucune preuve que votre produit vaut même l'investissement initial - et, dans certains cas, n'importe quoi.
Et je peux l'entendre maintenant.
Je l'ai déjà entendu. Je suis presque sûr de l'avoir déjà dit :
Oh - mais Haow!? HAOW fait un simple mortel comme moi regarder mes yeux dans le destin de telles choses! Des choses que seuls les dieux eux-mêmes peuvent deviner et diriger. Des choses que les mortels ne peuvent que rêver dans les profondeurs les plus profondes et oublier au réveil! Oh types de gestion tyranniques, HAOW peut-on répondre à ces demandes!?
Utilisez vos performances passées comme guide et soyez honnête .
Enfin, présentez votre cône d'incertitude aux parties prenantes, énoncez vos hypothèses et préoccupations, et restez-en là.
En passant, je suggère également de proposer une heuristique d'estimation ponctuelle objective pour vous vérifier et / ou les estimations normales de votre équipe.
Vous pouvez utiliser cette estimation comme un Nième vote lors de la planification du poker, ou pour valider votre estimation privée si vous partez en solo. Par exemple, mon équipe a tendance à estimer environ 1 point par minute de discussion de découverte peu technique sur une histoire. Cela est particulièrement utile si votre instinct vous raconte une histoire est de 5 points, mais il vous a fallu 20 minutes pour comprendre ce qui doit être fait - c'est généralement un bon indicateur qu'il existe encore des complexités et des malentendus.
la source
Je n'ai jamais travaillé dans une entreprise qui pouvait avoir des estimations de temps cohérentes et bonnes, et je n'ai jamais travaillé avec quelqu'un qui prétend l'avoir fait non plus. La recherche vous montrera que l'estimation est un problème non résolu dans l'industrie.
J'essaierais d'obtenir l'adhésion à la mesure de la vitesse basée sur des points d'histoire abstraits, et si vous ne pouvez pas le faire, je remplirais davantage vos estimations.
la source
L'agilité est une excellente solution à toute une série de problèmes, mais malgré ce que certains évangéliques suggèrent, ce n'est pas la seule solution et ce n'est pas toujours la bonne solution.
Votre cas déclaré n'est tout simplement pas un problème agile:
Vous êtes chargé de déterminer le coût et les avantages de l'automatisation de certains processus métier, ce n'est pas une tâche agile sujette à changement, c'est un problème spécifique avec une solution spécifique. Vous produirez une liste avec un nombre arbitraire de processus métier et pour chacun, il y aura un coût estimé de l'automatisation, un coût estimé de ne pas automatiser et un avantage estimé de l'automatisation. La direction les comparera à leurs budgets, ressources, exigences et objectifs stratégiques et déterminera (le cas échéant) lesquels de ces processus automatiser. Si vous êtes consciencieux, alors vous aurez mis en évidence des tâches sélectionnées qui ont un retour sur investissement potentiellement plus faible en soi, mais qui réduiront le coût des autres phases, améliorant ainsi le retour sur investissement total. Vous pouvez également avoir identifié différentes façons de réaliser l'automatisation, y compris le développement sur mesure en interne et externalisé (en utilisant des techniques agiles et / ou en cascade), l'achat de solutions standard, l'utilisation de fournisseurs de services tiers, etc. L'ensemble de ce processus était très à la mode dans les années 90, lorsqu'il était connu sous le nom de réingénierie des processus métier.
la source