L’approche agile est-elle une excuse trop commode pour les cow-boys?

73

Je crois qu'une approche agile est préférable pour les projets où les exigences sont floues et où de nombreuses interactions sont nécessaires pour aider à définir les idées de l'utilisateur final.

Cependant ... Dans mon travail professionnel, je me retrouve souvent dans des entreprises où une approche "agile" est utilisée comme prétexte pour expliquer pourquoi aucun effort n'a été déployé dans une conception initiale; quand les exigences sont bien comprises.

Je ne peux pas m'empêcher de penser que si l'approche agile n'existait pas, je serais assis ici avec une spécification de haut niveau agréable et je n'aurais pas à revisiter le même écran et les mêmes fonctionnalités tous les deux jours lorsque quelque chose d'autre se présente. et donc je n'avais pas pensé à cela.

Les avantages des méthodes agiles sont-ils vraiment suffisants pour compenser l'excuse d'être boiteux qu'elle donne aux pistes techniques des cow-boys?

Mise à jour: Ironiquement, je suis maintenant un Scrum Master certifié. L'un des documents présentés sur le cours Scrum a observé que le meilleur processus de développement était celui où un seul expert ou un seul gourou prenait les décisions de conception, mais qui présentait des faiblesses évidentes. Scrum confie la responsabilité de la production de logiciels de qualité à "l'équipe", ce qui signifie qu'une équipe médiocre peut se permettre de produire des spaghettis qui, je suppose, ne sont pas différents des autres processus de développement agiles et non agiles.

Jim G.
la source
6
Euh ... Je trouve que certains convertis agiles deviennent un peu sur la défensive, en particulier lorsqu'ils voient agile et cow-boy dans la même phrase. Et je ne suis même pas trop agile, ce sont les cow-boys qui m'irritent.
Sipwiz
2
Cela pourrait expliquer en partie pourquoi nombre des signataires initiaux du Manifeste Agile expriment leur dégoût pour le terme "agile" tel qu'il est utilisé dans la plupart des entreprises. Au lieu de cela, ils parlent maintenant de choses telles que "l'artisanat du logiciel".
Darcy Casselman
1
Tout d’abord, laissez-moi vous dire que je ne suis PAS un fan d’agile. Deuxièmement, je dirai que selon mon expérience, "capital A Agile" ralentit tout le monde (y compris les cow-boys). Je n'ai jamais travaillé dans une situation où je sentais que l'agile permettait ce qu'on appelle le "codeur cow-boy".
TM.
1
Je ne pense pas qu'il soit juste d'appeler ce que vous décrivez le "codage cowboy". Ce n'est pas un problème individuel - c'est un problème de groupe. C'est une mauvaise gestion des produits et de l'équipe.
mat b
3
Je trouve que penser à l’avance est presque inutile. Itérer vers une solution après les premiers instincts peut être très efficace si vous utilisez des pratiques de programmation raisonnables. Mon expérience montre que ceux qui élaborent des projets conséquents ne peuvent pas réagir à la réalité une fois qu'ils ont commencé à programmer.
dash-tom-bang

Réponses:

87

Je suis content qu'il ait un nom

Je crois que si vous utilisez le développement Agile comme excuse pour une programmation de style cow-boy, vous ne suivez pas vraiment le développement Agile. Les cow-boys seront toujours des cow-boys, quel que soit le processus que vous leur proposez.

Dean Harding
la source
17
Dilbert (toujours) bascule ..
TheVillageIdiot Le
20

L’agilité n’est pas plus à blâmer pour les mauvaises pratiques de développement que la BDUF. Le problème réside dans la discipline, ou son absence, dans l'application des pratiques. Les pratiques de BDUF ont pour but de déterminer l’orientation du projet et de déterminer les risques au préalable. Le but des pratiques agiles est de garder l’état du développement suffisamment souple pour pouvoir changer rapidement de direction. Un projet agile pourrait préparer des user stories très détaillées pour que l'équipe soit au courant des orientations futures et ne sélectionne que 2 ou 3 par itération à mettre en œuvre. Le problème reste le même quelle que soit la méthodologie utilisée: la direction laisse les cow-boys se perdre.

[BDUF: Big Design Up Front]

