8
votes

Scrum dans un projet de coût fixe

J'ai lu le manifeste agile et passer une bonne journée à surfer sur le Web à la recherche de cette réponse insaisissable. Mais malheureusement, je n'ai pas eu de réponse qui couvrirait toutes les bases.

Lorsque vous regardez tous les poteaux de blogs et les journaux de journaux de prédicateurs agiles, vous entendez simplement sur la portée ouverte ou sur des projets «temps». Comment appliquez-vous cela à un projet de coût correct?

D'après ce que j'ai découvert le plus gros problème, c'est la gestion de la portée. Comment déterminez-vous si quelque chose n'est pas à l'intérieur de la portée projetée et comment formulez-vous des arguments pour votre décision? En raison de la manière agile, vous implémentez votre logiciel, il n'y a pas de conception détaillée pour discuter. Dans la plupart des cas, vous n'avez qu'une liste de souhaits vague que le client vous convient. Et est si général que vous pouvez interpréter n'importe quelle fonctionnalité.

et avec le pourcentage croissant de projets à coût fixe, ces coutures pour moi d'être un vrai problème.

Les questions seraient donc:

  • Comment gérez-vous la portée dans un projet de coût du correctif?
  • Comment déterminez-vous si les fonctionnalités souhaitées sont en dehors de la portée initiale?

6 commentaires

À Agile, il peut y avoir une conception détaillée. Et vous n'êtes pas remis une "liste de souhaits vague" - vous avez généralement des cas ou des histoires d'utilisateurs, qui sont censés être assez précis sur ce qui doit être fait, mais pas comment le faire.


La "liste de souhaits vague" ne devrait-elle pas être mise à jour après chaque sprint afin que le propriétaire du produit soit décidé où l'attention est concentrée?


Mettre à jour la liste de souhaits vague après chaque sprint serait bien. Mais lorsque l'utilisateur a une attente fixe de la fonctionnalité et s'attend à cette fonctionnalité à une date prédéfinie, le réglage de la portée peut devenir laid.


@Dejan - Si vous êtes inquiet des parties prenantes lorsque vous parlez de la portée de l'ajustement, cela ressemble au problème est que vous n'avez pas obtenu intégralement par les parties prenantes du projet. La chose à propos de Agile est que ce n'est pas simplement une méthodologie de développement - c'est une méthodologie SDLC complète. J'ai trouvé si vous avez une banquette "fixe" sans possibilité de résolution, vous êtes très susceptible de manquer des échéances. La partie prenante doit être plus active à faire des concessions pour faire une échéance, comprendre que l'objectif est de libérer un produit utilisable pouvant être affiné itératif.


par-in = buy-in. Désolé. Pas assez de café, ce matin. ;-)


Cette question est hors sujets car ce n'est pas dans la portée de ce site, tel que défini dans Quels sujets puis-je poser ici? aussi Voir: quels types de questions dois-je éviter de demander? Vous pourrez peut-être demander sur Un autre site d'échange de pile , par exemple gestion de projet ou Génie logiciel . Assurez-vous de lire la page sur le sujet dans le centre d'aide pour tout site sur lequel vous avez l'intention de poster une question.


7 Réponses :


0
votes

D'accord, ce ne sera pas la réponse idéale que vous recherchez, mais peut aider sans nombre.

Pour votre premier point:

avec agile et Scrum en particulier, le style est adapté à la modification des spécifications et des délais impassibles à l'aide de modèles d'itération. Pour pouvoir gérer cela dans un projet de portée fixe sera un cauchemar. Ce que l'on ferait normalement, c'est établir un budget pour la portée spécifiée, et tout addendum à cela produirait des heures de facturation ci-dessus et au-delà du budget Scopé. Pour ce faire dans Scrum serait inutile, car le rétro-éclairé du produit sera continuellement rempli par les parties prenantes. S'il n'y a pas de "punition" pour des changements de portée dans un budget fixe, rien ne retienne les gens de ne pas se charger de vous.

L'alternative ici consiste à avoir des successions de sprint de portée fixe, donc par exemple:

5x sprints = x coût avec une modification minimale de portée .

Pour votre deuxième point:

