用户故事与敏捷开发

news/2024/11/17 21:23:27/文章来源:https://www.cnblogs.com/jiujuan/p/18551128

什么是用户故事

用户故事(User Story)是用来对软件或用户有价值功能的简短描述,是对需求的一种描述。它清晰简洁的传达了用户想要的功能。

它从用户角度出发,用来描述用户的需求,用来表达用户需求的方式之一。

它从用户角度出发,解释了用户所期望得到的结果。用户故事清楚的解释了新功能给用户提供的价值,而不仅仅专注于功能。

它也是程序开发人员、产品经理、利益相关者关于需求交流的一种媒介。

用户故事三要素

用户故事是用来描述用户需求的一种方式,一份用户故事的组成要素有哪些?
它一般由 3 个要素组成:

image

  • 角色(who):谁使用。
  • 活动(what):要完成什么活动。系统提供了什么功能?
  • 价值(value):为什么这么做?提供了什么价值。给用户带来什么价值?产生什么商业价值?实现什么业务目标?

作为一个<角色>,我想要<完成活动>,以便<达到目的/实现价值>

用户故事包含哪些内容

上面是对用户故事包含要素的简短概述。在《敏捷软件开发:用户故事实战》一书中描述了一份用户故事需要包含 3 方面内容:

  • 一份故事的书面描述。
  • 有关故事的交谈,用于充实故事的细节。为了获取用户故事的细节,需要与相关人员沟通交谈来获取故事详细细节。
  • 记录故事细节的测试,用来验证故事是否完成。

用卡片描述用户故事内容

用什么工具能快速、便捷,准确的描述和记录用户故事呢?答:卡片记录。

对于用户故事的描述,另外一个人荣恩 (Ron Jeffries) 用 3 个单词简明概括了上节里用户故事 3 方面内容,3 个英文单词如下:

  • 卡片(Card)
  • 交谈(Conversation)
  • 确认(Confirmation)

image

卡片(Card)包含了用户故事的文字概括说明,需求的详细细节需要在交谈(Conversation)中获得,在确认(Confirmation)环节记录并加以验证。

卡片 Card

在卡片上写着用户故事的简短描述、规则和完成验收标准。

  • 卡片正面写用户故事三要素描述,格式为:

作为一个<角色>,我想要<完成活动>,以便于<实现价值>。

例子:

作为操作后台的销售人员,我希望合并来自不同来源的销售数据,以便我可以方便的地分析销售数据并创建销售报告。

  • 卡片下写用户故事的规则和完成验收标准,格式为:

Given…When…Then,给用户一个 xxx 功能,在 xxx 时候的 xxx 情况下使用,然后 xxx(成功/失败/错误)

举一个简单例子:

场景:用户凭手机号和验证码登录软件系统。

  • Given:用户用手机号登录系统。
  • When:当我在界面上输入手机号,然后点击获取验证码,输入验证码登录系统。
  • Then:输入了正确的验证码,成功登录进系统。

image

(故事卡片)

故事卡片写着用户故事的简短描述、一些规则和完成验收标准。用户故事的详情、一些细节还需要与相关人员交谈获得。
用物理卡片展示,而不是假设的想法,有助于团队成员共同讨论需求。

交谈 Conversation

用户故事的细节来源是与用户/客户、产品利益相关者的沟通交流,与所有利益相关者对话交谈,并在对话基础上的理解,整理出需求。然后需要确保各方对用户故事的理解相一致。

这其实是怎么挖掘用户需求详情和细节的方法,与用户/客户交流对谈就是其中一种。

用户故事的第二个阶段,如何实现卡片上的要求以及了解需求的细节,需要与用户/客户、产品相关人员讨论、提问来获得。

确认 Confirmation

通过验收测试,来确认每个用户故事被正确的完成了。

验收测试格式举例:

一般是对操作业务规则的验证。比如验证用户登录系统功能:

1、在输入错误手机号的条件下,会出现 xxx 错误提示,结果登录失败。

2、在验证码输入超时情况下,会出现 xxx 提示,结果登录失败。

3、测试输入过期手机号码,会出现 xxx 提示,结果登录失败。

一些测试的方法:1、功能测试(单元测试)2、交互测试(集成测试)3、自动化测试(持续交付测试)4、性能测试(压力测试)

好故事的六个特征 INVEST

好故事的六个特征 INVEST,它由六个英文首字母组成:

image

  • 独立的(Independent):每个用户故事之间应该相互独立,尽量避免故事之间相互依赖。故事之间相互依赖会导致优先级排序和计划出现问题,也会使估算变得困难。

  • 可协商的(Negotiable):故事是可协商的,它不是软件必须实现的需求,只是对需求的简短描述,故事细节(需求细节)是在交谈沟通阶段产出的。

  • 对用户或客户有价值的(Valuable to users or customers):确保故事对用户或客户是有价值的,必须站在用户或客户角度来编写故事。这通常不容易做到但尽量去做到。

  • 可估算的(Estimatable):对于需要进行开发的 User Story(用户故事)大小进行估算,或将一个用户故事给到开发人员,用户故事的代码实现需要的工作量,多长时间开发完成进行评估。

  • 小的(Small):一个好的用户故事不能太大也不能太小。太大的故事叫史诗(Epic),史诗应该拆分为较小的故事。那怎么判断好故事大小呢?一个标准就是至少在一个迭代或 Sprint 中能够完成。故事太大,在工作量估算方面存在很大风险。

  • 可测试的(Testable):用户故事是小的具体的,且可以测试。故事太模糊的话,无法进行测试,那怎么验证?

