Recopilación de Requisitos


¿Cómo va la fase de recopilación de requisitos? ¿Alguien tiene un buen conjunto de pautas o consejos a seguir? ¿Cuáles son algunas buenas preguntas para hacer a las partes interesadas?

Actualmente estoy trabajando en un nuevo proyecto y hay muchas incógnitas. Estoy elaborando una lista de preguntas para las partes interesadas. Sin embargo, no puedo evitar sentir que me estoy perdiendo algo u olvidando hacer una pregunta crítica.

Author: Bhargav Rao, 2008-08-27

20 answers

Es casi seguro que te estás perdiendo algo. Muchas cosas, probablemente. No te preocupes, está bien. Incluso si recordaste todo y cubriste todas las bases, las partes interesadas no van a poder darte requisitos muy buenos y claros sin ningún punto de referencia. La mejor manera de hacer este tipo de cosas es obtener lo que puedas de ellos ahora, luego tomar eso y darles algo a lo que reaccionar. Puede ser un prototipo de papel, una maqueta, la versión 0.1 del software, lo que sea. Entonces pueden empieza a decirte lo que realmente quieren.

 20
Author: Chris Upchurch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-26 22:36:16

Ver cómic obligatorio a continuación...

En general, trato de tener una idea del modelo de negocio que mi cliente/cliente está tratando de emular con la aplicación que desea crear. ¿Estamos construyendo un procesador de formularios glorificado? ¿Estamos recuperando datos de múltiples fuentes en una sola aplicación para ahorrar tiempo? ¿Estamos realizando algún tipo de integración?

Una vez establecido el modelo general de negocio, paso a los "must" y "must nots" para que la aplicación dicte qué datos I puede recuperar, quién puede realizar qué funciones, etc.

Por lo general, si puede hacer que el cliente explique su modelo o flujo de trabajo, puede moverse desde allí y encontrar preguntas clave adicionales.

La única pregunta que siempre me aseguro de hacer de una forma u otra es "¿Qué es lo más complicado/molesto que tienes que hacer al hacer X. Normalmente la respuesta a eso revela la regla de negocios/datos más loca que tendrás que implementar.

Espero que esto ayude!

introduzca la descripción de la imagen aquí

 20
Author: Dillie-O,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 00:27:34

Steve Yegge habla divertido, pero hay dinero que hacer en la elaboración de cuáles son los requisitos de otras personas, así que tomaría su artículo con una pizca de sal.

La recopilación de requisitos es increíblemente difícil debido a la forma en que funciona la comunicación. Es un proceso de cuatro pasos que tiene pérdidas en cada paso.

  • Tengo una idea en mi cabeza
  • Transformo esto en palabras e imágenes
  • Usted interpreta las imágenes y las palabras
  • Usted pinta una imagen en su propia mente de lo que mi idea original era como

Y los humanos fallan miserablemente en esto con una frecuencia preocupante a través de sus adorables imperfecciones.

Agile hace bien en promover el desarrollo iterativo. Obtener versiones tempranas para el cliente es importante para identificar qué características son más importantes (qué se envía en 0.1 - 0.5 ish), ayuda a mantenerlos a ambos en el camino correcto en términos de cómo funcionará la aplicación e identifica rápidamente las características ocultas que fallará .

Los dos principales escenarios problemáticos son los dos extremos de las escalas:

  • No tener una maldita pista sobre lo que estás haciendo - consigue algunos expertos en dominios
  • Tener demasiados requisitos - feature pit. - Question, cull (priorizar ;) ) características y uso de desarrollo iterativo

Yegge hace bien en señalar que los expertos de dominio son esenciales para producir buenos requisitos porque conocen el negocio y tienen trabajó en él. Pueden ayudar a identificar el deseo central del cliente y le ayudarán a explicar cómo su personal utilizará el sistema y qué es importante para el personal. Las alternativas y adiciones incluyen tratar de hacer el trabajo usted mismo para entrar en la mentalidad o tener un miembro del personal del cliente de vez en cuando en el sitio, aunque esto último es poco probable que suceda.