Huperniketes
la source
3
Il ne sera jamais possible de déjouer les cow-boys, quelle que soit l'approche. Cependant, au moins avec une cascade, ils devraient au moins produire un document d'exigences, un document de différenciation, etc. Grâce à l'agilité, ils peuvent essentiellement s'en tirer en entrant directement dans le code.
Sipwiz
3
Encore une fois, ceci est un échec pour gérer le processus correctement. Le client doit informer les développeurs de la valeur commerciale de la user story et les tests doivent vérifier leur intégration dans la base de code. Connectez-vous les zones où les développeurs doivent revenir sur leurs pas. Ne sont-ils pas au courant du processus commercial du client? Sont-ils incertains quant à l'environnement de déploiement? Si le projet engendre des coûts de développement supplémentaires en raison de la "modification du composant", la direction devrait vouloir y remédier afin de réduire les risques de dépassement du budget ou du calendrier.
Huperniketes
4
Si vous commencez juste à taper du code, vous ne faites pas preuve d'agilité, même si vous l'appelez ainsi. Qu'est-ce qui m'empêche de taper du code et de l'appeler cascade si je passais 5 minutes à réfléchir aux exigences au début.
Craig
1
Huperniketes a raison, le problème n’est pas lié à la méthodologie; le problème vient de l’équipe de gestion qui laisse les cow-boys diriger le département.
Jeff Siver
7
@sipwiz: Même dans les cascades, les cow-boys se mettaient au code. Finalement, ils documentaient tout ce qu'ils avaient écrit comme spécification de conception.
TMN
13

Agile, comme n'importe quoi , peut être utilisé pour couvrir un mauvais comportement ou pour tenter de résoudre un problème dont l'équipe pense ne pas être responsable.

Cependant, la magie de certaines méthodologies Agiles telles que Scrum est qu’elles offrent une visibilité considérable sur les problèmes de l’organisation. Y compris les problèmes au sein de l'équipe!

Vous aurez ensuite la possibilité de les résoudre au fur et à mesure qu'ils se présentent.

Si le problème se pose pour les cow-boys, ce sera très visible après la première itération. Si le problème est ailleurs, vous le verrez très bientôt aussi.

utilisateur2567
la source
12

Curieusement, parmi les projets «agiles» auxquels je participe, cela ressemble plus à une excuse de la direction pour ignorer la phase de collecte des exigences qu’à un désir de cow-boy de simplement commencer à coder. Mes projets ont été extrêmement frustrant parce que nous n'avons des utilisateurs finaux d'interagir avec. Au lieu de cela, nous avons un directeur qui s’adresse aux commerciaux pour savoir ce qu’ils pensent que les clients veulent, puis convoque une réunion et la décrit aux gestionnaires, qui commencent ensuite à attribuer des tâches aux développeurs. Sur un "bon" projet, nous pourrions faire référence à une présentation PP, mais nous finissons généralement par passer nos réunions de mêlée quotidiennes à demander comment certaines fonctionnalités sont censées fonctionner, et le responsable écrit les questions et demande au directeur. C'est une énorme perte de temps - mais c'est "agile"!

RGT
la source
Nous n’appelons rien, mais c’est comme ça que les choses se passent ici. Nous avons en fait de gros documents de conception, mais ils sont obsolètes et personne ne les regarde. Au lieu de cela, chaque nouvelle fonctionnalité ou solution est dictée uniquement par ce que le vice-président considère comme particulièrement convoité ou par ce que les clients disent être en désirs, demandée rapidement par les clients et mise au rebut lors de réunions, et soumise à de lourdes échéances.
CodexArcanum
+1: @TMN, @ CodexArcanum: J'ai également vécu la même expérience. Il n'y avait pas de champion utilisateur. Les ventes ont imposé de nouvelles fonctionnalités à la gestion des produits, qui les a ensuite transmises au développement.
Jim G.
7

Je ne dirai pas que je suis un fan de Waterfall, car je suis moi aussi confronté à un glissement de champ toujours plus frustrant, mais j'ai toujours vu Agile comme une concession au problème, pas un moyen efficace de le combattre. Une bonne conception, avec des tests itératifs précoces et de nombreux prototypes en papier, semble être beaucoup plus efficace.

