项目复盘:延期上线1个月,我做错了什么?
🙋一名年轻的大厂产品经理。我的所有文章都会首发于公主号——****,随记会发在red note——****。👏欢迎交流
——以下是正文——
1️⃣ 项目目标(以下目标的优先级按照从高到低排序):
- 业务多了一笔预算,得花。
- 需要基于某基建产品(本部门的核心明星产品)重构部门其他产品(这个项目要做的产品),以提升该基建产品的ROI。
- 之前的产品称不上“好用”,业务同学工作流是断开散点的,因此希望通过本项目能提升业务同学工作效率。但需要注意的是,本项目涉及到的业务规则和业务流是没有任何变动的。
2️⃣ 团队成员:业务方向产品负责人、临时借调过去的产品经理(我)、PMO小朋友、技术负责人、外包供应商(执行层研发+测试)
3️⃣ 项目复杂度:2个系统重构,跨业务团队的上下游6个,预计工时160人天左右,实际工时200人天左右。难度自评中等。
4️⃣ 项目关键时间溯源:
- 需求澄清:产品经理输出产品方案,同时外包供应商进入技术单阶段。
- 技术方案设计:外包提前入场,在2周内熟悉需求并设计技术方案。技术宣讲没有通过评审,但考虑到交付周期紧,让外包先干活了。
- 研发:研发同学上手花了2周时间,比预期久。且后续因为不熟悉基建产品的最佳设计方案,重构了代码3次。研发进度比预期整体慢1个月。此时已经明确无法按照预期时间交付。
- 测试:测试同学一轮、二轮测试遇到了“不熟悉公司上下游链路”+“造case耗时”的问题。整体时间比预期慢2周。测试同学提的bug数量小于20个,且都是p2级别。
- 产品走查:产品走查发现核心链路完全不通,提出了100+个bug。
- 二轮重新开发和测试:产品、研发、测试多轮重新对齐产品设计和技术方案。耗时2-3周。
- 上线:产品负责人希望年前必须上线一版(即使是项目空跑)。上线后走查存在10个P0/P1 bug。
可以看出来这项目交付的有多糟糕了☹️
5️⃣ 项目里的问题🌟🌟🌟:
1、目标不清晰。
目标1和目标2是只可意会不可言传,暂且不说。但是关于目标3——“提升业务效率”,产品和业务同学并没有对齐。
大家都抱着“这个系统能重构完并线上跑起来”的态度,没有说清楚“哪些工作流要优化,哪些可不用优化”,“某个环节/场景要做到什么地步”。需求交代不清晰。
我觉得这个锅主要在我(产品经理)头上吧,这一part应该算产品力的基本功,我没做好。
2、没有找对人,共识态度、目标、各方任务。
在项目研发阶段,有个大问题,外包同学技术方案实现很烂。一方面是因为人的能力不行,另一个是因为其不熟悉要用的基建产品和公司技术规范。前者问题在第三点阐述,这里先谈谈后者,外包做为新人不熟悉是必然的客观事实,但是当时主观因素上也做的很不到位。
2.1 我没和技术负责站在一个路上:
在技术设计阶段,我和技术负责人已经明确意识到外包同学可能遇到的问题,但是我俩对处理办法有歧义。技术负责人认为这次项目是技术外包,所以他只提供了一些基础的技术讲解,但是不插手技术方案设计。我认为应该把技术风险点以及解决思路和外包同学列清楚。我曾私下找过他隐晦说过一次,但是他很强硬的表达观点后,我默许了“他的态度”和“他认为他该做的事”。
如果再来一次,我可能会拉他私下长谈,聊一聊他为什么怎么想,双方推心置腹的表达一下想法。至少有一点可以明确的打动他——“这项目做烂了,外包供应商可以跑路,咋俩可跑不了”。
事实上,他这个态度后续也影响到了本项目PMO的态度,PMO在做项目管理上管理松懈,抓大放小。
到中期,这个项目没有一个人「下场抓细节」,导致风险越来越大。
2.2 基建产品的人没被我卷进来:
当时做了什么:1)基建产品的人向外包串讲了一遍基建产品的基础功能 2)让外包同学遇到不懂的问题找基建产品的oncall
当时没做什么:忽略了目标2对基建产品的利好。毕竟目标2就是为了给他们打工,我应该把基建产品的人卷到这个项目再深一点...而且当时忽略了一个重要的事实,该项目应该是第一个由“新人研发”使用基建产品的复杂项目,这对基建产品的交付基础设施有着很大的挑战,他们没有很完善的交付机制。
如果再来一次,我会把上面说的这个点包装成基建产品的利好点,把他们卷进来。
落到动作上,至少应该还要做到:1)基建产品的人必须参与项目技术评审,尤其是涉及到他们那块的系统交互;2)需要他们反向提供一些常见功能的最佳实践以及坑;3)后期有较大风险时,基建产品的人需要参与进行代码review
3、对于不合适的人,优先看能否把他t出团队,其次把人放在合适的位置上(重要的事不教给他们做)。
这次的外包同学里有两个能力很差的。具体的情况是:
- a同学能力很差,本来不想要他,但是供应商说会再提供一个优质的b同学,让b带a。但是在后期,b同学出差跑了,是a同学来实施。当时,这件事我们就吃亏默认了,没和负责人理论。
- c同学态度很好,就是能力差,无法胜任,供应商负责人也清楚。当时,考虑到c同学已经进场1个月了,换人成本非常高,所以就忍了。
现在能深刻意识到,忍了没用,反倒拖垮整个项目。
如果现在再来一次,我会优先想把a换掉,我不关心换成b或者另一个d,只要找到靠谱优质的人。至于c,的确要计算换人成本,但当时算的不细,我现在大概知道他的能力水平线值得我消耗成本。
如果实在不行,应该把a和c放在其能力合适的位置上(例如边缘模块的主r,不要当重点模块的主r)。
4、没有很好的拉齐各方的信息背景,讲清楚事情:
外包同学作为团队新人,无法在一开始就能和大家共识好背景,做好其手头上的任务,这是事实。再加上个人能力问题和技术负责人问题,新人更不好在早期就get实施中的坑和难点了。
虽然我当时做了一些努力,highlight出来了项目难点。但是现在回头看,做的不到位。如果再来一遍,会做好以下几个事:
- 介绍公司的团队与系统划分,并给到他们对接人名单。
- 产品宣讲粗讲(讲产品设计思路、讲场景、讲上下游链路)。让新人意识到产品的设计思路,在大背景上和我同频。
- 产品重难点清单,产品方案里的注意事项。特地和新人专门过一遍这个清单,让他们意识到这个事情的重难点,并且强调其在技术方案或者需求返讲里要重点突出到这些。
我当时没做到。我直接在第一次产品宣讲的时候穿插讲了产品重难点,但是这对新人来说非常难吸收并且get到我在说什么。哪怕这个项目这么着急,也不应该在这件事上偷懒,需要确保团队各方对事情的目标和重难点是对齐的才行。)
- 在产品实施过程中,定期抓重难点事的推进和效果。保证大家没走偏。
PMO当时没做到。PMO的项目管理没有分出重要紧急的事。当时大家呼啦啦的列了一堆task,PMO被淹没在task和todo里。实际上,团队各方,尤其是PM/PMO应该要分主次,抓核心事项进度和效果才对(尤其是团队能力烂的情况下)。
5、产品设计(PRD)的不足:
不管怎么说,团队里的外包没按照需求出技术方案,那就说明我的产品设计的不好,PRD写的不好。具体的点如下:
- 如同问题1。我对需求细化的不彻底,尤其是忽略了和业务沟通一些异常case。有时候在找产品目标的时候,我会把工作流和业务流搞混,得注意。
- 如同问题4,和外包同学双方没有共识好产品重难点。
- 外包同学没有理解我的PRD结构:这是一个惯性问题,我和我之前的研发同学已经形成了默契。这次借调到新团队,且外包是新人的情况下,大家不习惯我的PRD结构。
- 页面设计能力不足:不熟悉B端常见的导出、搜索、查询的交互设计。这个我需要深刻反省,是基本功。另外,需要注意AI趋势下页面交互设计的变化。(这是一个很有意思的话题,回头单独讲)
一直觉得烂项目是很好的反思机会。除了以上这些,在这项目里还学习到了关于沟通、甩锅、勇气的一些事。但毕竟是公共平台,所以能说的就这么多。
以上。