El pozo de características es el otro lado, en su mayoría lleno de proyectos fallidos de TI del gobierno. Demasiado, demasiado pronto, no suficiente pensamiento o aplicación de realismo (pero, ¿qué esperas que tengan solo unos cuatro años para hacerse sentir importantes?). El objetivo aquí es averiguar lo que el cliente realmente quiere. Mientras trabaje para que los componentes principales sean correctos, los clientes eficientes y libres de errores generalmente permanecen tolerantes con las características que faltan que llegan en envíos posteriores, siempre y cuando finalmente lleguen. Aquí es donde el desarrollo iterativo realmente ayuda.

Recuerde separar las ideas del cliente de lo que el programa será como y lo que quieren que el programa logre . Algunos clientes pueden crear confusión al comunicar sus requisitos en forma de características de la aplicación que pueden estar mal pensadas o ser redundantes por una funcionalidad mucho más simple de lo que creen que requieren. Si bien no estoy abogando por llamar idiota al cliente o no escucharlo, siento que vale la pena preguntar siempre por qué quieren que una característica en particular llegue a su propósito subyacente.

Recuerde que en cualquier escenario es de importancia imperativa para erradicar el camino más rápido para satisfacer las necesidades de los clientes núcleo y ponerlo en un escenario donde ambos se benefician de la relación.

 12
Author: Quibblesome,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-03 16:23:26

Wow, ¿por dónde empezar?

Primero, hay un conjunto de conocimientos que alguien debería tener que hacer análisis sobre algunos proyectos, pero realmente depende de lo que esté construyendo para quién. En otras palabras, hace una gran diferencia si está modificando una aplicación empresarial para una corporación Fortune 100, creando una aplicación para iPhone o agregando funcionalidad a una página web personal.

En segundo lugar, hay diferentes tipos de requisitos.

  • Objetivos: Qué quiere el usuario lograr?
  • Funcional: ¿Qué necesita hacer el usuario para alcanzar su objetivo? (piense en pasos para alcanzar el/los objetivo / s)
  • No funcional: ¿Cuáles son las restricciones que su programa necesita realizar? (piense en usuarios simultáneos de 10 vs 10k, crecimiento, respaldo, etc.)
  • Reglas de negocio: ¿Qué restricciones dinámicas debe cumplir? (piense en cálculos, definiciones, preocupaciones legales, etc.)

En tercer lugar, la forma de reunir los requisitos de manera más eficaz, y luego obtener retroalimentación sobre ellos (que va a hacer, ¿verdad?) es utilizar modelos. Los casos de usuario y las historias de usuario son un modelo de lo que el usuario necesita hacer. Los modelos de proceso son otra versión de lo que debe suceder. Los diagramas de sistema son solo otro modelo de cómo interactúan las diferentes partes del programa(s). Un buen modelado de datos definirá conceptos de negocio y le mostrará las entradas, salidas y cambios que ocurren dentro de su programa. Modelos (y hay más de lo que he enumerado) son realmente la clave de la preocupación que lista. Algunos buenos modelos capturarán las necesidades y a partir de los modelos puede determinar sus requisitos.

Cuarto, obtener retroalimentación. Sé que ya mencioné esto, pero no lo harás todo bien la primera vez, así que obtén respuestas a lo que tu cliente quiere.

Por mucho que aprecie los requisitos y los modelos que los impulsan, los usuarios normalmente no entienden las ramificaciones de todas sus solicitudes. La comunicación constante con posibilidades de revisión y retroalimentación dará usuarios una mejor comprensión de lo que está entregando. Además, refinarán su comprensión en función de lo que vean. A menos que esté trabajando para el gobierno, las iteraciones y / o prototipos son útiles.

 8
Author: Jeffrey Davidson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 16:05:51

En primer lugar, reúna los requisitos antes de empezar a codificar. Puede comenzar el diseño mientras los está recopilando dependiendo de su ciclo de vida del proyecto, pero nunca debe comenzar a codificar sin ellos.

