原创:【Scrum实战】三、需求优先级确定

需求的优先级,在每个迭代前都要根据产品的现状,做个重新的排序。在这篇文章前,我先说下我们公司关于需求的几个定义:
\color{red}{注:以下几个概念,主要来自于一个规模化敏捷框架:SAFe和一本书:《用户故事地图》。}

SAFe中关于需求的分层定义

上图是SAFe中关于需求大小的一些定义,我们公司还不是很大,所以目前还没有采用第三层的Capability,对需求的层级只做了Epic-Feature-Story三层划分。
《用户故事地图》一书也是按照三层结构,对需求做了Backbone-Feature-Story的划分。

这三层的划分怎么理解呢?我举个大家都比较熟悉的例子说明下吧:
比如我们要开发一个电商网站,电商网站一般都包含:

  • 账号系统
  • 商品系统
  • 订单系统
  • 会员系统
  • 库存系统
  • ……

这一级的需求,我们一般称作Epic/Backbone。

账号系统下面又会包含以下几个模块:

  • 注册
  • 登录
  • 找回密码
  • 详细资料
  • ……

这一层级的需求,我们公司一般称作Feature。

详细资料下面又会包含以下几个功能:

  • 完善基本资料
  • 修改基本资料
  • 绑定邮箱/手机号
  • 设置密保问题
  • ……

这一层级的功能,也就是可以直接拿来开发的需求,我们称作Story。

我在本文一开始说的:

需求的优先级,在每个迭代前都要根据产品的现状,做个重新的排序。

这个排序,主要针对的是Feature层面的排序,不是对Story或Epic的排序,因为Story粒度太细,Epic粒度又太粗了。

下面介绍具体的排序方法:

决定需求的优先级顺序有两种方法:定性评估法和定量计算法。定性评估法是通过评估影响需求排序的几个要素,为需求排出先后顺序;定量计算法是为影响排序的每个要素赋予一个数值,然后用公式计算出需求的唯一顺序。

3.1. 定性评估法

决定需求的优先级顺序有以下几个要素要考虑:

3.1.1. 延期成本

延期成本是当工作或里程碑延期交付所产生的财务成本。延期成本将价值和延期交付的时间合并起来。延期成本可能是创造的价值,也可能是经济损失。

若想知道一个产品、一个特性的延期成本,只需要问一个问题:“如果我们晚交付一个月的话,会给我们造成什么损失?”或者正向问法:”如果我们提前交付一个月的话,会给我们带来什么价值?“

上篇文章还在为产品优先级决策犯愁吗:教你服务级别分析方法介绍了延期成本,以及如何从延期成本的角度区分需求的服务级别。本文不再赘述。为需求排序,延期成本是首要考虑的因素。当延期成本无法区分出先后顺序的时候,比如:在很多时候,你会发现很多需求互相对比,它们的价值相当,时间上没有一定非要什么时候上线的期望,这时候,可以考虑下面的几个要素。

3.1.2. 实现成本

对于同等价值和时间要求的需求,团队通常会选择成本低、交付速度快的需求。因为越早完成,越早产生价值,并及早获得用户反馈,增加我们对用户的认知。

3.1.3. 风险和不确定性

风险和不确定是两个相互伴随的两个兄弟,但却是两个不同因素:不确定性可能蕴藏着风险,并不一定会带来风险,但是风险一定是带有不确定性。

如果需求具有不确定性,比如:在一定条件下这个需求会引爆市场,但是这个条件何时到来还不知道,那么一般采取的方法是推迟决策,同时密切跟踪市场动向。早做了也是浪费,晚做了就白做。

如果需求的实现有风险,比如:需求需要对已有代码模块的实现逻辑甚至架构有重大冲击,尽管这个需求价值很高, 团队往往会会喜欢推迟到以后再做,其实这是逃避风险的自然反应。现在不做,会继续堆积现有实现逻辑的代码,以后再做这个需求带来的冲击会更大。因此,对于这种有风险的需求,如果决定必须做,就要早做,直面风险。

3.1.4. 依赖

也许你知道用户故事的INVEST原则,INVEST其中的I(Independent)就是指的独立性,即:拆分用户故事尽量要避免相互依赖。但是依赖是不可能完全避免的。可以通过合并两个依赖的故事,或者重新拆分来避免依赖。但是即便这样,也无法完全避免依赖。

如果最后还是发生了故事A依赖于故事B,那么最好A和B错开一个迭代来实现,至少错开一周。尤其对于依赖的用户故事由其他团队交付的情况,进度不受自己团队控制,更需要错开节奏。如下图:

如何解决依赖?