L'utilisation de l'analyse et de la conception est un outil inestimable. En utilisant des cas d'utilisation, des tables d'événements, des diagrammes de séquence, des machines d'état et similaires; Vous vous sauverrez des océans de larmes à long terme. Fondamentalement, une fois que la planification a été effectuée, tout addendum à cela nécessitant des éléments supplémentaires (veuillez noter des choses supplémentaires non négligées) les cas d'utilisation et les changements de code importants seront hors de portée. En fait, tout ce qui n'a pas été négligé dans la planification et n'est pas dans votre spécification, n'est pas hors de portée.

En clôture, vous devrez disposer de documentation très bien planifiée, ainsi que des accords très solides avec vos clients pour pouvoir retirer cela 100%.

J'espère que cela vous aidera.


1 commentaires

Ceci est juste ma vision des choses. Je dois dire que je suis gros fan de Scrum. Mais je ne peux pas avoir lu l'abattage que nous rencontrons dans le "Si tout ce que nous avons est un marteau, tous les problèmes ressemblent à un problème".



5
votes

Scrum ne remplace pas d'exigences appropriées, ni même d'avoir des versions ou des jalons majeurs occasionnels. Au contraire, cela vous donne un moyen de garder votre équipe productive et concentrée, et évite les effets secondaires de gaspillage du temps d'un processus de cascade.

En fait, l'un des principaux avantages d'un processus agile comme Scrum est qu'il vous fait «échouer rapidement et fort» sur les zones problématiques de votre projet. Si, après quelques sprints, votre équipe ne peut toujours pas estimer efficacement le temps et les ressources nécessaires à la mise en œuvre d'une caractéristique particulière, il peut être utile de repousser les exigences de cette zone - elles devront peut-être être clarifiées, simplifiées, ou mis au rebut complètement. Cependant, dans un processus de cascade traditionnel, ces "caractéristiques de problèmes" peuvent souvent être repoussées à la dernière minute possible, ce qui entraîne la mort habituelle et la délivrance dans laquelle la plupart des projets se développent.

Cependant, le rôle du propriétaire du produit est encore plus critique dans les équipes utilisant Scrum qui disposent d'un ensemble d'exigences. GAUCHE à leurs propres appareils, la plupart des équipes de développement se concentreront sur les fonctionnalités les plus intéressantes / amusantes / geek (API de service, la mise en cache, la recherche), et laissez les trucs «désordonnés» comme le processus de paiement, UX Design et I18N jusqu'à la dernière minute. . Une voix utilisatrice forte est essentielle pour s'assurer que les fonctionnalités essentielles à l'utilisateur final reçoivent leur juste part d'attention.


0 commentaires

0
votes

J'ai travaillé dans un environnement où nous avions un coût fixe et des projets à temps fixe. Nous sommes passés à une méthologie Scrum-Esque à partir d'une méthodologie de cascade / vmodel. Scrum peut très bien fonctionner dans des projets de coûts / horaires fixes car le concept est que le client est mis en contrôle, mais pour que cela fonctionne, vous devez être capable de déterminer quelque peu de savoir quel travail est requis et ce qu'il va coûter (temps, argent , Ressource). Et il s'agit d'une station de situations où Scrum dans un candidat idéal.