Morgan Herlocker
la source
4
Le problème est qu’une bonne conception est quasiment impossible pour autre chose que des projets triviaux. Les problèmes de conception n'apparaissent qu'au fur et à mesure de l'avancement du projet. Les utilisateurs ne savent pas ce qu'ils veulent, peu importe leur niveau d'expert.
Craig
@Craig. Bien que je convienne avec vous que les spécifications sont quasiment impossibles à définir, même les systèmes non triviaux devraient pouvoir être prototypés sur papier et que cela coûte beaucoup moins cher que d'écrire le système entier pour constater qu'il doit être réécrit. S'il ne peut pas s'agir d'un prototype de papier (du moins pour les fonctionnalités de base), il est difficile d'imaginer que le système en question fonctionnera bien ou qu'il sera raisonnable de le mettre en œuvre à la fin. Si vous et l'utilisateur ne pouvez pas vous asseoir et parcourir un scénario de test sur papier avant de commencer à travailler, vous rencontrerez de graves problèmes.
Morgan Herlocker
2
@Craig Je ne suis pas d'accord pour dire qu'un bon design est impossible. Connaître toutes les subtilités du système à l’avance est peut-être presque impossible, mais cela ne signifie pas qu’une conception contre ce que nous connaissons ne peut être produite. Je veux dire même une seule phrase du type "Cette application sera écrite comme une application MVC utilisant le cadre d'entité pour le DAL" serait quelque chose. En dehors de cela, j'ai vu des offres comportant plus de 180 pages d'exigences et vous ne pouvez pas me dire que ce n'est pas assez détaillé pour produire un assez bon design.
Sipwiz
sipwiz, mon expérience est que le nombre de pages ne correspond pas à l’utilité d’une spécification. Ce qui est écrit est plus important, pas combien. Cela dépend totalement du système si 180 pages est bon ou pas, si je construis Windows, je penserais que c'est un peu léger.
Craig
3
Aussi, je pense que vous devez vous rappeler, agile ne signifie pas aucune spécification.
Craig
6

Je vois des défenses du développement agile affirmant qu'il n'est pas responsable des échecs causés par les cow-boys. Réussir avec Agile requiert diligence et intelligence.

Cela semble une position raisonnable, tant que vous appliquez la même concession à d'autres méthodologies. Si vous ne pouvez pas reprocher à Agile les échecs de projets causés par les cow-boys, vous ne pouvez pas imputer aux méthodologies non-Agiles les échecs de projets causés par les cow-boys.

On peut alors se demander s’il existe une corrélation (et non une causalité!) Entre Agile et les cow-boys. Avec seulement des preuves anecdotiques, je crois qu’il en existe. Est-ce perçu comme un bon moyen de se débrouiller avec les pratiques de cow-boy sans être détecté par la direction?

Bien sûr, si nous acceptons que les cow-boys peuvent ne pas être répartis équitablement entre les méthodologies, et nous acceptons que les cow-boys compromettent l’utilisation réussie d’un processus, nous avons rendu très difficile la vérification du succès d’un processus. L'affirmation selon laquelle un processus est meilleur (dans un contexte) devient presque infalsifiable. C’est l’un des problèmes qui me rend honteux au sujet de mon métier: le manque de fondement scientifique de nombreuses revendications.

(Au fait, je déteste appeler la (les) alternative (s) alternative (s) à "chute d'eau" Agile, parce que le processus de chute d'eau semble être un homme de paille que tout le monde attaque, mais très peu de gens l'ont jamais utilisé sans itération.)

Bizarre
la source
4
Les échecs de développement ne résultent pas de la présence de cow-boys. Les échecs de développement résultent de l'absence de la direction.
Huperniketes
@Huperniketes, c’est une nouvelle fantastique. Les programmeurs ne sont jamais à blâmer! Quel métier idéal nous avons choisi!
Bizarre pensées
@ Oddthinking, arrêtez de vous limiter à la pensée binaire. On peut certes reprocher aux programmeurs de ne pas être à la hauteur de leur profession, mais les programmeurs ne sont jamais responsables des échecs de leurs projets. C'est la responsabilité des chefs de projet.
Huperniketes
@Huperniketes, pourriez-vous préciser, s'il vous plaît? Vous avez dit à l'origine "échecs de développement", puis vous êtes passé à "échecs de projet". Je conviens que les chefs de projet devront peut-être «porter le sac» si l’un de leurs développeurs se démarque des attentes, mais il est difficile de voir comment les cow-boys qui échouent à livrer ne peuvent jamais être la cause de l’échec d’un projet.
Bizarre pensées
@ Oddthinking, je ne faisais aucune distinction entre "échec du développement" et "échec du projet". Ils sont utilisés comme synonymes ici. Bien sûr, un projet n’a peut-être pas abouti à cause de l’effort de programmation insuffisant, mais le chef de projet a pour tâche d’identifier ces cas et de les corriger en apportant des modifications à l’équipe, le cas échéant. C'est à lui de voir que le projet réussit. Il doit être viré s'il ne peut pas faire ça. Il doit donc s’assurer que les membres de l’équipe, même les codeurs cow-boy et les programmeurs de rock stars, remplissent leurs obligations vis-à-vis du projet ou les renvoient.
Huperniketes
5

