2010-10-13 105 views
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. 

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

+0

这听起来很有意思,并且非常感谢你对于例子的深思熟虑。我以前没有听说过Feature Injection,但我一定会研究它。你能推荐一些我可以参考的材料吗? – lambdakris 2010-10-20 14:21:13

+0

当然。这是我的博客文章:http://lizkeogh.com/2010/02/02/theyre-not-user-stories/和我写的一篇文章:http://www.infoq.com/articles/pulling-power 。 Chris Matts创建了它,所以这里是他的漫画:http://www.lulu.com/product/file-download/real-options-at-agile-2009/5949486 - Real Options也非常令人振奋,Feature Injection基于其原则。 – Lunivore 2010-10-20 16:01:39