怎样度量需求质量

怎样度量需求质量

做正确的事 OVER 忙着做事

一天晚上,给娃讲绘本《肚子里有个火车站》,故事用形象生动的比喻讲解消化吸收的原理与科学饮食的重要性。 绘本《肚子里有个火车站》

简单描述一下:

  • 我们的肚子里有个火车站,吃进来的食物会被小精灵们加工好后进行装车,然后以一定的频率发车。
  • 有时很久没有食物进来,小精灵们就会闲的睡大觉。
  • 有时突然一下食物堆积成山,小精灵们就加班加点忙个不停。
  • 进来的食物需要大小适宜,当食物块儿太大时,就会把小精灵砸晕,他就没法工作了。
  • 有时吃了太凉或太刺激的食物,火车站就会停摆。
  • 小精灵们无法继续工作,就会罢工。

讲着讲着,发现这就是我们的版本火车呀,简直不能更像。

发布周期对需求质量的高要求

周期性发布:需求质量要求高

为了保证版本火车顺利发车,我们对需求的质量有着怎样的期待呢? 需求是研发过程的输入

  • 高价值:少吃垃圾食品,多吃高质量的食物,每一条需求都应追溯到业务价值或用户诉求
  • 稳定的供给:以相对稳定周期均匀的供给,不能一次太多或太少
  • 稳定的支出:以相对稳定的频率均匀的支出,保证上线的范围相对稳定
  • 便于分工:搭配合理、营养均衡,既要交付价值,也要留有余量以应对紧急需求
  • 大小适宜:太小太细碎会增加管理成本,太大则无法直接进入研发,需要进一步拆解

按需发布:需求质量要求更高

刚才我们讨论的是周期性发布的情况,那如果是按需发布,对需求质量的要求可以降低吗?

考虑到按需发布和周期性发布的差异在于发布频率,两者在需求规划阶段的思考侧重点就不尽相同。

周期性发布时,需求需要如期交付,所以在进行迭代规划时,我们按照迭代容量,从带优先级的需求池中选取适量需求放入迭代即可。 按迭代容量和优先级 从需求池选取需求排进迭代

按需发布在规划时需要识别可以独立交付的功能,这对需求拆分和优先级排序是更大的挑战。如何进行端到端的需求拆分,以便于每次发布都能独立交付价值,是在这个过程中需要重点考虑的问题。因此按需发布对需求质量的要求会更高。 按需发布 每次发布可以独立交付的功能

高质量需求的判定

我们怎样知道需求是满足预期的呢?好的需求应该长成什么样子?

  1. 需求本身的质量:是否满足INVEST原则
  2. 需求的验收标准是否清晰:明确知道需求实现完成,可进一步流转
  3. 需求的内容相对稳定:可响应少量的必要变化,不建议频繁变更
  4. 需求拆分是否恰当:拆分合理便于协作与管理
  5. 需求的范围相对稳定:可支持适量的“高价值需求”插队
  6. 需求的优先级明确:需提供优先级排序,便于团队安排工序

概括一下就是:价值精确、时效适宜、拆分得当、排序合理。

研发过程中的需求痛点

供给困难

项目A的需求供给情况不乐观,马上要进入迭代了,需求卡片还没有准备好。小伙伴们面面相觑,不知道该不该进入迭代。找到需求分析师问原因,“客户就是不批卡呀,我能怎么办,我也很无奈。” 3cXc5EQuLrV2ak0xeFoc6ybe83gpM4HSr-tpCv4q7fEPhcZYVfeOHnNM5SFUMQPvO2DERe6vtZBHJc8Y7eyxhBZU2OBfJh8_Vp_ijALZiTOQAXVZVuWGOefWPWccUejIZHJ_D5yq.png

质量堪忧

项目B的需求供给相对稳定,但每次故事启动时问题太多,考虑较少。产品美眉听完问题,经常瞪着茫然的大眼睛无辜的望着大家,虽然很美但团队也是很崩溃的。主要还是我们的业务上下文过于复杂,老司机也难免翻车,何况小萌新。 pasted-image-2.png

