用户故事的概念
用户故事是从用户的角度描述用户渴望得到的功能,包括角色、活动和商业价值。角色是谁要使用这个功能,活动是指需要完成什么样的功能,商业价值是这个功能可以给这个角色带来什么价值。
基本格式是:
As XXX (user),
I want XX (function),
So that I can do XX.
敏捷开发中为什么要使用用户故事,可以归纳为三个原因。
一是在团队内部形成统一的理解。每个用户故事在业务分析人员 (BA) 写完后,要和客户以及团队成员达成一致 (迭代规划会议上),再进行开发,这样可以保证客户和团队对需求的理解一致,避免在后续开发过程中需求理解不一致导致的返工。
二是简单灵活。用户故事形式简单,易于理解,强调和客户、开发团队的沟通。
三在于这是敏捷团队收集需求的有效方式。
INVEST原则
所谓INVEST原则,其实是Independent, Negotiable, Valuable, Estimable, Small, Testable的缩写。
Independent,是指用户故事的拆分应该尽可能使每个故事相对独立,弱依赖性。
Negotiable,是指要简短描述,不要太多细节。用户故事写出来,在开发时需要先进行沟通(即开卡),把需求细节澄清明确,所以这也是3C原则中的Conversation另一体现。
Valuable,写出的故事应该是对客户的业务有价值的,当然这一点比较难把握,需要和客户不断沟通交流,深入了解他们的业务。
Estimable,是指用户故事应该可以让开发人员估算大小