10
votes

Comment éviter les "mauvaises" exigences

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.

Qu'est-ce qui fait une "mauvaise" exigence? Comment peut-on être évité?


3 commentaires

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.


11 Réponses :


2
votes

Tout d'abord, pour une exigence d'être valide doit être Testable . Sinon, il n'est pas possible de le suivre, de la mesurer, de les rapporter ... Ceci est une cause fondamentale de mal.

Comment cette situation peut-elle être évitée? Assurez-vous qu'une exigence:

  • est délimitée à la fois en temps et ressources (par exemple $)

  • TESTABLE

    Ou bien, vous travaillez sur une "boucle ouverte" et je suis sûr que vous pouvez apprécier les conséquences.

    note que la nécessité parfois de se présenter plutôt avec une nature "qualitative": il appartient au responsable du produit / l'équipe de définir une définition "quantitative" pour cela.


0 commentaires

2
votes

Je pense que vous constaterez que si vous l'interprétez comme suit, cela aura plus de sens:

"x% des projets logiciels échoue en raison de la mauvaise définition des exigences"

Il y a beaucoup de choses que vous pouvez faire

  • Assurez-vous que vous pouvez réellement tester l'exigence
  • Assurez-vous que l'analyste comprend en réalité ce que l'utilisateur vraiment signifie. Souvent ce que l'utilisateur demande n'est pas ce qu'ils veulent réellement.
  • Assurez-vous que le développeur comprend l'exigence. Si le développeur obtient une mauvaise spécification et doit faire une hypothèse qui s'avère tort, l'heure sera perdue lorsque le programmeur doit corriger cette hypothèse, au-dessus des bugs habituels.
  • Assurez-vous que l'utilisateur teste réellement que leurs besoins ont été satisfaits. Mieux (découvert) tard que jamais.

0 commentaires

1
votes

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.


0 commentaires

3
votes

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."

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.

Dans ce contexte, les "exigences" sont plus vaguement définies et ils évoluent un peu au fur et à mesure que le projet progresse.


0 commentaires

4
votes

Une grande partie des méthodologies de développement agiles consiste à accepter le fait que les exigences vont changer.

Par conséquent, vous ne devriez pas essayer de vous battre et créez plutôt un processus qui englobe cela.


0 commentaires

15
votes

Pour une exigence réussie, vous devez

  • Demandez à votre client sur place, discutez des exigences, laissez-les vous les expliquer
  • Les conditions doivent être testables, vérifiables. En avoir une liste d'entre eux, à la fin, vous devriez pouvoir passer en revue la liste et vérifier directement leur mise en œuvre correcte sur le produit final.
  • Ils devraient avoir un niveau de détail approprié. Il existe différents types d'exigences (niveau d'objectif, niveau de domaine, niveau de produit, niveau de conception). Les exigences doivent être classées de manière appropriée.

    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.

    Cette photo est mon favori :)

     Entrez la description de l'image ici


4 commentaires

+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.



1
votes

Probablement ils signifient des exigences "mal communiquées".

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:

  • 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?"

  • 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.

  • 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.

  • Vous devez vérifier les hypothèses avec d'autres personnes. Parfois, vous devez poser la même question à cinq manières différentes.

  • 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."

  • 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.

  • 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.

    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".


0 commentaires

3
votes

Dans Agile, nous utilisons l'acronyme Invest. Les histoires (qui représentent des exigences) doivent être:

  • i - indépendant
  • N - Négociable
  • v - valeur précieux
  • E - estimable
  • s - petit
  • T - TESTABLE

    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).


0 commentaires

1
votes

Mon expérience prochaine édition sources possibles de mauvais Exigences:

  • Les utilisateurs / clients ne savent souvent pas ce qu'ils veulent. La manière de gérer ce soit des moyens ont de bons analystes d'affaires qui pourraient Accomplir les analyser ou avoir un bon produit prêt qui pourrait convenir à cet utilisateur (ou non).
  • Les analystes ne peuvent pas fournir une qualité appropriée des besoins. Oui, il arrive. Embaucher de meilleurs analystes / experts en technologie, mais avant non, non après . Exigences d'essai, analyser les cas d'utilisation, l'état dessiner un diagramme de séquence le plus tôt possible de comprendre la couverture des cas d'utilisateurs et bientôt. En d'autres termes cela est lié à la modélisation générale.
  • Eh bien, il y a possibilité de mauvaise traduction des exigences de marketing / modèle en spécifications techniques.
  • problème de qualité de conception (mise en œuvre ne peut pas répondre aux exigences).

    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.

    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.


0 commentaires

1
votes

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.

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 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.


0 commentaires

0
votes

Qu'est-ce qui fait une mauvaise exigence? Un qui n'est pas là

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.

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?"

pourquoi est-ce mauvais?

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.

Encore une fois, ce n'est pas une mauvaise exigence, mais celui qui était jamais besoin de commencer avec . 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é.

Comment l'évitez-vous?

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.

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é.


0 commentaires