J'entends souvent "x% du projet logiciel échoue en raison de mauvaises exigences". Le X dans cette déclaration variait d'environ 70 à 95. Cependant, j'entends rarement comment les exigences vont mal. En fait, la déclaration elle-même suggère qu'il existait réellement des exigences. P>
Qu'est-ce qui fait une "mauvaise" exigence? Comment peut-on être évité? P>
11 Réponses :
Tout d'abord, pour une exigence d'être valide doit être Comment cette situation peut-elle être évitée? Assurez-vous qu'une exigence: p>
est délimitée à la fois en temps et ressources (par exemple $) p> li>
TESTABLE P> LI>
ul>
Ou bien, vous travaillez sur une "boucle ouverte" et je suis sûr que vous pouvez apprécier les conséquences. P>
Je pense que vous constaterez que si vous l'interprétez comme suit, cela aura plus de sens: P>
"x% des projets logiciels échoue en raison de la mauvaise définition des exigences" p>
Il y a beaucoup de choses que vous pouvez faire p>
En plus des exigences impossibles / imprévues ou irréfubles, le «mauvais» se réfère probablement à une exigence incorrecte - les exigences que vous n'avez pas correspondre à ce qui est en réalité nécessaire pour l'application. Une source de ceci est que les utilisateurs ne savent souvent pas ce dont ils ont besoin ou de vouloir. P>
Chaque fois que je vois ces statistiques, je me rappelle des projets châtails coûteux et lourds, où la première version a été complétée et présentée au client, qui a rapidement dit au projet: "Ce n'est pas vraiment ce que je voulais." p>
C'est pourquoi la plupart des projets réussis sont actuellement effectués à l'aide d'un modèle "itératif", où le client est constamment impliqué dans le processus de conception. P>
Dans ce contexte, les "exigences" sont plus vaguement définies et ils évoluent un peu au fur et à mesure que le projet progresse. P>
Une grande partie des méthodologies de développement agiles consiste à accepter le fait que les exigences vont changer. P>
Par conséquent, vous ne devriez pas essayer de vous battre et créez plutôt un processus qui englobe cela. P>
Pour une exigence réussie, vous devez P>
Habituellement, le problème réside dans un manque de communication et de compréhension entre le client et le développeur. En outre, gardez à l'esprit que parfois même le client lui-même n'a pas exactement une bonne image de ce qu'il veut. Par conséquent, la discussion, les prototypes papier, etc. sont vraiment importants. P>
Cette photo est mon favori :) p>
+1 J'ai déjà vu ce graphique. Je me demande qui l'a initialement fait.
@ User1: Vous pouvez en créer une vous-même chez ProjectCartoon.com . S'amuser ;)
La chose la plus intéressante a commencé à se produire lorsque ma fille de 4 ans a demandé à expliquer ce que ces images signifient ;-))).
Le lien / l'image est manquant.
Probablement ils signifient des exigences "mal communiquées". P>
Si vous y réfléchissez, il y a plusieurs façons que vous puissiez des exigences erronées, soit intentionnellement, soit autrement. Quelques façons de faire face au problème: p>
réalise que les exigences d'un système peuvent changer en permanence. Sinon, le client dira "Ouais, cela a changé, personne ne vous a dit?" P> LI>
Demandez aux exigences de plusieurs personnes clés - ce n'est pas suffisant pour demander au PDG, et également, il ne suffit pas de demander aux rangs inférieurs qui utiliseront réellement votre système. P> LI >
Assurez-vous qu'il y a une poignée de personnes responsables de la communication des exigences à vous - ces personnes (pas plus de 5 dans un projet de taille moyenne) devraient avoir une grande incitation à vous donner toutes les informations pour réussir la mise en oeuvre. Si vous n'avez pas ces personnes, vous êtes susceptible d'échouer comme tout le monde sera trop occupé pour vous expliquer les choses, et ils auront une incitation à ne pas vous parler, car vous pourrez réclamer X personne vous a dit de mettre en œuvre le système qu'ils aient fait. Vous avez besoin d'un soutien de la direction dans la création de ce groupe de personnes. P> Li>
Vous devez vérifier les hypothèses avec d'autres personnes. Parfois, vous devez poser la même question à cinq manières différentes. P> li>
avoir peur des absolus ... "Le prix de vente ne peut pas être changé" signifie parfois "que j'aimerais qu'un remplacement de superviseur soit mis en œuvre au cas où un prix doit être modifié pour le client actuel." p> li>
Comprenez le processus d'entreprise autant que possible. Si vous écrivez une demande bancaire, demandez à passer une journée à la banque pour voir comment les gens utiliseraient le système. Si vous livrez une phase du projet, faites la même chose: regardez le système utilisé et être proactif à rechercher des trous. P> li>
reconnaît quand quelque chose n'est pas spécifié dans suffisamment de détails et insister sur la réussite. Faites des maquettes, des dessins à la main, des organigrammes, tout ce qu'il faut pour s'assurer que la source des exigences et que vous êtes sur la même page. P> li> ul>
Celles-ci sont toutes seulement de l'expérience ... je pense que "mauvaises exigences" signifie vraiment "de mauvaises communications entre le client et la mise en œuvre". P>
Dans Agile, nous utilisons l'acronyme Invest. Les histoires (qui représentent des exigences) doivent être: p>
Les exigences ne sont pas un artefact à vous être remis d'une montagne. Ils sont un sous-produit vivant d'un processus de découverte et de conversation entre vous et vos clients (ou leurs proxy). P>
Mon expérience prochaine édition sources possibles de mauvais strong> Exigences: p>
Que faut-il faire pour surmonter ces problèmes? Permettons aux ingénieurs de fournir des évaluations, il ne faut pas les exigences à proximité et de les rendre souples que possible. Souvent même avec des exigences uniformes généralement bien nous sommes confrontés à une limitation matérielle de bas niveau sur la scène de mise en œuvre et la nécessité de suivre les changements de retour. De l'autre côté Comprenons clients, non seulement des technologies. numéro I a vu des projets avec une grande partie du travail jeté juste parce qu'ils semblent bons pour les développeurs, mais pas pour les clients. Les meilleures communications avec le client, vous avez la moindre possibilité est de ces cas. P>
Ma compréhension est processus devrait permettre le changement des conditions flexibles durant toutes les étapes, mais de l'autre côté devrait faire tout ce travail traçable et la portée limite au minimum requis. Le problème est d'équilibrer entre tout cela. Au moins ma suggestion est que nous devrions passer à des cycles de développement plus courts pour réduire tous les risques. P>
L'une des choses les plus précieuses qu'une organisation de développement peut faire (mais rarement fait) est de valider les exigences. Maquette une conception, aussi rapidement et à moindre coût que possible et l'examine avec les clients. Si possible, faites-le de manière à ce que l'examen puisse être structuré comme une procédure de procédure de tâche, les développeurs et les utilisateurs peuvent ainsi parcourir les cas d'utilisation et décider si la conception proposée résout le problème. Ensuite, si nécessaire, recommencez-le. P>
Il existe un excellent livre sur la collecte et la compréhension des exigences appelées l'analyse de l'utilisateur et de la tâche pour la conception d'interface em> par Joann Hackos et Janice Redish. C'est un grand livre, mais c'est très lisible et rempli de conseils et d'outils pratiques. P>
Je vois beaucoup de bonnes réponses ici sur la mauvaise exigence d'être une mauvaise exigence qui est mal communiquée ou à moitié cuite. Et ils sont probablement corrects. p>
Mais pour moi l'un des pires types de "mauvaises exigences" est celui qui manque simplement. Je vois cette fois et encore dans les systèmes. Un jour après sa vie, les utilisateurs disent: "Oh, qu'en est-il de xyz? Nous avons vraiment besoin de cela." À laquelle l'équipe de projet répond: "XY quoi? Nous travaillons sur ce projet depuis un an et maintenant, vous nous dites?" P>
Ceci est un tueur car tout le monde doit maintenant brouiller et précipiter une solution, non pas que le développeur moyen n'ait besoin d'aide à promouvoir des choses à la fois à la production, mais vous savez simplement que cela va épeler beaucoup de soutien de la production pour tous les Pauvres Personnes Cette "solution" est remise à la maintenance ... Vous savez, celles qui n'ont pas reçu de bonus de projet. p>
Encore une fois, ce n'est pas une mauvaise exigence, mais celui qui était jamais besoin de commencer avec em>. Cela ne signifie pas que ce n'est pas valide; Il pourrait certainement être critique. Mais entre la précipitation pour faire avancer les choses et un projet agressif et le fait que nous sommes tous des êtres humains et que nous faisons des erreurs, ceci a été négligé. P>
Vous pouvez passer plus de temps à l'avant et espérons qu'un expert de la matière pointue ramasse l'écart manquant. Une méthode plus efficace et plus coûteuse prend le temps d'engager ce que certains appellent une phase de «bureau de modèle». Ceci est comme un test système, mais conçu pour simuler des conditions de vie réelles. Les testeurs ne veulent que vérifier que le système fournit une sortie correcte pour 1 + 1, mais que toutes ses pièces fonctionnent dans le contexte du processus métier. p>
C'est une vente difficile de bien sûr. De nombreux projets donneront une analyse commerciale et testeront la courte queue afin de défendre les métriques tout-puissant de "à temps et au budget". Mais si vous voulez secouer ces exigences manquantes, vous devez laisser l'utilisateur de fonctionner avec elle. C'est alors qu'ils reconnaîtront les choses qu'ils ont prises pour acquises dans une session de définition des exigences verbales. Les agilistes ajouteraient que ce test doit être fait dès que possible et aussi souvent que possible de découvrir ces risques et de donner le temps à l'équipe du projet d'identifier leurs priorités et de faire des ajustements lorsque cela est justifié. P>
Lorsque vous entendez "x% du projet logiciel échoue", voyez-vous une définition de "échec"? Je parierai qu'un projet qui a eu un changement de concentration pourrait être appelé "échoué". Je pense - sans définition de "échec" - que cette question est sans réponse.
C'est une bonne question mais est un peu hors base. Les exigences ne vont pas «mauvais». Ils manquent, ambigu ou changent de manière inattendue (et parfois de manière incontrôlable en fonction de la gestion).
Je suggérerais que cette question soit la suivante: comment travailler avec de mauvaises exigences telles que s'opposer à la manière d'éviter les mauvaises exigences, CoZ plus tard ne serait jamais le cas.