关于用户故事

用户故事拆分方法总结 用户故事从用户的角度描述用户功能,它是一种轻量级、灵活的管理需求的方式。拆分用户故事,是敏捷开发过程中的一项重要的活动。遵循INVEST原则,参考通用的拆分方法,通过在日常工作中练习,你一定能做好。... 阅读详情

关于用户故事

用户故事,User Story,这个词儿来自于敏捷方法Scrum。到底什么是用户故事,因为近期重拾Redo一些项目方面和产品方面的工作,来整理整理相关知识。用户故事与另外几个概念,如用户故事切分、用户故事地图、用例、场景,都有啥关联或关系呢。

1、什么是用户故事

1.1 用户故事

用户故事,User Story。这是一个从属于产品设计的概念,它所指的,是从用户的角度来描述用户需求,要使用用户可以理解的业务预研来描述、切忌使用技术术语。

意即:

  • 角色:谁
  • 活动:需要做什么
  • 价值:为什么

用一句常见格式来描述,即:

As a role, I want goal/desire so that benefit.

或

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

用户故事要点(Ron Jeffries,3C):

  • 简述:用卡片(Card)来简要描述故事。
  • 细节:与Product Owner(或客户)交谈(Conversation)来明确细节。
  • 确认:验收评审,确认(Confirmation)被正确完成。

1.2 用户故事切分

故事有大小、长度,如何编写一个用户故事、才算得上好的用户故事?
它应该遵循INVEST原则:

  • 独立性(Independent):尽可能让一个用户故事独立于其他用户故事,解除相互依赖性,便于确定优先级、评估工作量。可以通过组合、分解的方式来达到“独立性”的目的。
  • 可协商性(Negotiable):这个用户故事的内容可以协商,是一个简短的描述,而具体细节在沟通阶段产出,避免过多的细节限制了与用户的沟通。
  • 有价值(Valuable):这个用户故事,必须对客户具有价值,因此应该站在用户的角度去编写,描述的是一个一个的feature,而非一个一个的task。
  • 可以估算性(Estimable):这个用户故事,优先级、工作量、安排计划,都是可行的,以减少评估上的不确定性。
  • **短小(Small):一个好的用户故事,可评估的工作量要尽量短小,确保在一个迭代周期内可完成。用户故事越大、风险越大。
  • 可测试性(Testable):这个用户故事可以测试以确认是可以完成的,所以必须在定义了验收测试通过的标准后才能认为故事划分完毕。

为了保证用户故事的颗粒度,上面说到了组合、分解的方法,我们也可以灵活应用,目标就是为了让产出的软件能够(Rachel Davies):

  • 能够工作
  • 交付价值
  • 能有效地得到用户的反馈

对于用户故事切分,不同的前辈也总结出一些更多的进一步的方法可供借鉴。

  • Richard Lawrence方法:

    • 根据工作流程的步骤来切分故事
    • 让业务规则中的每种变化都是其自身的故事
    • 切分“实现第一个[x]”,然后“实现其他的[x]”
    • 复杂故事中,将最简单的版本切分为单独的故事
    • 通过故事所操作的数据类型来切分
    • 通过简单数据输入方法和复杂方法之间的区别来切分故事
    • 当前故事的性能转移到一个或多个新故事
    • 按照CRUD(创建/读取/更新/删除)来切分
  • Bob Hartman方法:

    • 根据角色来切分
    • 将高风险和低风险的分离
    • 在每个故事上工作的开发者数量最大化
  • Rachel Davies对于根据输入/输出的数据来切分故事的方式提供了一些细节处理方法:

    • 可以为每个输入页面创建故事
    • 可以为输入页面每个可用元素创建故事
    • 可以创建简单的UI(简单≠漂亮)
    • 可以创建一个命令行界面

1.3 用户故事地图

当我们开始进行一个产品或者项目规划的时候,首先需要梳理出一个backlog,在其中按照优先级列出所要实现的场景和具体功能。

而用户故事地图就有这么一种功效。
这里写图片描述
这里写图片描述
用户故事地图,代表一个完整的用户故事。其核心是一条从左到右的时间线(横轴),以及其下的自上而下的必要程度线(纵轴)。

  • 时间线(横轴,从左到右)

    • 在时间线的上方防止最大粒度的内容(可理解为Epic 史诗,即比较大的User Story);
    • 在时间线的下方放置二级粒度的内容(可看做backlog item,即待办列表项);
    • 在二级粒度内容的下面放置三级粒度的内容(即切分好的用户故事,可作为User Story Task)。

以上形式可以灵活按照实际产品情况进行削减,去掉Epic、将backlog item移到时间线上面。

  • 必要程度线(纵轴,自上而下)

用户故事地图的纵轴,而对于上述的Task(最小用户故事),按照必要程度、重要程度自上而下往下排列。

