敏捷开发04:Scrum 中的 Product Backlog(产品待办列表) 详细介绍

Product Backlog 产品待办列表

在计划开发产品功能时,都希望产品功能上线后,用户能够喜欢并经常使用。

因此在开发产品新功能时,就要衡量哪些产品需求是对用户最有价值,这是最应该思考的问题。
然后把这些有价值的需求集合放在一起。当然,也有与需求实现相关的其它工作项。

在 Scrum 框架中,把产品待开发的功能集合放在一起就叫产品待办列表(Product Backlog)。它是 Scrum 团队实现产品目标所需完成的所有工作项的集合,是 Scrum 团队进行工作规划和执行的来源。它由产品负责人维护。

英文 backlog 意思是:大量堆积、积压的事物或工作,也指“尚未完成的工作”,或“需要尽快处理的事情”。

在产品待办列表中的工作项叫产品待办事项(Product Backlog Item)。

如果待开发功能很多,那哪些功能优先开发?这就需要对产品待办列表里的功能集做一个优先级排序,优先级高的率先开发。

当然,随着开发的持续进行,产品待办列表中可能有不止功能性需求,还有非功能性特性。
比如:bug缺陷修复、基础技术任务、比较大的用户故事(Epic)、代码改进、架构优化、功能优化等等。

image

产品待办项的需求来源

image

需求主要来源:

客户调研、反馈,用户调研、反馈,市场调研,公司高层,数据分析,产品经理,Scrum 团队成员,竞品分析等。

产品待办列表特点

  • 1、优先级排序:产品待办列表是一个按照优先级从高到低进行排序的产品功能列表。它包含了产品有价值的需求、Bug修复、特性等列表项。

  • 2、动 态 变 化:产品待办列表是一个动态变化的列表,随着项目功能不断开发,市场不断变化,用户持续的反馈,获取的信息和知识也越来越多,产品负责人可能会不断的更新项目列表,添加新的需求或特性、调整优先级、移除不再重要的功能等等。

  • 产品待办列表的持续更新和改进有助于团队适应变化,并持续提供价值。

  • 3、需求细节详情:把将要在下一个迭代(Sprint Backlog)中完成的待办项,描述时包含足够的细节。比如用户故事,大小合适并且符合 INVEST 原则,用户故事三要素俱全,分解成故事点(用于估算工作量)。

  • 4、透 明 性:产品待办列表是 Scrum 团队实现产品目标所需完成的所有工作项的集合,确保团队成员都清楚产品要完成的工作项、方向和目标。团队成员需要完成哪些工作都是来自这里。

  • 5、工作集:上面已经说明,产品待办列表是 Scrum 团队实现产品目标所需完成的所有工作项的集合。

image

产品待办列表管理

产品待办列表(Product Backlog)是由产品负责人(Product Owner)负责管理的。
随着产品功能不断开发,用户持续反馈,市场不断变化,获取的知识增多,涌现新的想法,待办列表里的工作项会不断进行改变和调整。待开发项(item)是随用户、市场不断变化、持续演进的。

image

