一、何为用户故事?
用户故事 User Story 是敏捷软件开发中使用的工具,用于从最终用户的角度捕获软件功能的描述用户故描述用户类型,他们想要做什么,为什么想这么做。用来确认用户和用户需求的简短描述。
用户故事是从用户的角度来描述用户渴望得到的功能,最早来自于1999年极限编程中的一个实践。一个好的用户故事包括三个要素:
-
角色-Who:谁要使用这个功能。
-
活动-What:需要完成什么样的功能。
-
商业价值-Why:为什么需要这个功能,这个功能带来什么样的价值。
用户故事通常按照如下的格式来表达:
英文:As a [who], I want [what] , so that [why].
中文:作为一个<角色>, 我想要<活动/方案>, 以便于<商业价值>
二、INVEST原则:
好的用户故事必须遵循INVEST原则即:Independent(独立的);Negotiable(可协商的);Valuable(有价值的);Estimate(可评估的);Small(小的);Testable(可测试的)
-
Independent(独立的):每个用户故事间应该相互独立
-
Negotiable(可协商的):用户故事并非合同,只是对需求的简短描述,在一开始不适宜包含过多细节,具体细节在沟通阶段产出。
-
Valuable(有价值的):每个故事必须是对客户具有价值的,因此应该站在用户角度进行编写。
-
Estimate(可评估的):对要进行开发的User story 进行粗略估算,以便团队知道userstory的工作量。并由PO决定是否需要重新设计user story或进行任务拆分。
-
Small (小的):一个好的用户故事要短小,不要过于庞大。最好不要超过10个理想人/天的工作量,至少要确保的是在一个迭代或Sprint中能够完成。用户故事越大,在安排计划,工作量估算等方面的风险就会越大。
-
Testable(可测试的):用户故事应该是具体并且可测试的。如果用户故事过于含糊,测试时候就没有标准可循。例如:软件要易于使用。
三、用户故事案例:
- 作为一位求职者 [who],我想要搜寻到符合自身技能的职位信息[What],以便于投递该职位[Why]。
- 作为一位用户[who],我想要通过微信三方登录系统[What],以便于使用系统提供的功能[Why]。
总结
需要注意的是用户故事要使用用户可以理解的业务语言来描述,不能够使用技术语言来描述,好的用户故事可以帮助开发人员更准确、迅速的了解业务需求,并在脑海中刻画出功能实现后的场景。