29 votes

Recueil des besoins

Comment procédez-vous lors de la phase de collecte des exigences? Quelqu'un at-il un bon ensemble de directives ou de conseils à suivre? Quelles sont les bonnes questions à poser aux parties prenantes?

Je travaille actuellement sur un nouveau projet et il y a beaucoup d'inconnues. Je suis en train de dresser une liste de questions à poser aux parties prenantes. Cependant, je ne peux pas m'empêcher de sentir que je manque quelque chose ou que j'oublie de poser une question critique.

20voto

Dillie-O Points 16780

Voir obligatoire de la bande dessinée ci-dessous...

En général, j'ai essayer et obtenir une sensation pour le modèle d'affaires de mon client est en essayant d'imiter avec l'application qu'ils veulent construire. Sommes-nous construire une glorifié formes processeur? Sommes-nous de la récupération de données à partir de plusieurs sources dans une seule application pour gagner du temps? Est-il une sorte d'intégration?

Une fois le businesss modèle est établi, je puis déplacer vers le "doit" et "doit démunis" pour l'application de dicter ce que les données que je peux les récupérer, qui peut effectuer les fonctions, etc.

Habituellement, si vous pouvez obtenir le client à expliquer leur modèle ou de flux de travail, vous pouvez vous déplacer à partir de là et de trouver d'autres questions clés.

La seule question que j'ai toujours assurez-vous de demander à une forme ou une autre, est "Ce qui est le plus délicat/plus ennuyeux que vous avez à faire lorsque vous faites X. Généralement la réponse se révèle la plus folle des affaires/des données de la règle que vous aurez à mettre en œuvre.

Espérons que cette aide!

enter image description here

20voto

Chris Upchurch Points 10484

Vous êtes presque certainement raté quelque chose. Beaucoup de choses, sans doute. Ne vous inquiétez pas, c'est ok. Même si vous de rappeler tout et couvert toutes les bases parties prenantes n'allez pas être en mesure de vous donner de très bons, des exigences claires, sans aucun point de référence. La meilleure façon de faire ce genre de chose est d'obtenir ce que vous pouvez à partir de maintenant, alors que prendre et de leur donner quelque chose à réagir. Il peut être un papier prototype, une maquette, la version 0.1 du logiciel, que ce soit. Ensuite, ils peuvent commencer à vous dire ce qu'ils veulent vraiment.

12voto

Quibblesome Points 14441

Steve Yegge parle amusant, mais il ya l'argent à faire dans l'élaboration de ce que les autres exigences sont j'aimerais prendre son article avec une pincée de sel.

La collecte des besoins est incroyablement difficile à cause de la manière dont la communication fonctionne. Ses un processus en quatre étapes qui entraîne des pertes de données dans chaque étape.

  • J'ai une idée dans ma tête
  • Je les transformer en mots et en images
  • Vous interpréter les images et les mots
  • Vous peignez une image dans votre esprit de ce que mon idée de départ était comme

Et les humains échouent lamentablement à ce avec inquiétant de la fréquence par l'intermédiaire de leurs adorables imperfections.

Agile ne droit dans la promotion du développement itératif. Obtenir les premières versions pour le client est important pour identifier quelles sont les fonctionnalités les plus importantes (ce que les navires de 0,1 à 0,5 ish), vous aide à maintenir à la fois sur la bonne voie en termes de la façon dont l'application fonctionne et permet d'identifier rapidement les fonctions cachées qui vous va manquer.

Les deux principaux scénarios de problème sont les deux extrémités de la balance:

  • Ne pas avoir une vraie idée de ce que vous faites - obtenir certains experts du domaine
  • D'avoir trop d'exigences en matière de fonctionnalité de la fosse. - La Question, de les réformer (priorité ;) ) les fonctions et l'utilisation itérative de développement

Yegge fait bien de souligner que les experts du domaine sont essentiels pour produire de bonnes exigences, car ils connaissent l'entreprise et ont travaillé dans l'informatique. Ils peuvent aider à identifier le noyau du désir du client et aider à expliquer la façon dont leur personnel d'utiliser le système et ce qui est important pour le personnel. Des Alternatives et des ajouts comprennent essayer de faire le travail vous-même pour entrer dans l'état d'esprit ou un client membre du personnel à l'occasion sur place, bien que ce dernier est peu probable.

La fonction noyau est de l'autre côté, surtout à plein de l'échec du gouvernement projets de TI. Trop, trop tôt, pas assez de la pensée ou de l'application de réalisme (mais qu'attendez-vous, ils ne disposent que d'environ quatre ans, de se sentir important?). Le but ici est de travailler sur ce que le client a vraimentveut. Tant que vous travaillez à obtenir les composants de base correcte, efficace et sans bug clients restent généralement tolérant des fonctionnalités manquantes qui arrivent plus tard dans les expéditions, tant qu'ils finissent par arriver. C'est là que le développement itératif aide vraiment.

