用户故事是敏捷开发中的软件需求的描述形式。它与传统规范过程的软件需求描述有着本质的区别。传统规范过程的软件需求是在软件开发阶段前必须完成。强调的是在软件进行开发前,需求规范说明书中所描述的需求必须cover软件的所有需求细节。与其不同,敏捷开发方法中,用户故事是软件需求描述的表现形式。用户故事不强调在软件开发的之前获取到软件的所有需求和细节。需求的获取是随着时间推移和迭代开发的展开而加入新的用户故事。同样用户故事也不按需求规范说明书的方式来进行需求描述。
用户故事随时间推移和迭代开发而完善或加入新故事,并不意味软件开发前只做部分的需求描述。敏捷开发目标是交付完整可使用的系统软件。因此,软件总体目标和功能将成为敏捷开发中的史诗故事。史诗故事将作为初步开发迭代的主要依据。
对于大型项目中,若通过角色和总体目标来制定史诗故事,将会为软件的迭代开发规划一个大致方向。故事采集编制应该从软件的业务目标总线首要环节开始。先细化总线的第一个史诗故,后续总线故事可以在后期迭代中给予细化。
用户故事的编写,不应以技术路线来分割。例如:产品数据需要保存到数据,读取时需要从缓存读取等。应站在使用角色的角度,编写用户故事,最好故事描述中包含角色名称。例如:我作为(角色),希望使用(功能),完成(工作),达到(目标价值)。
开发性用户故事的特性:
1. 有价值,有意义
2. 可以估算
2. 可以测试
3. 独立的
4. 封闭的,小的,非持续性的活动。
目标性,阶段性史诗故事分为以下两种
1. 复合故事:由多个小的故事组成,可以是总体目标或阶段目标等。
2.复杂故事:故事本身大,故事存在不确定的可行性。这时候可以先做故事需求可行性的尝试分分析,之后分解故事确定迭代的阶段。
用户故事的获取方法:
敏捷开发的需求获取方法与传统规范过程一样。都以沟通为主。先分析软件的涉众群体,然后对涉众分析归纳软件的用户角色。按照用户角色进行用户故事的捕捉收集
用户故事包含的内容:
1. 简单的功能需求描述
2.简单的测试说明
3. 可以包括简单的备注