专栏首页Tech爬虫(公众号php_pachong)什么是用户故事(User Story)?

什么是用户故事(User Story)?

什么是用户故事?

用户故事是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素:

1. 角色:谁要使用这个功能。

2. 活动:需要完成什么样的功能。

3. 商业价值:为什么需要这个功能,这个功能带来什么样的价值。

用户故事通常按照如下的格式来表达: 英文:

As a <Role>, I want to <Activity>, so that <Business Value>.

中文:

作为一个<角色>, 我想要<活动>, 以便于<商业价值>

举例:

作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”

需要注意的是用户故事不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述。

Ron Jeffries的3个C

关于用户故事,Ron Jeffries用3个C来描述它:

卡片(Card) – 用户故事一般写在小的记事卡片上。卡片上可能会写上故事的简短描述,工作量估算等。

交谈(Conversation)- 用户故事背后的细节来源于和客户或者产品负责人的交流沟通。

确认(Confirmation)- 通过验收测试确认用户故事被正确完成。

用户故事的六个特性- INVEST

INVEST = Independent, Negotiable, Valuable, Estimable, Small, Testable

一个好的用户故事应该遵循INVEST原则。

独立性(Independent)— 要尽可能的让一个用户故事独立于其他的用户故事。用户故事之间的依赖使得制定计划,确定优先级,工作量估算都变得很困难。通常我们可以通过组合用户故事和分解用户故事来减少依赖性。

可协商性(Negotiable)— 一个用户故事的内容要是可以协商的,用户故事不是合同。一个用户故事卡片上只是对用户故事的一个简短的描述,不包括太多的细节。具体的细节在沟通阶段产出。一个用户故事卡带有了太多的细节,实际上限制了和用户的沟通。

有价值(Valuable)— 每个故事必须对客户具有价值(无论是用户还是购买方)。一个让用户故事有价值的好方法是让客户来写下它们。一旦一个客户意识到这是一个用户故事并不是一个契约而且可以进行协商的时候,他们将非常乐意写下故事。

可以估算性(Estimable)—开发团队需要去估计一个用户故事以便确定优先级,工作量,安排计划。但是让开发者难以估计故事的问题来自:对于领域知识的缺乏(这种情况下需要更多的沟通),或者故事太大了(这时需要把故事切分成小些的)。

短小(Small)— 一个好的故事在工作量上要尽量短小,最好不要超过10个理想人/天的工作量,至少要确保的是在一个迭代或Sprint中能够完成。用户故事越大,在安排计划,工作量估算等方面的风险就会越大。

可测试性(Testable)—一个用户故事要是可以测试的,以便于确认它是可以完成的。如果一个用户故事不能够测试,那么你就无法知道它什么时候可以完成。一个不可测试的用户故事例子:软件应该是易于使用的。

本文分享自微信公众号 - 物联俱乐部(wu_lian_club),作者:瓜哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 人月神话不是神

    用人月来衡量一项工作的规模是一个危险和带有欺骗性的神话,因为它暗示了人员数量和时间是可以相互替换的。(注:人月是用来衡量工作量的,规模是通过功能点或代码行等方式...

    公众号php_pachong
  • 如何简单估算人月

    1、什么是人月? 人月是工作量的计量单位,是项目所有参与者工作时长的累计,是最为方便计算成本的数据。是项目管理中常用的概念。 如一个项目前期投入3个人工作2个月...

    公众号php_pachong
  • 售前评估的工作量和项目经理评估的有出入,怎么办?

    场景:昨天同事H和我沟通,谈到了项目在开展时存在的问题,聊到公司的工作量评估和考核办法。目前工作量在售前的时候,由售前人员评估后经过部门经理的审阅,和业主客户进...

    公众号php_pachong
  • 干货 | 为了让携程上万员工上好网,他们做了这些

    孙颖, 携程技术保障中心网络管理团队高级工程师。从事IT互联网网络运维工作十余年,目前负责IT网络及WiFi网络设计、建设及运维。

    携程技术
  • 云知声SDK助力家电企业完成智能升级

    精彩内容 云知声IoT副总裁兼联合创始人康恒作为演讲嘉宾,出席了2016届空调高峰论坛活动。康恒在演讲中表示,家电智能化早已是大势所趋,人工智能将改变人们现有的...

    BestSDK
  • 从用户行为去理解内容-item2vec及其应用

    从内容属性去理解用户行为,预测用户行为,那么也可以通过理解用户行为去理解内容,预测内容属性。

    腾讯知文实验室
  • Git Reset命令

    Git分为三个区: 工作区(Working Directory):没有修改、修改后未使用git add的文件 暂存区(Staged):新增/修改后的文件调用...

    None_Ling
  • 【猫狗数据集】保存训练模型并加载进行继续训练

    发现数据集没有完整的上传到谷歌的colab上去,我说怎么计算出来的step不对劲。

    绝命生
  • [NewLife.XCode]脏数据

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netstandard,由新生命团队(2002~2019)开发完成并维护至今,以下简...

    大石头
  • 对python中return与yield的区别详解

    yield: 带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束

    砸漏

扫码关注云+社区

领取腾讯云代金券