频繁变更

项目C需求供给稳定,质量尚可,但经常是研发做着做着就来个紧急更新,不是需求变了就是方案变了,一顿返工是免不了的。业务方思维活跃,总想迭代需求,一来二去团队要消化不良。

*.png

需求痛点有多痛,真是“不幸的人各有各的不幸”。团队里每个人都很努力,但又都很痛苦。当去找业务方或者客户提需求或要资源时,又往往难于自证,没有说服力当然要不来支持。

需求质量度量:可视化痛点

在什么情况下需要度量需求的质量?当需求的痛点对团队造成极大的浪费时,我们需要针对痛点做根因分析,必要时可以度量需求的质量,为持续改进提供定性或定量的依据。

那么,如何度量需求的质量?

评估需求本身的缺陷

首先我们看需求本身的质量问题,即需求阶段引入的缺陷,主要体现在以下几个方面:

  • 价值模糊:对用户而言无法清晰定义需求价值,或者需求描述与用户价值没有直接因果关系
  • 无法验收:验收标准描述不清晰,或者验收点拆分不合理
  • 粒度过大或过小:粒度过大则无法直接进入研发,需要进一步拆解;粒度过小会增加管理和协作的成本
  • 强依赖:需求之间不独立,或者拆卡不合适,没有端到端的拆分需求价值
  • 细节限制:需求描述没有站在交付价值的角度,而是限制过多实现细节
  • 难以评估工作量:通常伴随价值模糊或者粒度不合适,往往是问题定位不清晰导致
需求的缺陷
需求的缺陷

评估需求时效性

再来看未满足需求交付对时效性的要求:

  • 需求延误:需求未如期交付研发的次数,或者累计延误天数
  • 变更:需求变更的频率或者范围,或者允许变更的时间窗
在一定时间窗内,允许小范围变更需求
在一定时间窗内,允许小范围变更需求

敏捷拥抱变化,当需求变更不造成大量返工时,是允许需求变更的。如在某些团队可能是需求过半,在另一些团队可能是内部集成前。当然变更的范围也需要尽量少,如接口字段追加或更新还可以接受,但如果整个集成方式都要变,那就需要触发新的迭代规划,需要重新估算工作量进行排期。

评估低质需求带来的影响

最后评估低质量的需求对团队造成的恶劣影响:

  • 返工:由于需求缺陷或变更造成返工的工作量
  • 前置时间:由于需求缺陷或变更造成产能降低,价值交付周期延长
  • 机会成本:那些被浪费掉的产能,如投入生产所带来的的潜在价值
交付价值与研发投入之间的关系
交付价值与研发投入之间的关系

在评估低质需求的影响时,需要注意:

  • 或许在某个平衡点之前,牺牲一部分质量需求能够快速交付更多价值,此时比较经济的做法是更快的交付
  • 但在持续投入超过平衡点后,低质需求会导致大量的浪费,此时提升需求质量是效果显著的

需求质量度量的效果评价

在需求阶段进行度量和改进,需要整体评估投资回报率。原因在于,需求是在整个研发周期的早期阶段,在此优化的效果可能当时并不明显。一方面是回报阶段的后置,需求改进可能最终改善的是交付质量,或者整体产能。另一方面是回报周期的延迟,有可能在需求阶段投入改进的成本,要在一个季度后才能略见收益。

既然需求质量改进的投资效果不明显,我们为什么还是要度量并改进呢?原因其实是相同的,也正是由于需求阶段是整个研发过程的前置阶段,所以需求的质量才尤为重要。总该找准方向再深耕,方向不对,做得越多错的越多。

做正确的事 OVER 忙着做事,研发团队多关注需求的质量,才能保证后续研发过程的高质高效。

1245953-David-Cottrell-Quote-Doing-the-right-thing-isn-t-always-easy-in.jpeg

推荐阅读:

All rights reserved
Except where otherwise noted, content on this page is copyrighted.