用户故事与敏捷方法—优秀用户故事准则
一、切蛋糕
当面临一个大的故事的时候,通常有许多方法可以将它分解成较小的故事。许多开发人员首先想到的是将故事按照技术路线分割。
开发人员可能想沿着技术边界分割,示例如下:
- 求职者可以填写简历表
- 简历表上的信息被写入数据库
在这个案例中,一个故事会在当前迭代中完成,而另一个故事则(很可能)推迟到下一轮迭代里。这种做法的缺陷是,没有一个故事是单独对用户很有用的。
——————————————————分割线—————————————————————
一个更好的办法是换一种方式编写故事,每个故事都提供某种程度的完整(end-to-end
)的功能。
根据这个切蛋糕原则,我们可以把故事“求职者可以发布简历”像下面这样分。
- 求职者可以提交简历,简历上只包括诸如名字、地址、和教育背景这样的基本信息
- 求职者可以提交简历,简历上包括雇主想看的所有信息
在编写用户故事时,更倾向编写像一块完整蛋糕那样功能完整的故事。
具体有两个原因:
- 首先,在开发中,及早涉及软件应用架构的每一层能够有效地降低最后时刻才发现层次架构方面问题的风险。
- 其次,尽管不十分完美,即使只提供部分功能,但只要发布的功能可以跑,就可以放心的把应用程序发布给用户使用。
二、小结
编写封闭的故事:一个封闭的故事是指随着一个有意义的目标的实现而结束的故事,能让用户使用后觉得他完成了某个任务。
不要让故事过早设计用户界面。
用主动语态编写故事——例如要说“求职者可以发布简历”。
为单个用户编写故事——例如不要写“求职者可以删除简历”,而要写“求职者可以删除他自己的简历”。
让客户,而不是开发人员,编写故事。
不要给故事卡编号。
用户故事与敏捷方法—优秀用户故事准则相关推荐
- 07.用户故事与敏捷方法——优秀用户故事准则笔记
00.一个更好的办法是换一种方式编写故事,每个故事都提供某种程度的完整(end-to-end)的功能. 01.尽管不十分完美,即使只提供部分功能,但只要发布的功能可以跑,就可以放心地把应用程序发布给用 ...
- 用户故事与敏捷方法笔记 --- 用户故事
用户故事 用户故事描述了对用户.系统或软件购买者有价值的功能. 用户故事应该具备以下特点: 1) 独立的:应该避免故事间的项目依赖.在对故事排列优先级时,或者做计划时,故事间的相互依赖会导致问题. 2 ...
- 08.用户故事与敏捷方法——估算用户故事笔记
00.估算故事最好方法: *无论什么时候获得有关故事的新信息,都允许我们改变之前的想法 *适用于史诗故事和小故事 *不需要花很多时间 *提供进度和剩余工作的有用信息 *不太精确的估算也不会有太大问题 ...
- 用户故事与敏捷方法pdf
下载地址:网盘下载 内容简介 · · · · · · <用户故事与敏捷方法>详细介绍了用户故事与敏捷开发方法的结合,诠释了用户故事的重要价值,用户故事的实践过程,良好用户故事编写准则,如 ...
- 用户故事与敏捷方法阅读笔记03
今天读完了<用户故事与敏捷方法>的第12章:用户不是什么 用户不是IEEE 830,不是用例,不是场景.读完这一章,我了解到对于任何方法,总会碰到不顺的情况,我们会看看发生问题时的一些不良 ...
- 象观敏捷之旅-用户故事与敏捷方法
Date: 2015-05-04 21:07 一则漫画的启示 遇到的问题 编写严谨.漂亮.详细的文档本身成为一个目标,使用越来越冗长的文档,尝试用精确的语言来记录越来越多的细节和越来越具体的所谓全面的 ...
- 《用户故事与敏捷方法》阅读笔记三
用户故事具有多种好处: ①用户故事强调口头沟通:自古以来,口头表达是十分重要的.而且相比于书面书写的易产生歧义,口头表述更见简单明了,需求文档也是如此. ②人人都可以理解用户故事:相比于一些墨守成规的 ...
- 《用户故事与敏捷方法》读书笔记 02 细节是什么
说"用户可以搜索岗位"是一回事,能够开始编码并作为测试的指导又是一回事.细节是什么?关于以下没有答案的问题又怎么办: 用户可以用什么进行搜索?州?城市?岗位名?关键词? 用户必须注 ...
- 用户故事与敏捷方法—测量并监控速率
1.测量速率--一般是一轮迭代中完成的故事点数的总和 2.尚未全部完成的故事是否包括在计算速率中?--不包括 没法计算故事的已完成百分比 不想使用带小数的值为速率引入错误的精度 没有完成的故事通常并不 ...
- 《用户故事与敏捷方法》阅读笔记一
在没有读本书之前,虽然课上老师也讲用户故事,但是其实一直是对这个概念比较模糊,当时的理解就是用户故事就是简单的模拟用户使用软件的情形,也仅仅是模拟用户使用软件的情形,没有什么其他太多的用户.但是读了这 ...
最新文章
- 图像的均值和方差python_python-绘制均值和标准差
- Helloj2ee WPF书评系列——缘起
- lua学习笔记之垃圾收集
- Mybatis-数据插入
- 通过浪潮AIStation实现细粒度高性能的GPU资源共享
- 微信开发SDK,Jeewx-Api 1.3.1 版本发布
- HTML5+CSS:左边导航栏,右边是对应的文本区域
- 【Flink】Flink 报错 Writing records to streamload failed
- 【C语言】三子棋游戏
- 1月计算机会议,计算机类 | 2019年1月截稿国际会议信息8条
- Python学习教程:教你用Python通过微信来控制电脑摄像头
- PC蓝牙加串口调试助手调试蓝牙设备
- 全国省市县区乡镇级别的矢量文件(百度网盘可下载)
- BOY LONDON 2019秋季 武装集结
- win10小课堂:如何彻底关闭windows defender
- 相机视野拉伸,设置相机的Field Of View改变视野的大小
- PTA 7-191 百钱百鸡
- Enow ICQ上的自白
- Mybatis复杂查询环境
- linux如何查看内存ddr几代,如何通过命令查看内存是ddr2还是ddr3的?
热门文章
- 数据库设计及案例分析
- NAT技术与代理服务器的区别
- 《进击的虫师》百度文库下载器
- 五笔字根表识别码图_86版五笔字根表及口诀(最新图文版)
- (练打字微信小程序)把手机当成小型计算机练习打字
- ZZH:魔兽世界之000:MPQ
- Xamarin ios 设置支持在PP助手、XY苹果助手上查看该应用下的文件
- 在国内程序员是吃青春饭的职业吗?
- backup exec 安装时报‘Microsoft sql express安装失败
- mysql数据库原理与应用武洪萍第三张答案_MySQL数据库原理及应用(第2版)(微课版)...