Question

Comment allez-vous sur les exigences de la phase de collecte?Quelqu'un aurait-il une bonne série de lignes directrices ou des conseils à suivre?Quelles sont les bonnes questions à se poser les acteurs?

Je suis actuellement en train de travailler sur un nouveau projet et il y a beaucoup d'inconnues.Je suis dans le processus de venir avec une liste de questions à poser aux intervenants.Cependant je ne peux pas aider mais sentir que je suis absent quelque chose ou oublier de poser une question critique.

Était-ce utile?

La solution

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.

Autres conseils

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

Steve Yegge les pourparlers 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 que vous va miss.

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 - 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 vraiment veut.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 de atteindre.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 demander à jamais 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 à réaliser les clients de base besoin et vous mettre dans un scénario où vous êtes à la fois profiter de la relation.

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:Ce que les utilisateurs veulent accomplir?
  • Fonctionnel:Quel est le besoin de l'utilisateur à faire pour atteindre leur objectif?(pensez à des mesures pour atteindre l'objectif/s)
  • Non-fonctionnels: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.)
  • Les règles d'affaires:Ce que les 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 de données sera de définir des 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.

Tout d'abord rassembler les exigences avant 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.

Vous pouvez vous demandera jamais de trop ou de "stupide" des questions.La plus questions que vous vous posez, le plus de réponses que vous recevez.

Selon Steve Yegge c'est l' mauvaise question à poser.Si vous êtes à la collecte d'exigence, il est déjà trop tard, votre projet est voué.

  1. Des discussions de haut niveau sur le but, la portée, les limites de l'environnement d'exploitation, la taille, etc

  2. Audition d'un seul paragraphe de la description du système, marteau hors

  3. Maquette de l'INTERFACE utilisateur

  4. Formaliser les exigences connues

  5. Maintenant itérer entre 3 et 4 avec de plus en plus de prototypes fonctionnels et plus de spécifications avec plus de détails.Écrire des tests que vous allez.Faites cela jusqu'à ce que vous avez des logiciels fonctionnels et complets, objectifs, vérifiables exigences de la spécification.

C'est le rêve.La réalité est généralement après quelques itérations, tout le monde fait la tête en bas et les codes jusqu'à ce qu'il y a un mois de test.

  • lire le manifeste agile - le logiciel de travail est la seule mesure de la réussite d'un projet de logiciel
  • se familiariser avec le logiciel agile pratiques - étude de Scrum , lean programmation , xp etc - cela vous fera gagner énormément de temps, non seulement pour la collecte des besoins, mais aussi pour l'ensemble du cycle de développement de logiciel
  • tenir des discussions régulières avec les Clients et surtout les futurs utilisateurs et des utilisateurs
  • assurez-vous de parler aux Personnes de comprendre le problème de domaine - par exemplespécialistes dans le domaine
  • Prendre des petites notes lors de l'entretien
  • Après chaque CONVERSATION écrire un officiel de la liste des besoins, et de le présenter pour approbation.Plus tard, il serait difficile d'argumenter contre tous convenu de la documentation
  • assurez-vous que vos Clients savent approximativement ce sont approximatif des charges en temps et en argent pour la mise en œuvre de "nice to have" des exigences
  • assurez-vous d'étiqueter les exigences de "must have" , "devraient" et "nice to have" depuis le début, de s'assurer que les Clients comprennent les différences entre ces types de
  • intégrer tous les documents dans le plus récent et final de l'analyse des exigences (ou pour l'itération ou que ce soit agile cycle de programmation que vous utilisez ...)
  • rappelez-vous que les exigences changent avec le logiciel cycle de vie , de sorte que la collecte est une chose, mais la gestion et la mise en œuvre d'une autre
  • KISS - le garder aussi simple que possible
  • étude de l'environnement où le futur système sera en résidence - là sont de plus en plus de restrictions technologiques de l'héritage ou les systèmes environnants , comme les entreprises ne voulez pas de jeter à la poubelle de l'argent qu'ils ont investi depuis des décennies, même si dans nos esprits, à 20 ans, le code est poubelle ...

Comme la plupart des étapes du processus de développement logiciel son itération qui fonctionne le mieux.