Vous décomposez la liste de souhaits Wishy-Washy / Exigences / Screenshots dans des produits livrables tagibles. Par exemple. Un client peut dire "je veux de l'ecommerce, avec PayPal", vous devez casser cela dans des produits livrables réels. "1. Enregistrement du client et connexion, 2. Catalogue de produits, 3. Sac shopping, 4. Paiement, 5. Acquéralisation de la commande". À ce stade, il est toujours impossible de déterminer combien de temps il faudra et nous devons livrer tout ce qui précède afin de compléter le projet (c'est-à-dire que vous ne pouvez pas avoir de commerce électronique sans paiement). Alors rompre à nouveau, et encore une fois, jusqu'à ce que vous ayez des produits livrables granulaires, Genreally Delverable en quelques heures, peut-être des jours, mais certainement pas des semaines, par exemple xxx

et ainsi de suite, il peut être fait très vite, et vous pouvez maintenant probablement deviner combien de temps il faudrait ToDo X (OFC, je risquai de cascuser encore plus loin, ajoutez davantage de texte descriptif pour décrire le travail requis, tel que les données persistantes pourraient avoir besoin, la Données dans ces structures, comment les données seront ajoutées, aller plus loin, vous pourriez même déshériter les états de début et de sortie requis).

Une fois que vous êtes allé, vous remarquerez que certaines fonctionnalités et des dépendants sur d'autres, vous ne pouvez pas avoir une fonctionnalité de pagination sur un catalogue, à moins que vous n'ayez un catalogue pour commencer, et La cataglogique nécessitera que la CMS screesn d'ajouter et d'éditera les éléments d'édition, etc., etc., etc. Soulignez ceux-ci «Impossible de vivre sans fonctionnalité» dans tout l'outil que vous utilisez, ce qui forme le projet de base, et dans un jour ou deux, vous avez une bande de fonctionnalités qui Peut être développé un peu autonome, avec des coûts, qui, lorsqu'ils sont ajoutés, apportent le coût du projet. Et maintenant, le client est responsable, ils décident que Thay souhaite ajouter une fonctionnalité et augmenter le coût, refroidir, leur après-vente.

Tout ce qui précède n'est évidemment qu'une petite partie de ce que Scrum ou tout processus agile est.


2 commentaires

Si nous décomposons la liste des clients de la liste des clients dans des peines plus petites, où faisons-nous la ligne entre le grippe de gros plan et la mêlée. Parce que nous savons que la BUFD ne fonctionne pas. Alors, ici, je vois un petit problème de la façon de faire ce droit.


Je suis d'accord, cela prend un jugement. Pensez-y à être un premier projet de spécification fonctionnel, plutôt que d'une spécification technique, vous souhaitez seulement déshériter comment quelque chose fonctionne d'un point de vue de l'utilisateur, vous n'avez pas besoin de tout spécifier. Par exemple, au-dessus de la pagination métimée, mais pas de la manière dont je voudrais le mettre en œuvre, ou comment l'utilisateur interagirait-il (est-ce un lien, ou une liste déroulante, puis-je revenir en arrière, avant, sauter à la page? Etc.). Vous pouvez également utiliser un outil de moqueur d'interface utilisateur (j'aime les moqueurs de Balsamiq) pour obtenir le problème, vous êtes limité à des éléments d'interface utilisateur très basique, si vous ne pouvez pas vous moquer de cela, c'est trop complexe.



0
votes

Je ne pense pas que le contrat de prix fixe avec le fluage de portée et un processus de Scrum sont incompatibles. Vous devez juste être d'accord avec votre client comment cela fonctionnera. Si vous créez votre arriéré initial avec votre client, vous pouvez l'estimer, vous pouvez l'utiliser comme base du coût et de l'horaire à prix fixe. Vous pouvez même accepter un taux de «X» Story Points est égal à «Y» Coût et «Z». »Au début.

Vous faites ensuite la chose de Scrum normale, que le client affecte des histoires à l'itération actuelle, etc.

Au fur et à mesure que le client s'engage dans l'étendue Creep, vous travaillez avec eux pour ajouter le "fluage" comme des histoires d'utilisateurs à l'arriéré. Chaque fois que vous ajoutez une nouvelle histoire, indiquez que pour chaque X points ajoutés à l'arriéré, ils devront augmenter le coût par Y et le calendrier de Z, ou ils devront abandonner des points d'histoire de la valeur égale. Comme ils choisissent ce que vous travaillez chaque itération, les points qu'ils abandonnent (si c'est le choix) seront les caractéristiques les moins précieuses. Lorsque votre planification s'épuise, vous serez laissé avec un arriéré des fonctionnalités les moins importantes qu'ils peuvent choisir de vous déposer ou de vous donner un nouveau contrat à la fin.

L'astuce, bien sûr, est d'être utile pour estimer les coûts et le calendrier de chaque histoire / tâche; -)


3 commentaires

Le problème n'est pas de créer un arriéré initial, il est d'estimer à l'avant et de geler les estimations. Il y a un double inconvénient: 1. Vous devez estimer au pire moment (lorsque vous connaissez moins le projet) 2. Vous ne pouvez pas les modifier plus tard. Ce n'est pas vraiment compatible avec Scrum qui permet et favorise la réévaluation constante lorsque vous apprenez.


Comme dans le commentaire ci-dessus, j'ai du mal à rejoindre ces deux ensemble. C'est pourquoi cette question a été posée.


