产品待办列表包含了所有最终将被纳入产品的已知功能。无论这些待办事项是以用户故事、工作故事,还是简单的几句话的形式存在,为团队始终开发最高优先级的功能而对这些事项进行排序是至关重要的。除了构建正确的功能外,按照正确的顺序构建它们也同样重要。以下是考虑如何优先级排序产品待办列表时需要关注的五个关键点。
因素1:价值
让我们从最重要的一个因素开始:价值。虽然考虑一个功能的价值是理所当然的,但“价值”这个词其实相当模糊。价值是衡量某项工作对特定受众的有用性或影响的一种指标。敏捷开发团队所追求的大多数工作都会对用户有价值。但有些工作可能只对团队本身有价值,还有一些工作则可能同时对用户、利益相关者和团队成员都有价值。例如,考虑重构:改善代码结构而不改变其行为。由于重构使代码更易于维护或修改,因此它对开发者具有很高的价值。然而,重构的成本通常是合理的,因为它也惠及了用户。如果代码更加可维护,用户遇到的错误就会减少。同样,改进后的代码意味着用户可以更快地获得该产品领域的新增功能。(关于如何证明优先进行重构的合理性,可以参见“四步说服产品负责人优先安排重构工作”。)在考虑一个功能的价值时,思考其价值随时间如何变化是很重要的。一个功能今天可能非常有价值,但之后的价值可能会大大降低。我见过的一个最强有力的例子,是在与一个为支持梦幻体育联赛制作软件的团队合作时遇到的。某些功能需要在选秀日当天就准备好,那时所有玩家都在选择他们的队伍。如果这些功能在选秀日不可用,玩家很可能会转而使用其他平台来组建他们的联盟。在这种情况下,延迟成本是非常巨大的。
因素2:成本
在优先级排序时要考虑的第二个因素是成本。最大的成本通常是产品团队开发一个功能所需的工作量。大多数团队使用故事点来估算产品待办事项的工作量。其他团队则用人天、理想时间或其他类似的单位来估算工作量。
在某些情况下,可能还需要考虑额外的成本。当前一个常见的考虑因素是依赖各种AI产品的功能的持续交付成本。这些产品通常包括每次使用的少量费用,但这些费用在大规模使用时肯定会累积起来。无论团队使用何种单位来估算其产品待办事项,开发和支持一个功能的成本都应该作为该事项优先级的一个因素。例如,如果其他条件都相同,一个被团队估算为5个故事点的事项应该比一个被估算为20个故事点的功能优先级更高。无论团队使用哪种估算单位,这一点都是成立的。
因素3:学习
在优先级排序时要考虑的第三个因素是:通过完成某个特定的产品待办事项,团队能学到多少东西?如果开发某个待办事项能让团队学到一些东西,你可能希望尽早开发这个事项,以便有时间根据所学采取行动。如果学到的东西太晚,你就没有时间从新知识中获益了。学习可以有两种形式。它可以是关于产品的,也可以是关于项目的。
了解产品
当团队开发一个功能并收到反馈时,就会了解产品的情况。如果用户喜欢这个功能,就优先考虑做更多来增强该功能或创建更多类似的功能。如果用户不喜欢它,则考虑移除该功能或降低相关功能的优先级。
了解项目
了解项目指的是团队成员获得的关于如何开发产品或解决方案的知识。例如,假设一个团队打算使用一种他们从未使用过的技术来构建产品的某一部分。当团队成员使用这种新技术开发第一个产品待办事项时,他们会了解到如下信息:
- 这项技术是否如预期那样工作?
- 使用新技术的估算是否需要修订?
- 这项技术能否用于产品的其他部分或项目中的其他地方?
在考虑敏捷待办列表优先级时,不要忘记学习的重要性。一个功能功能有可能让团队及其利益相关者了解用户需求或项目现实,这可能足以成为将其列为首要任务的理由。
因素4:风险
在优先级排序时要考虑的第四个因素是开发产品待办事项所固有的风险。如果某件事有风险且你必须做,那么应该尽早去做。你希望尽早知道这种风险是否会成为现实。另一方面,如果某个功能有风险而且你可能不需要开发它,那么可以推迟这项工作,直到明确需要开发它为止。
因素5:依赖关系
在优先级排序时要考虑的最后一个因素是产品待办事项之间的依赖关系。某些事项本身可能不是高优先级,但它们是交付其他事项所必需的。在这种情况下,需要将这个支持性的但较低优先级的事项在待办列表中提前,以确保在依赖它的事项之前完成。
举个例子,我曾帮助一个夏令营使用Scrum方法。在他们的产品待办事项中有一项是重新粉刷所有的独木舟。这项工作是高优先级的,因为他们希望在营销材料中展示闪亮的新漆独木舟的照片。
但是,粉刷独木舟依赖于另一个待办事项:打磨和修复任何需要修理的独木舟。从技术上讲,修理独木舟的工作其实可以在夏令营开营前一两天才进行,但由于需要提前很久拍摄独木舟的营销照片,这个修理独木舟的事项在产品待办列表中的优先级被提高了。
正式的待办事项优先级排序技术
有许多优先级框架可以帮助您更细致地考虑这些因素,包括卡诺模型(Kano Model)、RICE评分模型和相对权重法。即使使用这些正式方法,在创建产品路线图时,这里列出的因素也应被考虑,即使它们不是这些模型中明确的一部分。
但是,您只需考虑这五个因素,就可以对产品待办事项进行堆叠排序。在这样做时,我不建议通过一些花哨的公式将它们组合起来。功能的价值及其成本——即我们提到的第一个和第二个因素——是最重要的。因此,首先基于成本和价值进行优先级排序,然后使用其他三个因素调整优先级并解决冲突。例如,假设产品经理或产品负责人已经根据某个事项的价值和风险将其排到了三到四个迭代之后。此时,可以考虑学习、风险和依赖关系这三个因素。如果其中任何一个因素很重要,就可以将该事项提前一到两个迭代。
有效确定优先级的5个因素
在敏捷和Scrum团队中,产品负责人负责按优先级顺序维护产品待办列表。无需使用任何正式的产品待办事项优先级排序技术,一个简单的方法是记住五个因素。首先考虑价值和成本,然后考虑影响产品待办事项优先级的其他因素:学习、风险和依赖关系。
你在敏捷规划过程中这样做时,你的团队不仅会构建正确的东西,还会按照正确的顺序来构建它们。
原文地址:5 Key Factors for Effective Product Backlog Prioritization
注:部分图片来源于网络
关于作者
【作者】Mike Cohn
Mike是敏捷联盟及Scrum联盟创始人之一,是帮助企业适应和改进敏捷过程及技术,以建立极致高效团队的专家。著有《用户故事与敏捷方法》,《敏捷估算与规划》,《Scrum敏捷软件开发》以及视频课程《更好的用户故事》。
Scrum中文网是全球第一个Scrum中文网站,中国最早的Scrum和敏捷教育及推广机构,也是国际Scrum联盟(ScrumAlliance)官方授权教育机构,Scrum.org官方合作培训机构,大规模敏捷SAFe官方机构SAI中国区授权合作伙伴。
Scrum中文网是国内领先的敏捷培训及教练咨询机构,作为中国敏捷教练的摇篮,启蒙和培养了数万名敏捷专业人士,帮助数百家知名企业成功转型敏捷。