D'abord savoir qui sont vos utilisateurs sont-la XYZ dept,

Alors de savoir où ils se situent dans l'organisation-une partie de Z de la division,

Puis de trouver ce qu'ils font en termes généraux -- la gestion de la trésorerie

Ensuite, en termes spécifiques -- collecter l'argent à partir d'échantillons de tills, et de vérifier jusqu'à la fraude.

Ensuite, vous pouvez commencer à leur parler.

Demandez quels sont les problèmes qu'ils veulent que vous voulez résoudre, vous allez obtenir une réponse comme écrire un bamboozling système de l'utilisation de l'OCR avec requin technoligies.

Ignorer cette réponse et de poser des questions pour savoir ce que le vrai problème, c'est -- ils ne peuvent pas lire les feuillets jusqu'à concilier la trésorerie.

En conviennent une véritable solution avec les utilisateurs -- obtenir une meilleure ruban d'encre fournisseur ou de connecter l'électronique, les caisses du réseau et de télécharger les logs d'un serveur central.

Alors d'accord en détail comment ils permettront de mesurer la réussite du projet.

Ensuite, et seulement ensuite de proposer et de convenir d'un ensemble détaillé d'exigences.

Avant d'aller parler à des acteurs/utilisateurs/on être sûr que vous serez en mesure de mettre bas les informations recueillies dans une tâche et les jours-de façon durable.

  • L'utilisation d'un sound-recorder si c'est OK avec l'autre personne et de l'information est encombrant.
  • Si vous avez entendu quelque chose d'important et vous avez besoin d'un délai raisonnable pour l'écrire, vous avez deux choix:demandez à l'autre personne à attendre une seconde, ou de dire au revoir à cette précieuse information.Vous ne rappelez-vous ce droit, adressez-vous à la neuro-scientifique.
  • Si vous constatez que d'un point de besoin d'un examen approfondi, ou que vous avez besoin de quelque document que vous avez seulement entendu parler, assurez-vous de prendre un engagement avec l'autre personne pour envoyer un document ou planifier une autre rencontre avec un but plus spécifique.Ne jamais dire "je vais n'oubliez pas de demander pour que le fichier xls" parce que, dans la plupart des cas, vous ne.
  • Pas très longtemps après la réunion, de résumer toutes vos notes, enregistrements et des idées neuves.Juste résumer droite.Créer des rappels pour les engagements.
  • Encore une fois, juste après la réunion, est le moment idéal pour comprendre le pourquoi de la collecte que vous venez de faire n'était pas aussi droit que vous avez pensé à la fin de la réunion.C'est alors que vous serez en mesure de le mettre vers le bas beaucoup de questions significatives pour une autre réunion.

Je sais que la question a été dans la perspective de la réunion préparatoire, mais s'il vous plaît être conscient que vous pouvez travailler sur cette matière avant la réunion et jusqu'à la fin avec beaucoup d'utile, complète et de qualité de la cueillette.