Agile va bien tant que cela fonctionne pour votre équipe.

Beaucoup trop de gens le vendent pour transformer une mauvaise équipe en une bonne équipe, et cela ne fonctionne tout simplement pas de cette façon. Vous ne pouvez pas prendre les mauvaises personnes et appliquer un processus pour les rendre soudainement utiles.

J'aime beaucoup des idées qui sous-tendent l'agile, mais l'échec que je constate à maintes reprises, c'est que les gestionnaires préconisent un ensemble strict de "processus agiles", ce qui va à l'encontre du concept entier d'agile, selon lequel les équipes doivent être autonomes. -organiser.

En ce qui concerne les "cow-boys", je trouve que, pour toutes les équipes agiles que j'ai côtoyées, les processus les ralentissent plus qu'elles ne les lâchent. Je ne l' ai jamais vécu une situation où agile servi pour permettre un « codeur de cow - boy ».

Pour les bonnes équipes, cela semble bien fonctionner (là encore, la plupart des processus semblent bien fonctionner quand vous avez une bonne équipe, drôle comment ça marche, n'est-ce pas?).

Selon mon expérience, cela n’aide jamais les mauvais à faire mieux, mais cela sert parfois à embêter les personnes productives.

Globalement, je pense que l’important est de former une bonne équipe, de leur dire de quoi vous avez besoin, puis de vous en sortir. Je ne pense pas que l'application d'une chaîne de mots à la mode puisse résoudre le problème de la mauvaise équipe.

(Si vous n'avez pas compris ce qui précède, je ne suis pas un fan de "Capitol-A Agile". En revanche, je ne pense pas que cela encourage les cow-boys non plus.)

TM.
la source
3

Agile, une fois correctement effectué, devrait avoir pour effet de limiter les fils techniques "cow-boys" et les programmeurs "héros". Si vous n'observez pas cet effet, cela peut indiquer que quelque chose d'important manque dans votre implémentation agile.

Je veux ajouter que "Agile" est vraiment une interface (j'utilise une métaphore orientée objet ici) et vous ne pouvez pas l'instancier. Si votre implémentation concrète est XP , alors vous devez suivre un ensemble de pratiques techniques avec beaucoup de discipline, ce qui laisse peu de place à la programmation de cow-boys. Une autre possibilité est que le travail d'équipe d'une équipe Scrum bien organisée maintiendra le contrôle.

Azheglov
la source
3

Les codeurs Cowboy ont aussi tendance à écrire du code qui n’est pas très testable, et ils ont tendance à ne pas aimer écrire des tests. Je pense que le fait que tout le monde fasse le TDD peut aider à régner sur l’attitude des cow-boys et amener les développeurs à penser un peu plus à l’architecture. Aucune méthodologie n'est parfaite, bien sûr.

Matt H
la source
1
N'oubliez pas les contrôles paranoïaques "if (var! = Null)"
éparpillés
3

Je travaille actuellement dans un magasin où c'est le cas, sauf que cela a plus à voir avec la culture organisationnelle qu'avec des cow-boys particuliers.

L'organisation a toujours opéré selon une approche relativement souple, "informelle Agile". Je ne dirais pas que c'est vraiment agile, c'est plus "de nom agile", mais tout simplement une méthodologie inexistante dans la pratique. Différentes équipes fonctionnent différemment, mais étant donné que la culture organisationnelle globale n’a pas de méthodologie en place autre que le processus très lâche "Agile au nom uniquement" - il est relativement cow-boy et chaotique dans l’ensemble - en particulier dans l’intégration (et il y en a beaucoup ).

La morale de l'histoire est la suivante: oui, cela se produit. Si j'étais à la recherche d'un emploi pour le moment, je ferais très attention à cela. Si un magasin prétend être agile - je poserai des questions assez difficiles lors de l'entrevue pour m'assurer que l'on suit bien plus qu'un abus d'appellation Agile.

Tables Bobby
la source
1
Cela ressemble beaucoup à ma situation. Et cela touche au cœur de toute cette question, à savoir que si «Agile» n’était pas au rendez-vous, les organisations s’en tiendraient probablement aux chutes d’eau et, quelles que soient leurs faiblesses, il serait de loin supérieur à l’absence de processus.
Sipwiz
2

J'ai constaté que les utilisateurs ne peuvent nous faire part de leurs commentaires que lorsqu'ils disposent d'une application qu'ils peuvent utiliser, d'écrans sur lesquels ils peuvent entrer des données. Ensuite seulement, ils comprennent vraiment ce que nous essayons de dire dans les documents d’exigences (les clients signent mais tout le monde a sa propre version de la signification). S'il ne s'agit pas d'un développement agile, le budget du projet en cascade sera dépassé, mais l'application changera une fois que vous l'aurez livré. Votre première version n'est plus qu'un prototype permettant aux utilisateurs de définir les conditions requises. Je préfère donc appeler cela agile plutôt que hors budget.

Veronica Buitron
la source
J'ai aussi vu cela (les clients qui voient une version antérieure et sont trop pris dans les bogues / fonctionnalités que vous savez ne sont pas encore prêts), et vous pouvez parfois avoir du mal à obtenir des informations utiles. Je pense cependant qu’il s’agit d’éduquer vos clients.
Dean Harding
Prototypage ....
sipwiz
2

Je pense que c'est vrai, dans certains environnements, Agile est utilisé comme une excuse pour aucune discipline. Le vrai problème est que nous avons perdu de vue pourquoi nous avons une méthodologie. Personnellement, j’estime que la méthodologie est un problème d’architecture en ce sens que l’architecture du système est censée prendre en compte les attributs de qualité non fonctionnels. Elle devrait traiter de certains de ces mêmes attributs (maintenabilité, productivité du développement, transfert de et al.)

Considérer la méthodologie comme un contrôle des attributs de processus implique deux choses: 1) sans métriques, nous ne pouvons pas comparer l'efficacité d'une méthodologie à une autre, 2) une décision active doit être prise concernant les attributs importants (délai de livraison par rapport au code). qualité vs transfert de connaissances).