Los requisitos son un conjunto de documentos bien escritos que protegen tanto al cliente como a usted mismo. Nunca lo olvides. Si no hay ningún requisito, entonces no se pagó (y por lo tanto requiere una solicitud de cambio formal), si está presente, entonces debe implementarse y debe funcionar correctamente.

Los requisitos deben ser comprobables. Si un requisito no puede ser probado, entonces no es un requisito. Eso significa algo así como, "El sistema"

Los requisitos deben ser concretos. Esto significa que decir "La interfaz de usuario del sistema será fácil de usar" no es un requisito correcto.

Para realmente "reunir" los requisitos, primero debe asegurarse de comprender el modelo de negocio. El cliente le dirá lo que quiere con sus propias palabras, es su trabajo para entenderlo e interpretarlo en el contexto correcto.

Realice reuniones con el cliente mientras está desarrollando los requisitos. Describir al cliente con sus propias palabras y asegúrese de que usted y el cliente tienen el mismo concepto en los requisitos.

Los requisitos requieren un ejemplo conciso y comprobable, pero mantenga un registro de todas las demás cosas que surgen en las reuniones, diagramas, dudas e intente mantener un registro de cada reunión.

Si puede utilizar un ciclo de vida incremental, que le dará la capacidad de mejorar algunos requisitos mal recogidos.

 6
Author: Jorge Córdoba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-26 23:56:58

Nunca se pueden hacer demasiadas preguntas o "estúpidas". Más preguntas, más respuestas que reciba.

 3
Author: Robert Durgin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-26 22:34:47

Según Steve Yegge esa es la pregunta equivocada para hacer. Si usted está reuniendo requisito ya es demasiado tarde, su proyecto está condenado.

 3
Author: Sam Hasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-26 23:25:38
  1. Discusiones de alto nivel sobre propósito, alcance, limitaciones del entorno operativo, tamaño, etc

  2. Audiciona una descripción de un solo párrafo del sistema, martillo hacia fuera

  3. Mock up UI

  4. Formalizar los requisitos conocidos

  5. Ahora itera entre 3 y 4 con más y más prototipos funcionales y más especificaciones con más detalles. Escribe las pruebas sobre la marcha. Haga esto hasta que tenga un software funcional y un objetivo completo, requisitos probables spec.

Ese es el sueño. La realidad es generalmente después de un par de iteraciones todo el mundo va cabeza abajo y códigos hasta que hay un mes para probar.

 2
Author: Aidan Ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-27 00:45:14
 1
Author: Josh Smeaton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 10:56:06
  • lea el manifiesto ágil-el software de trabajo es la única medida para el éxito de un proyecto de software
  • familiarícese con las prácticas de software ágiles: estudie Scrum, programación lean, xp, etc., esto le ahorrará una gran cantidad de tiempo no solo para la recopilación de requisitos, sino también para todo el ciclo de vida del desarrollo de software
  • mantener conversaciones regulares con los Clientes y especialmente con los futuros usuarios y usuarios clave
  • asegúrese de hablar con el Personas que entienden el dominio del problema-por ejemplo, especialistas en el campo
  • Tomar pequeñas notas durante las conversaciones
  • Después de cada CONVERSACIÓN escriba una lista oficial de requisitos y preséntela para su aprobación. Más adelante sería difícil argumentar en contra de toda la documentación acordada
  • asegúrese de que sus clientes sepan aproximadamente cuáles son los gastos aproximados en tiempo y dinero para implementar los requisitos de "agradable tener"
  • asegúrese de etiquetar los requisitos como " debe tener", "debería tener" y "es bueno tener" desde el principio, asegúrese de que los Clientes entiendan las diferencias entre esos tipos también
  • integre todos los documentos en el último y último análisis de requisitos (o el actual para la iteración o cualquier ciclo de programación ágil que esté utilizando ... )
  • recuerde que los requisitos cambian a lo largo del ciclo de vida del software , por lo que recopilar es una cosa, pero administrar e implementar otra
  • KISS-mantenlo tan simple como posible
  • estudie también el entorno en el que residirá el futuro sistema: cada vez hay más restricciones tecnológicas de los sistemas heredados o circundantes , ya que las empresas no prefieren tirar a la basura el dinero que han invertido durante décadas, incluso si en nuestras mentes modernas el código de 20 años es basura ...
 1