J'ai été en utilisant le mind mapping (comme une structure de répartition du travail) pour l'aider à rassembler les besoins et de définir les inconnues (le #1 du projet killer).Commencer à un niveau élevé et de travailler votre chemin vers le bas.Vous avez besoin de travailler avec les promoteurs, les utilisateurs et l'équipe de développement pour s'assurer que vous obtenez tous les angles, et de ne rien manquer.Vous ne pouvez pas s'attendre à connaître toute la portée de ce qu'ils veulent sans leur participation...vous - en tant que chef de projet/BA - besoin de les faire participer (partie la plus importante de l'emploi).

Il y a quelques bonnes idées ici déjà.Voici quelques collecte des besoins des principes que j'aime toujours garder à l'esprit:

Connaître la différence entre l'utilisateur et le client. Les propriétaires de l'entreprise qui approuvent le brillant de projet sont généralement les clients.Cependant, une terrible erreur, c'est la tendance à confondre l'utilisateur.Le client est généralement la personne qui reconnaît le besoin pour votre produit, mais l'utilisateur est la personne qui sera réellement à l'aide de la solution de (et vont probablement se plaindre plus tard sur une exigence de votre produit ne satisfait pas).Allez à plus d'une personne

Parce que nous sommes tous humains, et nous avons tendance à ne pas se souvenir de tous les petits détails.Vous augmentez vos chances de trouver manquer exigences que vous parler à plus de gens et de contre-vérifier.

Éviter les specials Lorsqu'un utilisateur demande pour quelque chose de très spécifique, méfiez-vous.Toujours remettre en question les préjugés et voir si cela va vraiment faire de votre produit mieux.

Prototype Ne pas attendre jusqu'à ce lancement, afin de montrer ce que vous avez à l'utilisateur.De fréquentes prototypes (vous pouvez même appeler des versions bêta) et d'obtenir une rétroaction constante tout au long du processus de développement.Vous trouverez probablement plus d'exigences que vous faites cela.

J'ai récemment commencé à utiliser des concepts, des normes et des modèles définis par l' Institut International des Analystes d'Affaires organisation (ERAI).

Ils ont une assez bonne BOK (Livre de la Connaissance) qui peut être téléchargé à partir de leur site web.Ils n'ont également un certificat.

L'Ingénierie des exigences est un peu un art, il ya beaucoup de façons différentes de le faire, vous avez vraiment de l'adapter à votre projet et les parties prenantes concernées.Un bon endroit pour commencer est avec l'Ingénierie des Exigences par Karl Wiegers:

http://www.amazon.com/Software-Requirements-Second-Pro-Best-Practices/dp/0735618798/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1234910330&sr=8-2

et un processus d'ingénierie des exigences qui peuvent être constitués d'un certain nombre d'étapes, par exemple:

  • Élicitation - pour base de discussion avec l'entreprise
  • L'analyse et la Description - une description technique de l'objet de la part des développeurs
  • L'élaboration, la Clarification, la Vérification et de la Négociation - l'affinement des exigences

Aussi, il ya un certain nombre de façons de documenter les exigences (Cas d'Utilisation, les Prototypes, les Spécifications, la Modélisation des Langues).Chacun ont leurs avantages et leurs inconvénients.Par exemple, les prototypes sont très bon pour l'élicitation des idées de l'entreprise et de débat d'idées.

Je trouve généralement que la rédaction d'un ensemble de cas d'utilisation et dont fil de fer prototypes fonctionne bien pour identifier un premier ensemble de conditions.À partir de ce moment, il est un processus continu de travailler avec des techniciens et des gens d'affaires de plus de clarifier et de préciser les exigences.Garder la trace de ce qui était initialement convenu et le suivi des exigences supplémentaires sont essentielles pour éviter le glissement de l'étendue.La négociation joue un peu ici aussi entre les différentes parties conformément à l'Cassé Triangle de Fer" (http://www.ambysoft.com/essays/brokenTriangle.html).

De l'OMI, la première étape importante est de mettre en place un dictornary de spécifiques au domaine des mots.Lorsque votre client dit "l'ordre", que veut-il dire?Quelque chose qu'il reçoit de la part de ses clients ou de quelque chose qu'il envoie à ses fournisseurs?Ou peut-être les deux?

Trouver les mots clés dans les affaires, et laissez-leur d'expliquer ces mots jusqu'à ce que vous comprendre leur signification dans le processus.Sans cela, vous aurez un moment difficile essayer de comprendre les exigences.

j'ai écrit un article de blog à propos de l'approche que j'ai utiliser:

http://pm4web.blogspot.com/2008/10/needs-analysis-for-business-websites.html

en gros:questions à poser à votre client avant la construction de leur site web.

je dois ajouter à ce questionnaire feuille est uniquement orientée vers le développement d'un site web construit comme une entreprise de présence sur le web.histoire totalement différente si l'on parle de logiciel basé sur le web.bien que certains de il est encore relavant (par ex.les questions relatives à regarder et se sentir).

  • LM

Je préfère garder mes exigences en matière de collecte des processus aussi simple, direct et complet que possible.Vous pouvez télécharger un exemple de document que j'ai utilisé comme modèle pour mes projets en ce blogue: http://allthingscs.blogspot.com/2011/03/documenting-software-architectural.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top