如何掌控排期
导读
产品小李:小哥有没有空,XX 需求领导要得急,加个班争取赶紧上线呗? 研发小哥:(白眼)没空。 产品小李:那什么时候有空呢? 研发小哥:有空的时候;)
研发二哥:小李啊,你的功能这个版本上不了了,设计的时候没考虑到对中后台的依赖,来不及噜。 产品小李:没事,我习惯了(已泪目)
主管大宝:这个 需求比较急,你和技术同学讲一下,大家加加班,赶一赶进度。 产品小王:我知道你很急,但请你先别急。技术同学排期满了。 主管大宝:你想想办法。 产品小王:要不,我抓紧学下代码?
相信大家经常会遇到上面这些场景,可能此时此刻就在发生。可能因为职场经验不足做不好项目管理,或者是公司产研管理办法不完善。让我们一起探讨下这些问题发生的原因和场景的对策。
在开始之前,你需要先大致了解一下互联网公司常见的进度管理方式:Scrum,最常见的互联网产品研发流程
每个Sprint就像是一艘集装箱船,Backlog里的需求就像是岸上的货柜,产品经理就是吊机,负责将一定数量的货柜装到船上。研发团队便要驾驶这艘船按时、安全地抵达对岸。
当项目比较急,需要团队加班时,也就是出现文章一开始的情况时,这意味着船上的货柜会变 多,航行的安全性开始下降,甚至有可能会导致倾覆。对应的则是团队的研发质量可能下降,甚至有些功能最终还是来不及上线。
当载货量匹配不合理时,船的载货量不足,浪费了一次航行机会,提高了成本。也降低了岸上货柜的物流周期。对应的则是产品迭代缓慢,用户怨声载道。
当货柜随意摆放时,天知道会发生什么,抵达后卸货都困难。 对应的是研发过程管理混乱,遗漏需求、随意更改需求时有发生,最终用户对新功能甚至会感到不解。
回到文章开头引用的例子,实际上都是压缩排期的情况。压缩排期通常会牺牲了员工的正常休息时间,其次是它经常伴随着需求质量的下降。加班好理解,为什么需求质量会下降呢?
从研发的视角来看,压缩排期是一件很不爽但大概率只能妥协的事情。为了抓紧时间上线,研发可以简化功能,比方说要求配置的地方改成直接代码,俗称“写死”。或者代码逻辑耦合度较高的功能直接通过代码复用来实现。
对于排期来说,研发的确实现了预期目标,按时加班完成了工作。但对功能或需求而言却是一种错觉。比方说简化功能,后期仍需要通过处理改成可配置;代码逻辑耦合度过高,后续的维护成本和拆分成本都会显著提升。一来一去,时间成本并没有通过压缩排期降低,反而可能出现了增加的情况。一时的提速只是一种错觉,实现错觉是有代价的,而且代价未必小。
那么作为产品经理,我们应该如何保障每一次航行(排期)的安全和性价比呢?
方法可以归纳为一个成语:知己知彼
- 知彼:知悉需求框架及细节,并明确需求的重要度和紧急度
- 知己:熟悉研发团队的交付能力,以便准确给出上线时间预估
知彼,从感性走向理性
无论产研过程效率和质量如何,产品经理都需要做到对产品需求(Backlog)的准确排序。但是每天有这么多人提需求,排序应该听谁的呢?首先,你需要先将需求理解透彻。
我们要认知到需求也有“研发过程”,从被感性地提出到真正成为一个理性的需求,需要一定的分析过程。就像产品功能会有待排期、研发中、测试中、已上线一样,产品需求也会有不同的状态,可归纳为:Talk、Think、Doc。
Backlog 的三种状态
Talk - 记录感性需求
需求的来源非常广泛,用户、老板、 业务方、竞品都是需求来源的主体。当有人找你提出新需求时,我称之为 Talk 阶段,并喜欢把这个阶段的需求称之为“感性需求”。
有这么几个场景:
- 老板火急火燎地跑过来,指着手机上某个竞品的功能,问你做个类似的大概要多久;
- 用户从社区加到了你的微信,说某个产品都有了 XX 功能,问你什么时候能做;
- 业务方直接 Call 给你,让你在某个版本定制一个功能,原因是急着给一位大客户用
在 Talk 阶段,需求优先级往往由需求提出方单方面提出,且往往都是最高优先级。但随着时间的推移,似乎他们又不是那么急了,甚至忘了自己提过什么。
* 这和生完孩子弃养有什么区别?!(震怒
在这个阶段,需求方往往会非常着急地阐述遇到的问题,产品经理需要在这个阶段尽可能收集完整的需求目的与背景,通过与需求提出方进行更深入的沟通,确定是否有问题?有没有出现过同类现象?以此窥见需求背后的故事(User Story)。
当问题比较复杂时,可以要求需求方以文(如 BRD,商业需求文档)的形式提交需求、价值分析,由产品团队进行评估。如果在这个阶段遗漏了关键信息,则很可能对后续的需求分析、研发上线带来一连串影响。
在 Backlog-Tal k队列中,产品经理只需要记录原始信息即可,无需加入自己的判断。核心是要做到:需求不漏、信息完整。 实际工作中,Talk 状态的需求可能最终并不会往后推进,同事提出的感性、冲动需求最终会被打回,这很正常。因此,在这一步不应投入过多的分析精力。同时,因为研发模式是基于 Scrum 理念每几周排期一次,只需要在下次 Sprint 开始前确认优先级即可,无需立即确认并给出承诺。
Think - 思考解决方案
当信息收集完整后,产品经理开始利用产品思维分析需求的合理性、可能的解法等。通过与研发、关联团队的沟通给出设计思路。但是要特别注意思考的缜密性:
- 务必将自己的设计思路与需求方再次确认,切忌因为胆怯、怕反复修改而跳过该步骤直接往后推进。大部分产品功能上线后反而被业务方吐槽的情况都是因为省略了这步。沟通很重要;
- 务必与关联团队沟通清楚前提条件,尤其是产品线庞杂的公司,产品之间存在大量的合关系。例如某个功能依赖于中台提供连锁商户管理能力,但中台目前只有个体商户管理能力,那就首先需要中台进行产品升级,然后才是进行下一个需求。顺序搞反了必然导致研发受阻;
- 务必帮助需求方梳理利害关系。需求方 A 提出的需求必然会提高 A 的工作效率,但是否会影响 B、C、D、…团队?这需要产品经理在更高的维度反复推敲;
- 务必面向未来深挖,引导需求方多想几步,将可以预见到的未来需求一并表达清楚。这有利于设计出更具有兼容性的新功能。
* 许多业务方都没有向下挖掘的意识,这一行为俗称:想到什么做什么。现在想要 A,过一段时间后想要 A+,再后来又想要 B。但业务方并不了解需求的研发和变更过程,这会导致重复劳动,研发资源被无端浪费。
该阶段主要是思考,不涉及到优先级变化。更多参见:什么是产品思维
Doc - 明确理性需求
好记性不如烂笔头,将你收集到的信息和初步达成一致的设计方案更新到 Backlog 中。比如利用产品设计必备的五张图思维 将设计整理成简要文档即可, 这时候的需求并未真正进入排期,过早的深入设计仍然可能会造成产品团队人力浪费,因此记录核心思路即可。
既然已经搞明白需求细节以及设计方案了,那就值得更新一次优先级啦。Doc 阶段的需求优先级基本决定了下一个迭代的研发内容。对于规模小、处事灵活的团队,可以通过简单的沟通获得各方对优先级的一致认可。对于大规模团队,建议通过会议的形式定期对未来 N 个 Sprints 的需求进行优先级讨论。
优先级评审会(Priority Review Meeting)的参与者应涵盖相应 Backlog 的所有需求方,大家坐到一起,根据产品的顶层 Roadmap 达成优先级的一致性。一旦达成群体一致,任何人都不应随意更改优先级,即使是产品经理。
* 即便有 PRM 的存在,但多数公司的产品需求优先级的确定权掌握在产品团队手中,研发团队缺乏话语权。对于产品重要性的排序也相当有“特色”,会根据需求提出方的地位和职位来权衡判断,基于权力而非科学。
重要度与紧急度
但是,无论是小范围讨论还是通过会议讨论,应遵循什么原则对需求进行排序呢?一般我们会关注需求的重要程度与紧急程度。
重要程度,指对产品长期目标的影响程度;
紧急程度,指基于产品现状和短期目标,上线后立即能产生的影响程度。
重要程度一般与当前产品的进展无关,是从目标倒推的影响程度,是一种