通过这种方式的划分,可以制定backlog及task用户故事的优先级,并安排迭代周期、迭代版本及对应任务。

大家一定多多少听过MVP,即Most Variable Product 最小化可用产品。这个概念,源于《精益创业》(埃里克·莱斯),有一定了解的朋友一定知道,MVP的目的是以最小的投入发布对用户有价值的产品,帮助我们快速试错,并通过不停的迭代最终找到产品的正确方向。

2、用户故事与其他相关概念

2.1 用例

Use Case

User Story关注的是业务场景和用户故事,更倾向于以用户角度描述响应业务功能的业务价值。用户故事会比较简单,重点是把业务需求和场景(或含业务价值/商业价值)说清楚即可。

而Use Case 用例,它包含了有业务用例和系统用例。其用例建模比较复杂,会涉及到业务流程、业务规则、输入、输出、界面和交互等等。

用户故事与用例里面的业务用例有点类似。但是,用户故事的粒度往往比用例的粒度更细化,如用例中的基本流、扩展流、业务规则都可能转化为用户故事(见上面“1.2用户故事切分”)。

还有一种比较明显的思维/角色/对象上的区别。用户故事从产品角度、业务场景看待,重在用户使用产品的目的/任务/流程/情节等等;而用例面向需求人员和开发人员,重在逻辑、次序。

2.2 场景

Scenario

Scenario 场景,有两拨人在用,当然,他们所指的含义也不一样。

  • 交互设计师(如Alan Cooper)
    • 在RUP(Rational Unified Process)中已有辨析:“场景”在 RUP 内部指用例实例,即只是一个经过可能的基本流和备选流的特定“路径”(即Cockburn所说的“一个行为序列”)。
  • 需求分析师(如Alistair Cockburn)
    • 在以用户为中心的设计方法和用户界面设计方法中常常将“场景”描述为使用经历(Cooper就这么做),这实际上包含了更多的细节,而不仅局限于事件流。虽然该附加信息可能与后来的设计阶段无关,但它对于了解用户、任务和环境却必不可少。

因此,场景可以在业务建模工作流程中广泛应用,但是在需求工作流中,重点则转移到用例上。

Alistair Cockburn:“用户故事”相当于“场景”的标题,而“用例”则是多个“场景”内容的集合。



参考:

百度百科:user story

泽众软测:User Story

知乎:User Story与Use Case的异同;User Story与Use Case是偏等价关系

新浪博客: User Story Mapping初体验;任务、用例、用户故事和场景

人人都是产品经理:创建用户故事地图



用户故事讲解(看最后的例子,你应该就知道怎么样写用户故事了) 一、什么是用户故事 用户故事描述了对用户、系统或软件购买者有价值的功能。一个好的用户故事包括三个要素: 1.角色:谁要使用这个功能。 2.功能:需要完成什么样的功能。 3.价值:为什么需要这个功能,这个功能带来什么样的价值。 二、如何编写用户故事 故事应该很清晰地体现对用户或客户的价值,最好的做法是让客户团队来编写故事。客户团队应包括能确定软件最终用户需求的人,可能包括测试者,产品管理者,真实用户和交互设计师。因为他们处于描述需求的最佳位置,也因为随后他们需要和开发者一同设计出故事细节并确定故事优先级。 为 阅读详情

相关推荐

用户故事地图

用户故事地图 用户故事是描述用户需求分析的一个好方法,可以将backlog变成一个二维地图,从而容易看到整个规划的全貌,帮助开发人员快速的了解客户的需求,并确定产品模块的实现优先级,实现最大用户价值,学会讲一个好的用户故事是很有用的。 一个基本的用户故事包括三个要素:角色、活动、商业价值,其固定的描述格式:作为什么角色,要进行什么活动,才能实现什么商业价值。这个固定语句格式,只是了解用户故事的

zhaole524的专栏 5557

敏捷开发中史诗故事与用户故事的颗粒度

作者:陈勇       出处:blog.youkuaiyun.com/cheny_com       用户故事的颗粒度一直是一个谈论已久的话题,但参加了很多研讨会,搜索了很多网络资源后发现一直没有定论,只好在这里原创一下。 前言:为何需要讨论用户故事的颗粒度 其实需求颗粒度的问题由来已久,即

陈勇的博客 - Scrum 敏捷开发培训咨询,绩效管理,团队管理,《火星人敏捷开发手册》 1万+

什么是用户故事

# 一、 什么是用户故事? ## 一、用户故事的概念 概念这种东西我喜欢说文解字的方式去理解和阐述;用户故事=用户+故事=人+故+事,那就是一个人因为什么原因要做什么事,提炼出来三要素就是who、why、what。从需求角度描述就是一个用来确认用户和用户需求的简短描述。 ## 二、用户故事的三要素 用户故事在软件开发过程中被作为描述需求的一种表达形式。为了规范用户故事的表达,便于沟通,用户故事通常的表达格式为:作为一个<用户角色>, 我想要<完成活动>, 以便于<实现价