Sans avoir à la fois les métriques et un objectif concret, nous choisissons simplement une méthodologie comme notre "plume magique" qui, si nous nous en tenons à nous-mêmes, nous pourrons livrer des logiciels.

Maintenant, les opposants de Agile, XP, Scrum, etc. parlent de la fragilité de cette catégorie particulière de méthodologies. L'argument étant: pourquoi utiliser une méthodologie qui peut être sabotée par un individu sans discipline pour suivre toutes les règles? La question est valide. Cependant, c'est le symptôme, pas la cause. Si un ensemble de métriques de processus précises et significatives (c'est la partie difficile) sont définies, testées et que les retours d'information sont donnés rapidement, je pense que nous découvrirons que la méthodologie en question a peu à voir avec le succès. (De manière anecdotique, j'ai vu des projets couronnés de succès utilisant une myriade de méthodologies et deux fois plus échouant avec les mêmes méthodologies)

Alors, quelles sont les métriques? Ils varient d'un projet à l'autre, d'une équipe à l'autre et de temps en temps. Utile lorsque le calendrier de livraison est important, celui que j'ai personnellement utilisé est la compétence et la qualité de l'estimation. La plupart des développeurs peuvent estimer avec précision les tâches d'une semaine ou moins. Une approche consiste donc à diviser le projet en tâches d’une semaine par développeur et à déterminer qui a effectué l’estimation. Au fil du projet, ils peuvent modifier leurs estimations. Une fois la tâche terminée, si nous la désactivons de plus de 10% (une demi-journée), nous la traitons comme un bogue - nous identifions la raison pour laquelle l’estimation était désactivée action corrective (c'est-à-dire associer l'administrateur de base de données à l'estimation), puis passer à autre chose. En utilisant ces informations, nous pouvons créer des mesures telles que le nombre de bugs d'estimation par semaine, le nombre de bugs par développeur,

Et alors? C'est à ce moment que les méthodologies entrent en jeu - si vous avez un modèle prédictif qui ne répond pas aux qualités du processus, vous pouvez choisir d'ajouter ou de supprimer un aspect de la méthodologie et voir comment cela affecte votre modèle. Certes, personne ne veut jouer avec un processus de développement par peur des échecs, mais nous échouons déjà à un rythme constamment élevé et prévisible. En apportant des modifications individuelles et en mesurant le résultat, vous constaterez peut-être qu'Agile est la méthodologie idéale pour votre équipe, mais vous pouvez tout aussi bien trouver que RUP, une cascade ou tout simplement un fouillis de meilleures pratiques est idéal.

Je suggère donc de cesser de nous inquiéter de ce que nous appelons le processus, de mettre en place des contrôles pertinents pour nos objectifs de processus de développement et d'expérimenter différentes techniques pour améliorer ce processus.

TEC
la source
Bons points. Ma frustration provient des livrables dans une approche Agile. Elle est beaucoup plus fluide et permet à un leader technique incompétent de s’en sortir avec tout ce qu’il veut et qui, selon mon expérience, se termine par aucun processus == codage cow-boy.
Sipwiz
1

Je serais assis ici avec une spécification de haut niveau agréable et je n'aurais pas à revisiter le même écran et les mêmes fonctionnalités tous les deux jours, car quelque chose de plus surgit ou à peu près et je n'avais donc pas pensé à cela.

Cela semble correspondre à l'expérience de mon collègue du projet "agile" auquel il participe (je ne l'ai jamais fait moi-même): on lui demande d'écrire un morceau de code selon certaines spécifications, puis juste au moment où il a fini de le tester et est prêt à passer à une nouvelle exigence qui l’oblige à la modifier et à la tester à nouveau. Il trouve ça frustrant.

