将用户故事用于自动,计划或反应功能

时间:2010-10-13 21:10:23

标签: bdd user-stories

我想知道关于使用用户故事描述自动,计划或被动功能的想法是什么。例如,如果您有订单履行流程,包括从队列中提取订单,准备“填写订单”,将表单发送到订单处理中心,然后等待某种确认,您会怎么做?处理中心,例如“订单履行”,或“订单履行错误:原因......”等。请记住,在整个过程中唯一的用户干预是订单输入时。人们总是可以争辩说,履行过程可以从订单录入故事中隐含,或者它是一个实现细节,但在我看来,履行过程太大而不能简单地将其视为订单条目隐含的用户故事或作为实现细节。感觉应该将履行本身描述为一个故事。

特别是,关于为自动,预定或反应功能编写用户故事而感兴趣的方面是从哪个角度来描述?鉴于我们使用的故事格式如“作为[角色],我希望[功能]使[目的]”,故事中“作为[角色]”部分的角色是什么,以及什么是目的在于“这样[目的]”故事的一部分?功能通常足够清晰,但角色和目的似乎有点相对。例如,我可以使用系统作为我的参考点,并编写类似“作为订单履行系统/代理,我希望能够从履行队列中提取订单,准备填写订单表格,并将其发送到订单处理中心,以便可以履行订单“。或者,我可以从业务的角度来看问题,并写一些类似“作为订单接受者,我希望能够处理客户输入的订单,以便我能够履行对客户的责任并给予他们想要什么“(或沿着这些方向的东西)。但是,我也可以从顾客的角度写这个,并说“作为顾客,我希望我的订单条目能够被处理/完成,以便我能收到我想要的东西”。

我意识到,对于有效的一个或多个有用的观点,可能没有一个最终的答案。我相信我会得到很多“依赖”的回复。尽管如此,我会非常有兴趣了解其他人在这些情况下所做的事情,或者是否有人知道有关这些类型的情景的任何建议,指导或做法。

1 个答案:

答案 0 :(得分:1)

可能有助于摆脱传统的用户故事模板,转向以利益相关者为中心的特征注入格式(分析空间中的BDD):

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

您可以通过考虑谁愿意为要交付的故事付费来确定利益相关者是谁。例如,CAPTCHA盒子 - 那些用户必须填写的令人讨厌的东西 - 是为了主持人的利益,或者使网站更具吸引力以获得收入,而不是为了用户的利益!事实上,当你想到大多数网站,应用程序等时,它们几乎不会为用户所做。大多数网站都是关于广告收入。大多数企业应用程序涉及一个部门输入数据,以便其他部门可以使用它,或者可以从客户那里获得资金。

当您这样做时,更明显的是可能涉及多个用户,而用户可能是另一个系统。在你的情况下,我猜测某个销售主管是这个故事的主要利益相关者。

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.

你可以从中看到目标变得非常高级,所以如果你有一个软件可以实现这些目标,你可以将它们分解:

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

现在每个故事都可以追溯到项目愿景,你可以看到所有系统都在发挥作用。因此,您的自动方案可能会显示为:

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.

例如。

顺便说一下,如果你现在想要转向这种格式,请注意它所创造的透明度会对那些因为他们有预算而不是合适的人开发造成绝对的破坏。项目愿景。我认为这是件好事。其他人认为政治不太舒服!祝你好运,无论你决定什么。