(from:https://www.visual-paradigm.com/cn/scrum/what-is-product-backlog-in-scrum/1000)

那怎么管理变化,把这种变化反映到开发项中呢?那哪些又是不变的呢?

产品愿景。这是不变的,它将作为指导产品待办列表中工作项的创建、移除、修改。

变化的工作项,定期进行梳理,可以用 梳理会议 来进行管理。产品负责人可以通过定期举办梳理会议来梳理产品待办列表。

梳理会议 的一些关键活动:

  • 1、梳理产品愿景。
  • 2、创建、移除、调整产品待办列表项。
  • 3、拆分大的待办项,比如 Epic(史诗)。产出合适大小的用户故事。
  • 4、澄清待办项。
  • 5、排列、修改优先级排序。
  • 6、利益相关者的沟通。
  • 7、产品阶段性目标。
  • 8、待办项的估算。

会议参与方:

产品负责人、Scrum Master、产品开发人员、业务部门人员(市场、销售、业务、客服等)、产品经理、产品设计人员

为什么会有这么多人参与呢?

  • 因为产品待办项的内容来源,是由上述人员或部门提出的。他们会根据市场需求、用户反馈、功能改进、技术重构等因素提出新的需求或改进点。

注意点,整理待办项时需注意点:

  • 这时候需求不需要事无巨细,做到最基本的描述,力求简洁。
  • 可以用户故事来描述需求,用卡片方式,前一节有讲解。
  • 低优先级的需求条目可能数量大,而且是粗粒度。
  • 非功能性需求,尽早描述详情,因为可能对整个产品体验产生很大影响。

用户故事拆分方法

把比较大的故事比如 Epic,拆分成小的故事。用户故事的一些拆分方法:

  • 按照工作流程步骤拆分。要完成一个故事,需要哪些步骤,按照一个步骤一个步骤来进行拆分。
  • 按照不同业务规则拆分。
  • 按照操作来拆分。比如增加、删除、管理等操作来进行拆分。
  • 按照依赖先后顺序拆分。比如一个故事开发依赖后一个故事,那么这个后一个故事先开发。
  • 按简单/复杂进行拆分。比如先做简单的故事,后做复杂的故事。

产品待办列表优先级评估介绍

产品待办列表里有很多待办项,哪些待办项首先做,哪些后面做?可以对待办项进行优先级评估然后排序。

对这些待办项进行排序后,接下来,在冲刺(Sprint)计划会议就可以安排哪些待办项先进行开发。

优先级评估的原则依据有哪些?

  • 价值(用户价值和商业价值)
  • 成本
  • 实现难度
  • 风险大小
  • 可发布性

image

用户价值、商业价值

做产品,是解决用户问题,给用户带来价值。需经常问自己:“做这个需求能给用户解决什么问题带来什么价值;不做呢?产品会有什么损失,用户会有什么损失?”
当然,更希望产品给公司带来商业价值。

成本

估算实现的成本。比如人工成本,工作量大小,协同成本。

实现难度

实现这个需求或特性,技术难度高不高。比如:实现此需求代码改动大;需进行技术预研;依赖其它需求的实现等等。
需求细化成更小故事后,可以用工作量来衡量。

风险大小

做需求或特性,风险点有哪些,然后进行讨论评估。比如说做创新产品,不确定性肯定高。

可发布性

对于产品功能,开发后的产品增量需要尽快发布,更早得到用户反馈。

优先级评估方法或模型介绍

产品待办列表的需求评估优先级,可以采用多种方法,下面列举一些常见评估方法。

KANO 模型

此模型通过客户对功能满意度来确定优先级,将功能分为必备型需求、期望型需求、魅力型需求、无差异需求、反向型需求。

from: https://baike.baidu.com/item/KANO%20%E6%A8%A1%E5%9E%8B/19907824

image

KANO模型需求分类:

  • 必备型需求(属性 )(一定要有):有的也译作基本型需求(属性)。用户认为理所应当、必须要有的需求,这些需求必须被满足。当这些需求不被满足时,也就是不提供这些需求,用户满意度会大幅降低;当这些需求被满足时,用户满意度不会得到提升。例如:手机打电话、发短信。

  • 期望型需求(属性):满足此需求时,用户满意度会提升;不满足此需求时,用户满意度会降低。

  • 魅力型需求(属性):用户对这种需求没有太大期望,需要产品经理对用户有深刻的洞察才能挖掘到此隐性需求,属于给用户惊喜的需求。不满足此需求,用户满意度不会降低;满足此需求,用户满意度会急剧提升。有时是产品很 有竞争力的体现。

  • 无差异需求(属性):无论是否满足此需求,对用户满意度都不会产生影响。

  • 反向型需求(属性):有无此类需求,用户根本不在意。若满足此需求,用户满意度反而会下降。

它们的优先级排序为:
必备型需求 > 期望型需求 > 魅力型需求 > 无差异需求

四象限法

四象限法是按照 重要紧急 2 个不同的纬度进行划分,将需求放在二维或三维角度进行优先级的决策。

按重要和紧急 2个维度,将需求任务划分为【重要且紧急】、【重要不紧急】、【不重要但紧急】以及【不紧急不重要】四类。

image

需求任务分成四个象限:重要紧急 > 重要不紧急 > 不重要但紧急 > 不重要不紧急

  • 重要紧急:重要紧急的需求任务,对产品影响很大,第一时间处理。
  • 重要不紧急:这种类型的任务可以把它纳入计划,按计划完成。
  • 不重要但紧急:如果任务小花费时间少,可以马上去执行完成。如果比较耗时,可以另外安排时间或交付给他人去做。
  • 不重要不紧急:可以尽量不做。

注意点:

紧急不等于重要:紧急的任务,不等于重要的任务。比如当我们时刻关注用户反馈,每天都有很多问题,这些有的是紧急但对产品影响不大的问题,在某个时间点完成就可以,对最终结果影响不大。

需求是变的:一般我们都是关注重要且紧急的任务,但是随着需求的调整,其它类型的任务也会上升到重要且紧急的任务象限内。

RICE 框架

RICE 这个框架由 Intercom提出,旨在平衡成本和收益的系统,对需求进行评估。

RICE 框架是一种量化需求优先级的模型,通过 4 个维度来给需求打分,然后算出最终得分。通过比较每个需求的得分来排定需求优先级顺序。

image

(from:intercom:rice-simple-prioritization-for-product-managers)

RICE 框架是由 4 个英文单词的首字母组成,代表的意思分别是:

image

  • ®each触达的广度。需求覆盖的用户广度,触达的用户数量或比例,在给定时间内影响多少产品用户。可以通过埋点获取指标、百度统计等系统来统计一段时间内的一些指标。

比如“每个季度影响多少客户”。例如 项目 1:每月有 500 名客户到达注册漏斗中的此点,其中 30% 选择此选项。每季度覆盖率为 500 × 30% × 3 = 450 名客户

  • (I)mpact影响的深度。需求对每个用户影响的深度。比如 “当客户使用该功能时,该功能将提高多少转化率?20% 提高到了 27% 吗?”。这个指标很难准确评估,这部分评估更加主观一些。

Intercom 对这种主观评估提供了一种评分方法,如下:

Intercom 用 3 - 0.25 的量表来评分:

  • 3 表示 “影响力巨大”。
  • 2 表示 “影响力高”。
  • 1 表示 “影响力中等”。
  • 0.5 表示 “影响力低”。
  • 0.25 表示 “影响力最小”。

这些数字会乘以最终得分,以将其调高或调低。

  • ©onfidence对需求的信心。表示产品经理对该功能或需求的实现难度和成功率的信心,更多是产品经理对需求和用户痛点的理解程度,对估算的信心水平,可以用百分比来表示。

Intercom 提供了一种量表来表示,如下:

用一个百分比量表来表示,避免决策困难

  • 100% 表示 “高度信心”。如果有定量的数据支撑 Reach,定性的数据支撑 Impact,且开发评估了较准确的 Effort,那么 Confidence 就是 100%。
  • 80% 表示 “中等”。有定量的数据支撑 Reach,开发也评估了 Effort,但是 Impact 没有数据支撑,那么 Confidence 就是 80%
  • 50% 表示 “低”。有数据支撑,但是数据的可信度较低,Effort 的波动也可能较大,那么 Confidence 就是 50%.
  • 低于这个数字就是 “完全不可能”

请诚实地问自己:你的估计到底有多少信心支持?

  • (E)ffort工作量。研发的成本,表示开发该功能或需求所需的工作量和资源投入,多个团队合作的人,比如有市场、商务等,涉及团队越多成本越高。工作量预估不确定因素较多。有一些方法:比如人天来估算;以故事点来估算。

Intercom 是用人月来估算-即是一名团队成员一个月能完成的公工作。他坚持使用整数(或 0.5,用于一个月以下的工作),以保持粗略的估计。

Intercom 中关于 RICE 分数的计算:

  • Reach:这将影响多少人?(在规定的时间段内进行估算。)
  • Impact:这将对每个人产生多大影响?(巨大 = 3 倍,高 = 2 倍,中 = 1 倍,低 = 0.5 倍,最小 = 0.25 倍。)
  • Confidence:对需求成功的估算有多大信心?(高 = 100%,中 = 80%,低 = 50%。)
  • Effort:这将需要投入多少“人月”?(使用整数且最少半个月 - 不要陷入估算的泥潭。)

image

(from:intercom:rice-simple-prioritization-for-product-managers)

MoSCoW 模型

MoSCoW 模型是一种需求优先级管理模型。

  • M(Must Have):必须有的功能。这些功能必须要实现的,没有这些功能,产品不能发布。这些都是产品成功的关键任务,通常是最小的 MVP 任务。代表最高优先级

  • S(Should Have):应该有的功能。这些功能重要,但不是必须,如果时间不急或有其它方式来实现,可以推迟到下一个阶段或稍后来实现。代表次高优先级

  • C(Could Have):可以有的功能。这些功能是客户期望的,锦上添花的功能,但不是必须的,可以提高客户体验或客户满意度。如果时间允许资源充足,就可以实现这些功能;如果没有时间,就会在下一个阶段做。代表次次高优先级

  • W(Won’t Have):不需要的功能,回报率很低,不会列入当前开发计划中。代表最低优先级

产品Backlog需求清单模板

产品负责人维护管理的一个已排序,已估算,有用户或商业价值度量的一个需求清单列表。每次开会时可对这个列表进行增加、调整列表里的需求。

一般会用在线敏捷开发软件来记录产品backlog需求清单。简单的话可以用 Excel 表格记录。

清单模板如下图:

image

这只是一个示例模板,里面的每一格标题(如商业价值、实现难度等等)可以根据自家需求情况进行增加、删除和调整。

欢迎到公号评论:敏捷开发:Scrum 中的 Product Backlog 详细介绍

参考资料

  • https://www.intercom.com/blog/rice-simple-prioritization-for-product-managers RICE 框架
  • https://www.visual-paradigm.com/cn/scrum/what-is-product-backlog-in-scrum/1000

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

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

相关文章

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

声明 因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱 ESXI主机为192.168.20.10 VCSA为192.168.20.7,后台为192.168.20.7:5480 后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来 第一阶段…

110.【C语言】编写命令行程序(1)

目录 1.前置知识 "命令"的含义 运行C语言程序 2.介绍 main函数的参数 实验1 执行结果 实验2 执行结果 修改代码 实验3 分析 方法:遍历数组argv[]中的所有参数 执行结果 修改代码 执行结果 1.前置知识 "命令"的含义 WINR输入cmd,在cmd窗口下…

Leecode刷题C语言之半有序排列

执行结果:通过 执行用时和内存消耗如下&#xff1a; 代码如下&#xff1a; int semiOrderedPermutation(int* nums, int numsSize) {int first 0, last 0;for (int i 0; i < numsSize; i) {if (nums[i] 1) {first i;}if (nums[i] numsSize) {last i;}}return firs…

RPC设计--从reactor设计 (IOthread)

主从reactor架构 一般的一个网络IO库都是主从reactor模式&#xff0c;即主线程中有一个MainReactor&#xff0c;其负责监听ListenFd&#xff0c;当接受到新的用户连接时&#xff0c;返回的clientfd并不会加入的MainReacotr&#xff0c;而是在子线程&#xff08;这里称为IO线程&…

Scala中求斐波那契数列的第n项

求斐波那契数列的第n项 问题&#xff1a;求 斐波那契数列的第n项 记&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况&#xff08;直接能求的&#xff09;&#xff1a;f(0) 0,f(1) 1 2.递归情况&#xff08;大事化小&#xff0c;自己…

【Golang】Go语言编程思想(六):Channel,第六节,并发编程模式

并发模式 下例重新对 channel 的用法进行回顾&#xff1a; package mainimport ("fmt""math/rand""time" )func msgGen(name string) chan string {c : make(chan string)go func(name string) { // 在这个 goroutine 当中向外发送数据i : 0fo…

重生之我在异世界学编程之C语言:深入结构体篇(上)

大家好&#xff0c;这里是小编的博客频道 小编的博客&#xff1a;就爱学编程 很高兴在CSDN这个大家庭与大家相识&#xff0c;希望能在这里与大家共同进步&#xff0c;共同收获更好的自己&#xff01;&#xff01;&#xff01; 本文目录 引言正文《1》 结构体的两种声明一、结构…

Scala递归中求汉罗塔游戏的步骤

记&#xff1a;f(n,"A","B","C")表示n个盘子从A柱子上移动到C柱子上&#xff0c;借用B柱子的过程 f(要移动的盘子的个数&#xff0c;起点&#xff0c;辅助柱子&#xff0c;终点) 1.基本情况(直接能求的)&#xff1a;f(1,"A","B&…

输入url到显示主页的详细过程

从浏览器地址输入url到显示主页的过程&#xff1f; 主要分为&#xff1a;DNS解析&#xff0c;TCP连接&#xff0c;发送HTTP请求&#xff0c;服务器处理请求&#xff0c;浏览器接收HTTP响应&#xff0c;断开连接 DNS解析&#xff1a; 浏览器发起一个DNS请求到DNS服务器&#…

使用C#通过ColorMatrix对象为图像重新着色

此示例产生了一些令人印象深刻的结果&#xff0c;但实际上非常简单。 它使用其他几个示例演示的 ImageAttribute 技术来快速操作图像的颜色。 下面的AdjustColor方法启动图像着色的过程。 // Adjust the images colors. private Image AdjustColor(Image image) {// Make the …

手机租赁系统开发全流程解析与实用指南

内容概要 在如今快速发展的科技时代&#xff0c;手机租赁系统已经成为一种新兴的商业模式&#xff0c;非常符合当下市场需求。那么&#xff0c;在开发这样一个系统的时候&#xff0c;首先要从需求分析和市场调研开始。在这一阶段&#xff0c;你需要了解用户需要什么&#xff0…

unity打包web,如何减小文件体积,特别是 Build.wasm.gz

unity打包WebGL&#xff0c;使用的是wasw&#xff0c;最终生成的Build.wasm.gz体积很大&#xff0c;有6.5M&#xff0c;有几个方法可以稍微减小这个文件的大小 1. 裁剪引擎代码&#xff1a; 此步可将大小从6.5减小到 6.2&#xff08;此项默认开启&#xff0c;只是改了裁剪等级…

字符集编码

由于计算机只能存储和处理二进制的“0”和“1”&#xff0c;无法处理其他的字母、数字和符号&#xff0c;所以就需要有某种东西来达到类似桥梁的作用——例如图1-7中的ASCII——通过它&#xff0c;人们就可以看懂用计算机表示字母、数字或其他符号。 人们能够想到的最直接的方…

OceanBase 社区版 4.0 离线方式升级bp1至bp2 指南(含避坑总结)

注&#xff1a;目前社区版对 4.0 升级 bp1至 bp2也未有完善的文档&#xff0c;本次升级中也是遇到不少坑&#xff0c;写本文也希望对OB感兴趣的可以尝试少些遇坑。 也希望对升级有更好方式建议方式的朋友一起切磋交流&#xff0c;以便再进一步完善升级方案。 第一次做OB的升级&…

基于SSM框架的社区医院管理系统(计算机毕业设计)+万字说明文档

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可 操作系统…

视频安防监控平台:Liveweb视频监控管理云平台方案

LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台&#xff0c;可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华&#xff0c;海康SDK等&#xff09;的视频设备接入&#xff0c;支持GB/T28181上下级联&#xff0c;RTSP\RTMP转GB/T28181&#xff0c;云台…

Linux进程概念-详细版(二)

目录 前言&#xff1a; 进程优先级 基本概念 查看系统进程 PRI与NI 查看进程优先级信息 通过top命令更改进程的nice值 通过renice命令更改进程的nice值 四个重要概念 环境变量 基本概念 常见环境变量 查看环境变量的方法 测试PATH 测试HOME 测试SHELL ​编辑 …

前端监控方案sentry整体概览

查看PDF 目****录 1. Sentry介绍 1.1. 编写目的 1.2. 名词定义 2. Sentry监控原理概述 2.1. 常见的性能优化指标及获取方式 2.2. 常见的前端异常及其捕获方式 3. Sentry?整体架构 4. Sentry安装部署 4.1. 前提条件 4.2. 安装 5. Sentry环境配置 5.1. 初始化配置 …

C++11相关知识点

auto、decltype自动类型推导 auto并不代表实际的数据类型&#xff0c;且auto并不是在任何场合下都能推导出变量的实际类型&#xff0c;使用auto必须初始化。 auto 变量名 变量值&#xff1b; 当变量不是指针或引用类型时&#xff0c;推导的结果中不会保留const、volatile关键…

【面试】分布式锁专题

1.你说一下什么是分布式锁 分布式锁是一种在分布式系统环境下实现的锁机制&#xff0c;它主要用于解决&#xff0c;多个分布式节点之间对共享资源的互斥访问问题&#xff0c;确保在分布式系统中&#xff0c;即使存在有多个不同节点上的进程或线程&#xff0c;同一时刻也只有一…