破门:熟悉XP的朋友们一定试过写用户故事吧。XP中对用户故事的定义十分简单,用三到五句话来说明一个需求。但是事实上写好一个用户故事并不容易,最主要的是我们常常抓不住核心。这里在c2的wiki上看到一篇不错的文章,翻译出来,给大家参考。
原文链接:http://c2.com/cgi/wiki?UserStoryTemplate
User Story Template
用户故事模板
DanNorth 在Yahoo group 上给出了一个十分有趣的用户故事 UserStory 模板:
我总结了一个十分可爱的用户故事模板,可以用在一张5x3 英寸的卡片上.
在正面可以写:
用户故事标题 Story Title
作为一个 X As a X
我希望 Y I want Y
因此 Z” So that Z
用户故事标题是“在你的整体影像中你给它的叫法”what you'd call it if you were making a movie of it"。
X 是将会从这个故事发布后获得好处的人。
Y 是这个故事的内容。
Z 是这个故事将会产生的效益。这一点很重要,因为它使得商业价值获得了清晰的描述,所以程序员们可以更直接的了解用户对这个用户故事的期望。
我们经常遇到的情况是实际的效益会用通过一个不同Y来描述,这往往会是在计划游戏planning game 的过程中逐步明晰。
卡片的背后则划分为两列,标题如下:
I do this... This happens...
我做这个... 这个发生...
这就是你的最高级别的接受条件,当我能勾做到所有的事情,并且对应的响应事件发生时,我就完成了这个故事。
(这里包含着一些有趣的模式,比如Z仅仅是Y换了一种说法而已,用户通常并没有认真的思考用户故事的真实价值。我发现用户故事经常在计划游戏过程中消失,原因就是-“哦哈,也许我们并不真得需要那样做”,或者"对了,戴夫说过我们可能需要有一个”。)
“我已经开始使用这个模板一段时间了并且我真的喜欢它。围绕着商业价值得对话段落尤其有效。” -- DanNorth
http://groups.yahoo.com/group/extremeprogramming/message/83897
十分有趣。我想我应该自己尝试一下:
"计算并且跟踪员工社会福利税"
As a 工资管理员
I want 系统自动计算和跟踪员工社会福利税额
So that 我们能减少纸张工作和人工跟踪,并且避免多扣税款的意外情况
I do this... This happens...
付 $1000.00 扣除 $33.33 (或者其他正确的值J)
<总额限制 $10>
付 $1000.00 扣除 $10.00
<总额限制以下>
付 $1000.00 扣除 $0.00
我十分喜欢卡正面的形式。 不过我觉得背面似乎有些过了。 (别忘了,用户故事卡片是用来增强对话的方法,并不是替换。) 在故事讨论完被放入迭代计划之前的时候,我认为正面的内容应该输入一篇文档而后面的表格可以在此时再产生。整合测试框架FrameworkForIntegratedTest 可以让这篇文档用做一个验收测试。--JimShore
窗体底端
(最后编辑于 十一月 16, 2003)