对每个需求就这4个要素都分析后,就可以排出优先级顺序。

3.2. 定量计算法

规模化敏捷框架SAFe(Scaled Agile Framework)提出了一种定量计算法来评估需求的优先级,称为WSJF(Weighted Shortest Job First: 加权最短作业优先)。

计算公式如下:

WSJF

其中分母的工作规模部分大家比较熟悉,即估算的需求规模(故事点方法、理想时间方法等)。

分母部分的延期成本包括三个因子:

3.2.1. User and Business Value(用户和商业价值)

指的是对客户或商业的相对价值,比如:

用户更喜欢哪个?

对盈收有什么影响?

不做会产生什么潜在的负面影响?

3.2.2. Time Criticality(时间关键性)

指的是给用户的商业价值随着时间的推进如何变化。比如:

是否是固定交付日期类型的需求?

用户是否会愿意等待,还是会选择其他产品?

在某个时间窗口不上线的话,是否会影响用户的满意度?

3.2.3. Risk Reduction& Opportunity Enablement(减少风险或帮助获取新机会)

指的是除了上面的第1个和第2因子需要考虑因素之外,这个需求还能为业务带来哪些价值, 比如:

是否降低产品以后交付某些必要特性的风险?

是否会学到我们不知道的知识或信息?

是否会带来新的商业机会?

这样拆解后,WSJF的公式细化为:

WSJF公式

如何操作呢?将所有特性列成表,如下:

WSJF操作方法

对这个表中WSJF公式中的每个因子,采用与用户故事的故事点相对估算类似的方法做估算。比如,对于工作规模这一项,选择一个工作规模最小的特性作为基准,它的工作规模设为1(注意:WSJF公式中的每一项,都要选中一个特性作为相对估点的1),其他特性的工作规模与之相对比, 采用近似斐波那契数列1, 2,3, 5, 8,13, 20…为单位。如果特性A是基准特性的3倍,那么特性A的工作规模就是3。

为WSJF公式分子的其他因子做同样的相对估算法,即找到一个因子最小的基准特性,然后其他特性与之相比较,从而得到相应因子的估算数值。

就每一个特性,将WSJF的每个因子做相对估算后,就可以计算出每个特性的WSJF,这样你就得到了量化的需求排序。

常见疑惑:WSJF适用于所有需求的排序吗?

不是的。在SAFe里,WSJF可以适用于大粒度的Epic和Feature级需求,不适用于小颗粒的用户故事级需求,原因是用户故事通常很小,分母的几个因子不容易对比出差异。此外这种定量计算法在团队里应用过于沉重,因为需要对每个需求估算四个因子,不止是需求规模这一个因子,所有估算的耗时翻了四倍。

3.3. 操作提示

优先级是相对的,不是绝对的。只有将两个需求放在一起,你才能判断出哪个优先做,哪个靠后做。单独地说某个需求优先级高是没有意义的。

公式看着很诱人,貌似更科学,但是不要迷信。量化计算法评估出的优先级也只是参考。需求的排序不是完全用数学公式可以计算的,而是个理性评估加艺术直觉的快速决策过程。团队的交付节奏越密集、交付速度越快,花在排序上的时间就可以越少,因为即使排得不合理,或者不确定,下次发布马上就可以发布你排在后面的需求。

常见疑问:需要对整个Backlog排出唯一的先后顺序吗?

通过以上介绍的方法,足以对哪些需求排在整个Backlog的顶部做出区分。然后,对于排在Backlog顶部的当前版本的需求,以及最近一、两个迭代的需求排出唯一先后顺序,对于以后版本以及一、两个迭代以后的需求,不需要排出唯一的先后顺序,也没有足够的认知来排出。随着持续地发布产品,我们通过用户的反馈对需求的优先级认识会有变化。因此,过早排序也是一种浪费。

当然,比决定优先级更重要的是决定做与不做。

后记:关于SAFe和WSJF的截图,使用的都是SAFe官方培训的PPT文档,我暂时还不知道这些PPT可不可以随便分享,如有需要,可以留邮箱我单独发给你。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容

  • 作者:Erica Sadun,原文链接,原文日期:2016/08/08译者:Cwift;校对:Cee;定稿:CMB...
    梁杰_numbbbbb阅读 265评论 0 0
  • 今天下午,还没有放学的时候,杨老师就领着我们两个到了实验教室,杨老师她们做实验的同学还好了,自己的座位还有实验盒子...
    璇璇1阅读 203评论 0 1
  • 一树一菩提 一沙一世界,本就有一物 处处惹尘埃……
    3310b38e2780阅读 191评论 0 0