首页 > 其他分享 >用户故事与敏捷开发

用户故事与敏捷开发

时间:2024-11-17 21:19:17浏览次数:1  
标签:需求 卡片 故事 用户 测试 敏捷 描述

什么是用户故事

用户故事(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):用户故事是小的具体的,且可以测试。故事太模糊的话,无法进行测试,那怎么验证?

怎么编写用户故事

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

目标用户

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

明确用户需求

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

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

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

产品功能

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

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

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

验收标准

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

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

参考

标签:需求,卡片,故事,用户,测试,敏捷,描述
From: https://www.cnblogs.com/jiujuan/p/18551128

相关文章

  • 顶级企业如何用数据脱敏保护用户隐私!
    0前言ShardingSphere提供数据访问安全性:通过数据脱敏,完成对敏感数据的安全访问。本文介绍ShardingSphere数据脱敏功能。数据脱敏,指对敏感信息通过脱敏规则进行数据转换,实现敏感隐私数据的可靠保护。相较传统私有化部署方案,互联网应用对数据安全要求更高,涉及范围更广。根据行业......
  • 这款信创CAD Linux与麒麟国产系统高效适配,荣获麒麟用户挚爱奖
    本文为CAD芯智库原创,未经允许请勿复制、转载!原文转自:www.xwzsoft.com/h-nd-493.html信创国产化发展至今已经陆续取得不少突破,作为工程建设/工业制造企业的核心设计/生产软件之一,CAD对国产信创操作系统、硬件设备的适配度发展也至关重要。对此,中望2016就开始投入CAD......
  • Day5:功能完善与用户测试
    站立式会议照片:工作进展:许莹柔(机器学习工程师):昨日完成:模型训练完成。今日计划:开始模型的评估和调优。遇到的困难:模型在实际数据上的表现需要进一步验证。肖晓霞(UI设计师):昨日完成:完成设计文档和用户手册的编写。今日计划:准备设计和用户手册的发布。遇到的困难:无。......
  • docker运行rabbitmq,mq用户以及vhost的持久化方法
    一、编写dockerfile文件,配置需要的插件vimpackage/dockerfile-rabbitmq.yamlFROMrabbitmq:3.8.5WORKDIR/var/lib/rabbitmqCOPYrabbitmq_delayed_message_exchange-3.8.0.ez/opt/rabbitmq/plugins/RUNchownrabbitmq:rabbitmq/opt/rabbitmq/plugins/rabbitmq_delayed_......
  • 【网络安全 | 漏洞挖掘】Google SSO用户的帐户接管
    未经许可,不得转载。文章目录DOMXSS获取CSRFToken解除Google账户绑定在这篇博文中,我将详细介绍找到针对GoogleSSO用户的账号接管(ATO)漏洞的过程。DOMXSS我遇到DOMXSS漏洞的位置非常微妙,因为我遇到了非常严格的WAF。获取CSRFToken在找到XSS漏......
  • JavaScript判断用户设备类型:PC端与移动端的区分方法
    在JavaScript中,可以通过检查用户代理字符串(UserAgentString)来判断用户设备类型,即访问网站的是PC端还是移动端设备。用户代理字符串是浏览器在发送HTTP请求时附带的一段信息,它包含了浏览器类型、版本、操作系统以及设备类型等信息。以下是一个简单的示例代码,用于判断用户......
  • 手机验证码漏洞挖掘(任意手机号注册,任意用户密码重置等等)
    一.短信验证码爆破漏洞挖掘1.漏洞原理服务端未对验证时间,次数做出限制,存在爆破的可能性。简单的系统可以直接爆破,但做过一些防护的系统还得进行一些绕过进行爆破。对与4位验证码:0000~9999的10000次,五分钟之内。对于6位验证码:1000000位,五分钟之内跑不完。2.爆破方法(没有次......
  • 用户协议
    用户协议密码备忘录(以下简称“我们”)依据本协议为用户(以下简称“你”)提供密码备忘录服务。本协议对你和我们均具有法律约束力。一、本服务的功能你可以使用本服务用于生成唯一密码。二、责任范围及限制你使用本服务得到的结果仅供参考,实际情况以官方为准。三、隐私保护我们......
  • 用户模块接口文档
    一、用户注册1、基本信息:请求路径:/user/register请求方式:POST接口描述:该接口用于用户通过手机号注册账号2、请求参数:请求参数格式:applocation/json参数名称说明类型是否必须备注phone手机号码String是必须输入11位password登录密码String是必须5-......
  • 解码JavaScript作用域:var a = 1; 背后的故事
    1、引言JavaScript是一种广泛使用的编程语言,其灵活的语法和强大的功能使其成为前端开发的首选语言。然而,对于初学者来说,理解JavaScript中的作用域机制可能会有些困难。本文将通过一句简单的代码vara=1;,深入解析JavaScript的执行机制和作用域管理。2、变量声明与......