jackey_sdc的博客 1896

划分用户故事(user-story)的原则

在敏捷开发过程中是通过用户故事来将需求具体化成可以进行迭代开发的一个个现实的可见的开发任务。因此在敏捷软件的开发过程中,用户故事的划分对于迭代和开发起着举足轻重的作用。 用户故事从其名字来看是站在用户的角度所描述的故事,同时也是用户所能看懂的故事,开发人员最容易犯下的一个错误就是站在自己的角度去思考和划分故事,这样就背离了用户故事的初衷。 那什么是用户故事?首先来说用户故事是对需求的细

rxr1st的专栏 2万+

讲故事的用户故事样例之1

曾几何时开始,用户故事的写法成了 用户故事经典句式+验收条件。 在https://blog.versionone.com/agile-acceptance-criteria/ 上提供了如下一个故事的样例。As an executive, I want to be able to filter the dashboard by department so that I can isolate dat

高效软件开发 5618

如何写好用户故事?

“什么是用户故事?为什么要写用户故事?用户故事可以带来哪些优势?” 在创建产品线路图或用户故事地图之后,就可以着手编写用户故事了。如何将产品线路图或者用户故事地图中的需求细化、拆分、编写用户故事,并让其更容易管理,比如:工时评估、优先级排序等等,本篇文章将会详细介绍。 01 什么是用户故事? 用户故事是从用户角度描述产品业务需求的一种方法, 它是敏捷框架中最小的工作单元。它的主要目是让业务人员和技术团队都可以理解需求。用户故事是一种清晰、有效定义产品需求的方式,并可以避免或.

m0_60202396的博客 2679

敏捷工具:用户故事地图梳理需求全景

文长:2770字时长:8分钟针对人群:用户体验设计师,业务分析师,产品经理,研发工程师1 概念什么是用户故事:迭代开发的一种工具代表了可开发的一个工作单元帮助我们跟踪一...

hailang2ll的专栏 3323

用户故事与敏捷方法—一些用户故事(实战二)

为了生成初始的故事清单,团队决定召开一次故事编写工作坊。团队决定从一个特定的用户角色或者虚构人物开始写出团队所能想到的所有故事,然后考虑下一个角色或者虚构人物。 Teresa的故事 团队决定从识别出的虚构人物Teresa入手。 故事卡1:用户可以使用作者、数名或者ISBN搜索书籍 故事卡2:用户可以查看书籍的具体信息。包括出版日期、内容简介、页数 故事卡3:用户可以把书籍放进“购物车”,...

ChibiMarukoChan的博客 1304

敏捷Agile: Epic vs UserStory vs Task

Epic-Story-Task Epic Epic是User Story逻辑上的集合, 一个Epic可以被break down成多个小的User Story; 一个Epic可能需要多个Sprint才能完成. User Story vs. Task 在JIRA中,User Story与Task可以算作同一级别,其中 User Story 可以代表一个user feature, 一个有user va...

邮箱 rex.guan@outlook.com 8606

中孚保密检查系统彻底卸载指南:绕过口令与清除内核残留

中孚保密检查系统是深度集成于Windows内核的合规管控软件,其卸载涉及用户态口令校验、内核态服务引擎与Ring 0级驱动自保三重机制。理解其基于SHA-256哈希的本地口令验证原理和zfsysflt.sys过滤驱动的加载逻辑,是实现无残留清理的技术前提。该系统具备高权限驻留特性,常规卸载工具无法触达驱动与服务层,易引发蓝屏、启动缓慢及新安全软件冲突等工程问题。典型应用场景包括涉密终端批量清退、安全研究环境重建及误装后紧急退出。本文聚焦‘口令绕过+手动清理’双轨方案,覆盖注册表、服务、驱动、文件与计划任务五

weixin_33508411的博客 1051

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

用户故事,史诗故事和主题故事

本文转自:scrum中文网 文章链接:http://www.scrumcn.com/agile/scrum/18871.html 敏捷团队喜欢以一种刚刚好的方式处理需求。我们采用最低限度地、逐渐细化并保存在产品待办项(Product Backlog)中的特性描述文字,来替代传统长篇大论的需求文档。 我们发现用户故事是最好的描述方式,这种形式能够捕获到特性足够多的信息,并促进产品负责人和团队在...

Agile_zhanglao的博客 5552

告别Mac自带终端:iTerm2 + Oh My Zsh 保姆级配置指南(含国内镜像源)