Author: Yordan Georgiev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-19 06:03:23

Al igual que la mayoría de las etapas del proceso de desarrollo de software, su iteración funciona mejor.

Primero averigüe quiénes son sus usuarios the el departamento XYZ,

Luego averigua dónde encajan en la organización part parte de la división Z,

Luego averigüe lo que hacen en términos generales manage administrar efectivo

Entonces en términos específicos collect recoger el dinero de las cajas, y comprobar si hay fraude de caja.

Entonces puedes empezar a hablar con ellos.

Pregunta qué problema quieren que quieres resolver -- obtendrá una respuesta como escribir un sistema de bamboozling usando OCR con shark technoligies.

Ignore esa respuesta y haga algunas preguntas más para averiguar cuál es el verdadero problema they no pueden leer los recibos de caja para reconciliar el dinero.

Acuerde una solución real con los usuarios get obtenga un mejor proveedor de cinta de tinta - o conecte las cajas electrónicas a la red y cargue los registros a un servidor central.

A continuación, acordar en detalle cómo se medirá el éxito de la proyecto.

Entonces y solo entonces proponer y acordar un conjunto detallado de requisitos.

 1
Author: James Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-27 08:24:30
 1
Author: TheVillageIdiot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-27 08:33:25

Antes de ir a hablar con las partes interesadas/usuarios/cualquier persona asegúrese de que será capaz de poner la información recopilada de una manera útil y duradera.

  • Use una grabadora de sonido si está bien con la otra persona y la información es voluminosa.
  • Si escuchaste algo importante y necesitas un tiempo razonable para escribirlo, tienes dos opciones: pedirle a la otra persona que espere un segundo o decirle adiós a esa valiosa información. No lo recordarás bien, pregúntale a cualquiera neuro-científico.
  • Si detecta que un punto necesita una revisión más profunda o que necesita algún documento del que acaba de escuchar, asegúrese de comprometerse con la otra persona a enviar ese documento o programar otra reunión con un propósito más específico. Nunca digas "Me acordaré de pedir ese archivo xls" porque en la mayoría de los casos no lo harás.
  • No mucho después de la reunión, resuma todas sus notas, grabaciones y pensamientos frescos. Solo resuma correctamente. Crear recordatorios efectivos para el compromiso.
  • Nuevamente, justo después de la reunión, es el momento perfecto para entender por qué la reunión que acabas de hacer no fue tan correcta como pensabas al final de la reunión. Es entonces cuando usted será capaz de poner un montón de preguntas significativas para otra reunión.

Sé que la pregunta estaba en la perspectiva de la reunión previa, pero tenga en cuenta que puede trabajar en estos asuntos antes de la reunión y terminar con una reunión muy útil, completa y de calidad.

 1
Author: daniloquio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-24 19:55:38