N'oubliez pas de séparer le client idées de ce que le programme sera et ce qu'ils veulent, le programme à réaliser. Certains clients peuvent créer de la confusion, par la communication de leurs besoins dans le formulaire de demande de fonctionnalités qui peuvent être mal pensée ou licenciés par beaucoup plus simple fonctionnalité alors ils pensent qu'ils exigent. Bien que je ne préconise pas d'appeler le client pour un con ou ne pas les écouter, je sens que cela vaut la peine de toujours demander pourquoi ils veulent une fonctionnalité particulière pour arriver à son but sous-jacent.

Rappelez-vous que dans les deux cas, il est impératif d'importance à la racine de la voie la plus rapide vers l'accomplissement de la clientèle de base besoin et vous mettre dans un scénario où vous êtes à la fois profiter de la relation.

8voto

Jeffrey Davidson Points 156

Wow, par où commencer?

Tout d'abord, il existe un ensemble de connaissances quelqu'un qui devrait avoir à faire l'analyse sur certains projets, mais cela dépend vraiment de ce que vous construisez pour qui. En d'autres termes, cela fait une grande différence, si vous êtes de la modification d'une application d'entreprise pour une société Fortune 100, la construction d'une application iPhone, ou l'ajout de fonctionnalités à une page web personnelle.

Deuxièmement, il existe différents types de besoins.

  • Objectifs: Que fait l'utilisateur que vous voulez accomplir?
  • Fonctionnel: Quel est le besoin de l'utilisateur à faire pour atteindre leur objectif? (pensez à des mesures pour atteindre l'objectif/s)
  • Non-fonctionnelle: Quelles sont les contraintes de votre programme doit effectuer à l'intérieur? (pensez à 10 vs 10k utilisateurs simultanés, la croissance, la back-up, etc.)
  • Règles d'entreprise: Quelles contraintes dynamiques avez-vous à répondre? (pensez à des calculs, des définitions, des préoccupations d'ordre juridique, etc.)

Troisièmement, la façon de recueillir des conditions plus efficacement et d'obtenir des commentaires sur eux (ce que vous allez faire, non?) consiste à utiliser des modèles. Utilisateur de cas et les témoignages des utilisateurs sont un modèle de ce que l'utilisateur doit faire. Les modèles de processus sont une autre version de ce qui doit arriver. Système de diagrammes sont juste un autre modèle de la façon dont les différentes parties du programme(s) d'interagir. Bonne modélisation des données permettra de définir les concepts d'entreprise et de vous montrer les entrées, les sorties, et les changements qui se produisent au sein de votre programme. Les modèles (il y en a plus que je répertoriés) sont vraiment la clé de la préoccupation que vous de la liste. Un peu de bon modèles de capture des besoins et de modèles, vous pouvez déterminer vos besoins.

Quatrièmement, obtenir de la rétroaction. Je sais je l'ai déjà mentionné, mais vous n'obtiendrez pas tout droit la première fois, afin d'obtenir des réponses à ce que votre client veut.

Autant que j'apprécie les exigences et les modèles qui les animent, les utilisateurs ont l'habitude de ne pas comprendre les ramifications de de toutes leurs demandes. Une communication constante avec des chances pour l'examen et la rétroaction permettra d'offrir aux utilisateurs une meilleure compréhension de ce que vous livrez. De plus, ils vont affiner leur compréhension sur la base de ce qu'ils voient. Sauf si vous travaillez pour le gouvernement, des itérations et / ou prototypes sont utiles.

6voto

Jorge Córdoba Points 18919

Tout d'abord rassembler les exigences avant de vous commencer à coder. Vous pouvez commencer la conception pendant que vous la collecte en fonction de votre projet de vie de la cicle, mais vous ne devriez jamais commencer à coder sans eux.

Les exigences sont un ensemble de documents écrits, de protéger à la fois le client et vous-même. Ne l'oubliez jamais. Si aucune exigence n'est présent, alors il n'a pas été payé (et donc il nécessite une demande de changement officielle), s'il est présent, alors il doit être mis en œuvre et doivent fonctionner correctement.

Les exigences doivent être vérifiables. Si une exigence ne peut pas être testé alors ce n'est pas une exigence. Cela signifie quelque chose comme, "Le système "

Les exigences doivent être en béton. Cela signifie que, précisant que "L'interface utilisateur du système doit être facile à utiliser" n'est pas une bonne condition.

Pour réellement se "rassembler" les exigences, vous devez d'abord assurez-vous de comprendre le businness modèle. Le client va vous dire ce qu'ils veulent avec ses propres mots, il est de votre devoir de le comprendre et de l'interpréter dans le bon contexte.

Faire des rencontres avec le client pendant que vous êtes en développement les besoins. Décrire le client avec vos propres mots, et assurez-vous que vous et le client ont le même concept dans les exigences.

Exigences nécessitent concis, testable exemple, mais garder une trace de chaque chose qui arrive dans les réunions, des diagrammes, des doutes et essayer de mantain un enregistrement de chaque réunion.

Si vous pouvez utiliser un différentiel de cycle de vie, qui vous donnera la possibilité d'améliorer certaines mauvaises exigences recueillies.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X