+1 pour une bonne réponse Singleshot. @ Pascal / Dejan: Les points / frais d'histoire ne sont pas égaux à des heures; Il n'y a qu'une corrélation entre les deux. Cela peut être fait avec Planning Poker. Peu importe qu'il y ait une inexactitude de +/- 25%, à condition que cela puisse sortir. L'approche Scrum a plus de liberté pour la direction en tant qu'approche de cascade traditionnelle, car les histoires peuvent être échangées au cours du projet. Les modifications peuvent être incorporées à l'intérieur du prix fixe, plutôt que comme coût supplémentaire. Prix ​​fixe / Portée fixe est presque impossible (souvent en supposant aussi une qualité fixe et une qualité fixe). C'est une bonne approximation.



0
votes

Le projet pourrait être divisé en parties plus petites et les taux fixes pourraient être attachés à ceux-ci. Les autres phases du projet pourraient ensuite être ajustées.

Vous devez être capable de vendre le processus agile contre vos concurrents. Si un client a des antécédents de projets d'offre fixes qui ont été livrés à temps, aux spécifications et aux coûts, pourquoi perdraient-ils leur temps à prendre des offres d'autres développeurs?


0 commentaires

11
votes

Pour moi, la réponse courte sur le prix agile et fixe est que vous ne pouvez pas le faire, du moins pas avec une portée fixe.

Je sais que certaines personnes vont dire " ce n'est pas vrai, nous le faisons " mais, avec tout le respect due, je ne pense pas qu'ils font vraiment agile et que je vais expliquer pourquoi. En réalité, l'explication est assez simple: le prix fixe implique une portée fixe et repose sur la prévisibilité dans laquelle Agile est tout au sujet de la portée variable, de la gestion de la portée et de l'adaptation. Un prix fixe avec une portée fixe est fondamentalement l'opposé d'agile.

Avec une approche agile, le prix fixe vous donne un certain nombre d'itérations pour une taille d'équipe donnée. Pendant ces itérations, le client sera en mesure d'avoir l'équipe de construire d'abord les caractéristiques les plus précieuses et de maximiser la valeur commerciale générée. Toute l'idée est alors de cesser d'itération lorsque le coût d'une itération est supérieur à la valeur générée. Voici comment fonctionne agile.

Alors, lorsque les gens disent qu'ils font un prix fixe avec une portée fixe d'une manière agile, ils introduisent réellement certaines contraintes qui ne sont pas vraiment compatibles avec la théorie agile - comme faire une estimation initiale d'un ensemble donné de caractéristiques et de geler ces Caractéristiques et estimations - et ils perdent des avantages importants d'Agile (à moins d'avoir une connaissance parfaite des technologies et du domaine commercial et de les maîtriser suffisamment pour tout prédire, mais je connais peu de projets comme celui-ci).

Voici de toute façon une bonne compilation de divers contrats agiles: 10 contrats pour votre prochain logiciel agile Projet qui pourrait être utile. Mais je pense qu'ils nécessitent tous une éducation des clients, en particulier celle utilisée pour un prix fixe avec une portée fixe (et des livraisons en retard).


1 commentaires

Je suis d'accord 1000%. Les parties prenantes doivent faire partie de points de contrôle réguliers pour suivre les progrès et hiérarchiser les zones fonctionnelles. S'il y a une insistance sur l'obtention d'une fonction fixe définie dans une heure fixe, la partie prenante ne bénéficie pas du processus agile. Sans investissement intégral de toutes les équipes (techniques et commerciales), le processus est destiné à échouer - et s'il n'est pas défaillant, étant presque inutile.



0
votes

Le coût fixe ne signifie pas un sprint unique. La portée est transférée sur l'arriéré du produit, et comme progrès des sprints, la portée est ajustée, négociée et livrée. Scrum permet une livraison de valeur rapide et fournit une validation rapide et la possibilité d'identifier le placage d'or potentiel.

Le changement de portée peut entraîner l'ajout d'éléments d'arriétrie et la suppression des autres. C'est un équilibre de retour sur investissement vs le budget fixe fourni.

Si la portée augmente (et ajoute de la valeur) et que le coût est corrigé, la triple contrainte (coût, temps et périmètre) doit être gérée en conséquence.

N'oubliez pas que le coût fixe ne signifie pas une longueur fixe.


0 commentaires