Je ne crains pas l'agilité, je suppose que l'équipe ne fait pas l'agile correctement - mais comme vous le dites, le terme "agile" peut parfois être utilisé par les cow-boys pour convaincre les dirigeants pointeux que la conception à moitié cuite est un élément positif plutôt qu'un élément négatif. .

Tony Andrews
la source
agile sans tests automatisés demande des maux de tête
Steven A. Lowe
1

C'est drôle comme personne ne se considère comme un codeur cow-boy. Je parie que beaucoup des affiches sont ou ont été une;)

utilisateur5206
la source
1
Je soupçonne que la plupart d'entre nous ont commencé comme cow-boys.
David Thornley
Vous avez peut-être raison et je ne programme pas depuis longtemps, mais lorsque j'étais dans un magasin sans méthodologie, nous avions des cow-boys. Je suis actuellement dans un cabinet de conseil agile, et ce que vous faites est énorme et visible, et il m'est en fait difficile d'imaginer un cow-boy codant pour profiter de cet environnement.
Eric Wilson
1

Les codeurs Cowboy sont bons parce qu’ils aiment faire les choses rapidement. Ils ne sont souvent pas aussi préoccupés par les problèmes généraux ou par la qualité du code, raison pour laquelle le "codeur cow-boy" est souvent une épithète. Leurs méthodes atténuent les risques liés aux coûts d'opportunité d'une livraison tardive du projet.

Les codeurs autres que les cow-boys aiment faire leur travail de manière sûre, disciplinée et ordonnée. Ils aiment bien le construire et le construire une fois. Ils sont connus pour collecter des informations à tout jamais, envisager des hypothèses, produire des documents volumineux que personne ne lit, et fournir des systèmes tard ou très tard. Leurs méthodes tentent d'atténuer les risques d'un logiciel de mauvaise qualité.

L’intérêt des méthodologies Agiles réside dans le fait qu’elles exploitent les atouts des deux types de codeurs en imposant de brèves itérations de travail limitées dans le temps qui leur demandent de produire rapidement de petits travaux de haute qualité. Et chaque itération atténue à la fois les risques de retard liés aux coûts d’opportunité et les risques liés à la mauvaise qualité des logiciels.

Jay Godse
la source
0

La raison, bien qu'agile, de mettre très peu l'accent sur la conception / les spécifications initiales n'est pas simplement parce que les exigences peuvent changer. La raison la plus profonde est que même lorsque les exigences sont stables, les spécifications ont tendance à être:

  • incorrect - ne parvient pas à capturer les exigences.

  • incohérent - criblé de contradictions parce qu'elles contiennent suffisamment d'informations pour empêcher l'écrivain / lecteur de les saisir.

  • détachés - ils n'intègrent pas les retours précieux d'un système en cours d'exécution (bien que dégénéré).

Itay
la source