Utilización de historias de los usuarios para, o funcionalidad reactiva automatizado, prevista

StackOverflow https://stackoverflow.com/questions/3928046

  •  30-09-2019
  •  | 
  •  

Pregunta

Me preguntaba lo que el pensar es en lo que respecta a la utilización de Historias usuario describir automatizado, programado o funcionalidad reactiva. Por ejemplo, ¿qué hacer cuando se tiene algo así como un proceso de cumplimiento de la orden, que consiste en tirar una orden de una cola, la preparación de un "formulario de pedido de relleno", enviando el formulario a un centro de procesamiento de pedidos, a continuación, a la espera de algún tipo de confirmación por parte de el centro de procesamiento, tales como "orden cumplida", o "error de cumplimiento de la orden: razones ...", etc .. Tenga en cuenta que la única intervención del usuario durante todo este proceso sería el momento de realizarse el pedido. Uno siempre podría argumentar que el proceso de cumplimiento es algo que puede deducirse de una historia de la entrada de pedidos, o que es un detalle de implementación, pero me parece que el proceso de cumplimiento es demasiado grande como para simplemente tomarlo como se deduce a partir de una entrada de pedidos historia de usuario o como un detalle de implementación. Se siente como que debería ser una descripción de la realización en sí como una historia así.

En particular, los aspectos que me interesan acerca de cómo escribir una historia de usuario para, o la funcionalidad reactiva automática, programada desde cuya perspectiva es que deben ser descritos? Teniendo en cuenta que estamos utilizando un formato de historia como "Como [papel], yo quiero [funcionalidad] para que [objetivo]", ¿cuál es el papel en el "Como [rol]" parte de la historia, y lo que es el propósito en el "para que [objetivo]" parte de la historia? La funcionalidad es generalmente bastante clara, pero la función y el propósito parecer un poco relativo. Por ejemplo, podría utilizar el sistema como punto de referencia y escribir algo como "como el cumplimiento del sistema / agente Orden, quiero ser capaz de tirar de una orden de la cola de cumplimiento, preparar un formulario de pedido de relleno, y enviarlo a el centro de procesamiento de pedido para que el orden se puede cumplir". O, alternativamente, pude ver las cosas desde el punto de vista y escribir algo así como de la empresa "Como un tomador de pedidos, quiero ser capaz de procesar las órdenes que son introducidos por los clientes para que pueda cumplir con mi responsabilidad de mis clientes y dar lo que quieren"(o algo por el estilo). Sin embargo, también podría escribir esto desde la perspectiva del cliente y decir algo como "Como cliente, quiero mi entrada para poder ser procesado / cumplirse para que pueda recibir las cosas que yo quiero".

Me da cuenta de que puede que no haya una respuesta definitiva en cuanto a la perspectiva de quién es el válido o uno más útil. Estoy seguro de que recibirá una gran cantidad de "depende" respuestas. Sin embargo, yo estaría muy interesado en escuchar acerca de lo que otros han hecho en situaciones como estas, o si alguien sabe de alguna recomendaciones, orientación o prácticas específicamente para este tipo de escenarios.

¿Fue útil?

Solución

Podría ayudar a alejarse de la plantilla tradicional historia de usuario y hacia el formato de las partes interesadas-enfocada de Característica Inyección (BDD en el espacio de análisis):

In order to <achieve a goal>
As <the stakeholder>
I want <someone to do something for me>.

Se puede calcular que el actor es por pensar que estaría dispuesto a pagar por la historia para ser entregado. Por ejemplo, cajas de CAPTCHA - esas cosas molestas usuarios tienen que rellenar - se llevan a cabo en beneficio de un moderador, o para hacer el sitio más atractivo para obtener ingresos, y no para beneficio del usuario en absoluto! De hecho, cuando se piensa en la mayoría de los sitios, aplicaciones, etc., que están casi nunca se hacen por un usuario. La mayoría de los sitios web están a punto de los ingresos por publicidad. La mayoría de las aplicaciones empresariales implican uno datos del departamento de entrar de manera que otro departamento puede usarlo, o por lo que el dinero puede ser tomado de los clientes.

Al hacer esto, se hace más obvio que puede haber más de un usuario implicado, y un usuario podría haber otro sistema. En su caso supongo que algún tipo de cabeza de las ventas es el principal tenedor de apuestas para esta historia.

In order to make sales
As the Sales Head
I want customers to be notified of any errors with their order.

In order to make sales
As the Sales Head
I want customers' orders to be fulfilled within 24 hours.

Se puede ver de esto que los objetivos se vuelven muy alto nivel, por lo que si usted tiene una pieza de software que hace el juego a esos objetivos, se puede romper abajo:

In order to fulfil customer's orders within 24 hours...

Ahora cada historia se remonta a la visión del proyecto, y se puede ver todos los sistemas de juego. Por lo que sus escenarios automatizados podría ser:

Given a valid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds successfully
Then the successful fulfillment should be logged
And the customer should be notified by email.

Given an invalid order in the queue
When the order fulfilment system runs
Then it should send a fill order form to the processing centre
When the processing centre responds with an error
Then the error should be logged
And the customer should be notified of the problem by email.

Por ejemplo.

Por cierto, si usted está pensando en mudarse a este formato ahora, tenga en cuenta que la transparencia se crea puede causar estragos absoluta con personas que son, por ejemplo, el desarrollo porque tienen el presupuesto, y no un adecuado visión del proyecto. Pienso que es una cosa buena. Otros encuentran la política menos cómodo! Buena suerte, lo que usted decide.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top