怎么编写用户故事

怎么编写有效的用户故事,从哪里开始?

目标用户

为了编写有效用户故事,需要识别和定义产品的目标用户?谁会使用软件产品,他们怎么与软件进行交互?

明确用户需求

确定了使用产品的用户后,就要挖掘用户使用产品想要达成的目标。

也就是说用户使用产品想要得到什么、对产品的期望是什么,用户想要什么?

这一步是要挖掘用户的真正需求。

产品功能

明确了用户需求,就要思考产品可以提供什么样的功能?能满足用户需求。

这一步还有一个重要的步骤,竞品分析

或者思考一个重要的问题:用户为什么选择我们,而不是竞争对手?

验收标准

团队开发完成交付产品,需要验收用户故事是否正在完成、适合标准。

每个用户故事可以列出几个验证标准。

参考

  • 《用户故事与敏捷方法》https://book.douban.com/subject/4743056/ 作者: Mike Cohn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835529.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

团队项目冲刺--day6

每天举行站立式会议成员 任务##昨天已完成的工作成员 任务徐嘉炜 开发音频API交互逻辑陈祥意 测试网络API林楦 开发注册UI界面陈大锴 开发系统界面交互逻辑蔡家显 汇总整体测试记录陈祖民##今天计划完成的工作 界面细节完善,如歌曲封面动画,歌曲播放,页面背景随封面渐变,歌…

11.17 鲜花

a pa ta ? zaong ma ze mi da. (byd 没有输入法绷不住了)11.17 鲜花(RMQ专题) 哈哈,回家看到朴彩英这个歌绷不住了。 不是吧,姐?推歌-박채영《아파트》 채영이가 좋아하는 랜덤 게임 랜덤 게임 Game start 아파트 아파트 아파트 아파트 아파트 아파트 Uh, uh huh uh huh …

团队作业4——项目冲刺-7

目录 每日例会 1.1 例会照片 1.2 成员工作情况 2.燃尽图 3.代码签入 4.最新模块 4.1 代码截图 4.2 运行截图 5.每日总结 每日例会 1.1 例会照片1.2 成员工作情况成员 昨日已完成工作 今天计划完成的工作 工作中遇到的困难杨殷(组长) 完善管理员界面增删改查功能 完善整个系统…

jmeter接口测试之SSH Command

原文地址:https://download.csdn.net/blog/column/8863406/106334136 需要提前安装好的工具:按照好jmeter插件:ssh protocol support 、 sshmon samler Collector 然而在实际测试中,不能确定我们的的机器能够正常连接。这里就要用到 while 循环设置重连,如下添加 while …

团队项目冲刺第七天

课程 2024软件工程作业要求 团队作业4——项目冲刺作业目标 团队项目冲刺第七天团队会议合照燃尽图计划表格成员 已完成 下一步洪吉潮 话题发布与展示功能开发开发话题详情页面的前端展示刘家辉 话题发布与展示功能开发实现话题在主题圈和校园圈的展示逻辑柳浩 前后端对接,进行…

堆栈图

一、 1、找到画堆栈图从401168开始画,ctrl+g出来一个弹窗,在弹窗上输入要找到哪一行输入0x401168,他会直接跳转 2、在那一行f2下断点点开始运行让cpu运行到该行停止(画堆栈图要关注栈底EBP,栈顶ESP两个寄存器) (1)调用前(2)push2:栈顶减4,2被压入,为压栈push2之后…

基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现五

基于SSM整合maven开发的一款宠物收养领养管理系统附带源码指导运行视频,该项目前端模板是借鉴别人的,自己写的后台代码,该系统分为前台和后台,前台功能有:登录注册、领养中心、活动中心等。后台管理员功能有:用户管理、宠物管理、活动管理、领养管理、志愿者管理等。该项…

团队冲刺第六天

课程 2024软件工程作业要求 团队作业4——项目冲刺作业目标 团队项目冲刺第x天团队会议合照燃尽图计划表格成员 已完成 下一步洪吉潮 话题发布与展示功能开发设计话题发布界面,支持文字和图片上传 话题发布与展示功能开发开发话题详情页面的前端展示刘家辉话题发布与展示功能开…

团队作业——项目冲刺4

目录 每日例会 1.1 例会照片 1.2 成员工作情况 2.燃尽图 3.代码签入 4.最新模块 4.1 代码截图 4.2 运行截图 5.每日总结 每日例会 1.1 例会照片1.2 成员工作情况成员 昨日已完成工作 今天计划完成的工作 工作中遇到的困难杨殷(组长) 实现学生功能逻辑代码 完善学生功能界面(…

【Azure Redis】因为Redis升级引发了故障转移后的问题讨论

对于Redis的Server Load指标,每秒创建连接数的并发值,是否有建议呢? 【答】:为了避免将缓存推到 100% 服务器负载,建议将连接创建速率保持在每秒 30 个以下。问题描述 Azure Redis是高可用架构,由主节点,从节点 两个节点共同组成。 应用客户端连接的Redis服务器的域名,…

2024-2025-1 20241411《计算机基础与程序设计》第八周学习总结

作业信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08这个作业的目标 功能设计与面向对象设计,面向对象设计过程,面向对象语言三要素,汇编、编译、解释、执行作业…