本文提供了一份详细的Mac终端优化指南,涵盖iTerm2、Oh My Zsh和Homebrew的配置流程,特别针对国内用户提供镜像源解决方案。通过安装现代化工具链和优化配置,帮助开发者打造高效、美观的终端工作环境,提升日常开发效率。

weixin_42638178的博客 398

用户故事与用户故事地图——互联网平台建设

全文包括什么是用户故事、如何讲故事、用故事进行沟通、用故事进行产品设计、用户故事地图、用户故事与用户画像、应用实践七部分。enjoy~ 以下是数字化转型的分享线路图,您现在所在的位置为序号的分享:生态圈建设中,最关键的一部分,载体之平台建设。 以下是正文: 我们开始分享平台设计的用户体验部分,这个是平台建设中,平台的用户体验,是企业全链路精准用户体验...

测试0901-1 1815

K210视觉项目上位机避坑指南:解决C#解析ESP8266 TCP图像流的乱码、卡顿与连接中断

本文详细解析了K210与ESP8266在视觉项目中的上位机开发问题,重点解决TCP图像流解析中的乱码、卡顿与连接中断问题。通过自定义协议、JPEG流重组、TCP连接优化等实战技巧,提升系统稳定性和性能,适用于嵌入式视觉开发者和C#上位机程序员。

weixin_28730131的博客 402

DevExpress学习之GridControl导入导出至EXCEL

导出: private void EXCELout_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Title = "导出Excel"; saveFileDialog.Filter = "Excel文件(*.xls)|*.xls";

I Can -Jiang 2754

用户故事详解

介绍 在敏捷开发中, 用户故事 (user stories) 是一种轻量级,更灵活的替代品指定软件需求的传统方法 - 软件需求规范,用例规格等。 实际上,可以说用户故事是最重要的敏捷开发 (Agile Development) 中的工件 (Artifacts),因为它是主要将值流传递给用户的容器,敏捷开发就是快速实现价值 (Value)。 用户故事也可以作为我们整个增量价值交付 (increm...

Warren Lynch 的博客 2万+

STM32驱动HC-SR04超声波模块:两种精准测距方案详解

本文详解STM32驱动HC-SR04超声波模块的两种精准测距方案:定时器中断计数法和外部中断边沿检测法。涵盖硬件连接、代码实现与优化技巧,帮助开发者根据精度和复杂度需求选择合适方案,提升超声波测距在嵌入式项目中的稳定性和准确性。

g5h6i的博客 685

如何编写用户故事

在 LLM 时代,用户故事的编写应始终优先聚焦于问题定义,即角色-价值对,避免直接陷入解决方案的细节。通过有效地拆分用户故事,设计合理的整体解决方案和用户旅程,能够确保开发工作始终围绕用户的核心需求展开。

pumpkin84514的博客 1537

【一】PCIe基础知识

Linux PCIe基础知识

他山之石 可以攻玉 4万+

1.2、基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

基于卷积神经网络(CNN)的车牌自动识别系统(matlab)

XU157303764的博客 2911

用户故事编写指南:写出最贴近用户实际场景的故事

用户故事都会写,但如何写才能更贴近用户实际场景?

minjiekaifa的博客 3705

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

全面解析用户故事地图

昨天一篇文章我们给大家分享了用户故事,这篇文章我们来分享故事地图。什么是用户故事地图?“用户故事”的概念来源于敏捷开发的理念。用户故事是从用户的角度来描述自己渴望得到的特性以及带来的价值。...

liudada8265的博客 6572

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

用户故事,什么是用户故事,怎么描述用户故事

用户故事,意为来描述用户渴望得到的功能。包含以下3个要素: 角色 who 要尽可能具体 开发团队不是用户 活动 what 通常每个用户故事都是唯一的 “系统”是暗示的,不会写在故事中 主动,而不是被动(“我可以得到通知”) 价值 value 许多故事可能共享相同的利益声明。 优点可能是其他用户或客户,而不仅仅是故事中的用户。 通常描述方式为: 作为<用户角色>,我要<完成活动>,以便于<实现价值> 例如, 作为<客户>,我想要<扫码登陆>,以便

Demon's blog 1044

今天谈谈用户故事地图,不是用户故事

摘要:用户故事地图其实并非是将描述好的用户故事汇总在地图上。而是通过分析、梳理,将用户故事展现出来,进而汇成了一副用户故事地图。

华为云官方博客 1788

敏捷的重要工具——用户故事

敏捷最重要的思想是关注交付价值,如何确定价值?需要沟通,需要新软件的人必需和开发新软件的人充分沟通,一个合适的工具“用户故事”、应运而生。(客户在项目整个过程中全程参与)

u011906276的博客 2990
上一篇: 【转】大企业的敏捷开发
山书生
博客等级 码龄23年 150粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值