He estado usando mapas mentales (como una estructura de desglose de trabajo) para ayudar a reunir requisitos y definir las incógnitas (el asesino del proyecto #1). Comience en un nivel alto y trabajar su camino hacia abajo. Es necesario trabajar con los patrocinadores, los usuarios y el equipo de desarrollo para asegurarse de obtener todos los ángulos y no perderse nada. No se puede esperar que sepas todo el alcance de lo que quieren sin su participación...usted - como gerente de proyecto/BA-necesita involucrarlos (la parte más importante de la trabajo).

 1
Author: meade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 00:05:49

Ya hay algunas grandes ideas aquí. Estos son algunos de los principios de recopilación de requisitos que siempre me gusta tener en cuenta:

Conoce la diferencia entre el usuario y el cliente. Los dueños de negocios que aprueban el proyecto shiny suelen ser los clientes. Sin embargo, un error devastador es la tendencia a confundirlos como el usuario. El cliente suele ser la persona que reconoce la necesidad de su producto, pero el usuario es la persona que realmente va a utilizar el solución (y lo más probable es que se queje más tarde sobre un requisito que su producto no cumplió). Ir a más de una persona

Porque todos somos humanos, y tendemos a no recordar cada detalle insoportable. Aumenta su probabilidad de encontrar requisitos perdidos a medida que habla con más personas y verifica.

Evitar especiales Cuando un usuario pide algo muy específico, tenga cuidado. Siempre cuestione los sesgos y vea si esto realmente hará que su producto mejor.

Prototipo No espere hasta el lanzamiento para mostrar lo que tiene al usuario. Haga prototipos frecuentes (incluso puede llamarlos versiones beta) y obtenga retroalimentación constante durante todo el proceso de desarrollo. Probablemente encontrará más requisitos a medida que lo hace.

 1
Author: Tawheed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-30 00:06:18

Recientemente comencé a utilizar los conceptos, estándares y plantillas definidos por la organización International Institute of Business Analysts ( IIBA).

Tienen un BOK (Libro del Conocimiento) bastante bueno que se puede descargar de su sitio web. También tienen un certificado.

 0
Author: whiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-16 10:51:10

La ingeniería de requisitos es un poco un arte, hay muchas maneras diferentes de hacerlo, realmente tienes que adaptarlo a tu proyecto y a las partes interesadas involucradas. Un buen lugar para comenzar es con la Ingeniería de requisitos de 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

Y un proceso de ingeniería de requisitos que puede consistir en una serie de pasos por ejemplo:

  • Elicitación-para la base para la discusión con la empresa
  • Análisis y Descripción - una descripción técnica para el propósito de los desarrolladores
  • Elaboración, Aclaración, Verificación y Negociación - perfeccionamiento ulterior de los requisitos

Además, hay varias formas de documentar los requisitos (Casos de uso, Prototipos, Especificaciones, Lenguajes de Modelado). Cada uno tiene sus ventajas y desventajas. Por ejemplo los prototipos son muy buenos para la obtención de ideas del negocio y la discusión de ideas.

Generalmente encuentro que escribir un conjunto de casos de uso e incluir prototipos de estructura de alambre funciona bien para identificar un conjunto inicial de requisitos. A partir de ese momento, es un proceso continuo de trabajo con técnicos y empresarios para aclarar y elaborar aún más los requisitos. Hacer un seguimiento de lo que se acordó inicialmente y el seguimiento de los requisitos adicionales son esenciales para evitar scope creep. La negociación juega un papel pequeño aquí también entre las diversas partes según el Triángulo de Hierro Roto ( http://www.ambysoft.com/essays/brokenTriangle.html).

 0
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-27 08:01:19

IMO el primer paso más importante es configurar un dictornario de palabras específicas de dominio. Cuando su cliente dice "orden", ¿qué quiere decir? ¿Algo que recibe de sus clientes o algo que envía a sus proveedores? ¿O tal vez ambos?

Encuentre las palabras clave en el negocio de las partes interesadas y deje que expliquen esas palabras hasta que comprenda su significado en el proceso. Sin eso, usted tendrá un tiempo difícil tratando de entender los requisitos.

 0
Author: Erich Kitzmueller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-27 08:16:06

Escribí un artículo de blog sobre el enfoque que uso:

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

Básicamente: preguntas para hacer a su cliente antes de construir su sitio web.

Debo agregar que esta hoja de cuestionario solo está orientada a las construcciones básicas de sitios web, como una presencia web de negocios. historia totalmente diferente si usted está hablando de software basado en la web. a pesar de que algunos de ellos siguen siendo relavant (por ejemplo, las cuestiones relacionadas con apariencia).

  • LM
 0
Author: louism,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-27 12:05:11

Prefiero mantener mi proceso de recopilación de requisitos lo más simple, directo y completo posible. Puedes descargar un documento de muestra que utilizo como plantilla para mis proyectos en esta publicación del blog: http://allthingscs.blogspot.com/2011/03/documenting-software-architectural.html

 0
Author: allthingscs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-25 22:46:06