刚开始从事项目管理工作那会儿,对于制定项目计划常常有这种感受:都是开发和测试说了算。他们说需要三天,就三天,他们说什么时候上线就什么时候上线。这种执念一直纠缠着我,有一段时间也曾非常的纠结于这一点,甚至一度觉得非常失落,开始怀疑自己的价值。但是随着经验的增加,经历的项目增多,在这一点上渐渐有了些新的体会:在项目计划上,项目经理能做的还有很多。
首先介绍一下,当前笔者所在团队是如何做计划的。需求确定之后,开发会根据需求分解任务,对于不同的任务,进行估算,并且确认提测时间。然后将安排发给测试,由测试补充各任务的测试时间以及回归、兼容性等测试的安排,从而制定出初步的计划(包含上线时间)。
初一看,完美!团队自己就把计划制定出来了!有项目经理什么事儿?!其实不然。下面跟大家分享一下,笔者认为的项目经理能在这过程中起到的作用。
1. 确认版本周期
计划的时间点需要根据开发的工作量评估来确定,但是项目经理需要确定这个版本大概的周期是多久,是一个两周版本还是一个一月版本。在开发开始评估工作量和确认提测点之前,项目经理就要将版本周期情况同步给团队。影响项目经理确定版本周期的因素往往有:
上个版本的情况:如果上个版本刚刚经过一个非常紧张的大版本,有不少小的优化功能未能上线或者大版本上线后用户反馈了一些比较影响体验的问题。那么下一个版本项目经理就有可能考虑发一个较小的版本,将这些优化和问题尽快上线。
运营推广计划:某些版本可能是配合运营推广的计划,那么在确定版本周期的时候就要考虑到这一点,确保移动端通过审核的时间能够满足推广需求。
与其他端的配合:某些版本需要多端协同的,那么确定周期时就需要考虑到其他端的发布安排。
2. 完善和优化团队给出的初步计划
开发和测试给出自己相关任务的时间点,但是对于一个项目来说,这些还不够。这些往往会被团队所忽略的,包括但不限于如下几点:
安排多提测点:刚开始的时候,开发会习惯给出一个最终提测的点,这对尽快交付并不是什么好消息。所以项目经理需要去跟开发一起梳理,是否有一些功能点是可以提前交付的,这样测试就能提前介入,从而缩短研发周期。
需求冻结时间点:几乎在每一个团队中,需求变更总是被开发和测试所诟病。对于需求变更,我们不能完全说不(一来是要应对市场的变化,二来我们也理解在策划阶段总是有一些未知的问题),但是不是任何时间提出来的需求变更我们都接受的,我们认为在某个时间点之后再提出的需求就会影响版本的顺利上线,那么我们就有可能拒绝。这个时间就是冻结时间点。考虑到这个时间不能太早也不能太晚,太早不切实际,太晚又影响计划。所以我们定义的需求冻结时间点是在最后一个提测点之后的一天。
数据埋点的安排:埋点一直以来都被开发认为是最不重要的工作,无所谓什么时候做,只要在上线前埋一下就行了。但是有一次埋点就埋出了问题。那次是在上线前一天,在最后的版本开发做了埋点的工作,最终导致了软件出现崩溃的问题。自那次以后我们就约定埋点要尽快进行,不能等到最后一天。但是埋点工作也常常在计划阶段被遗忘,所以就需要在计划制定过程中给开发预留一部分工作量用于埋点,同时明确埋点完成的时间节点以及埋点验收完成的时间。
代码冻结的时间点:所谓代码冻结当然就是代码不允许改动了,因为在最后时间的代码改动都有可能引起bug导致无法按时上线。现在我们约定,上线前一天完成代码冻结工作。
其他时间点:如有管理后台配合的功能,就要约定管理后台上线的时间;API接口的上线的时间,因为我们移动端的bugbash 是在线上进行的,所以在bugbash之前确保API接口已上线;ios的版本需要考虑testflight上测试的安排,一般会放在测试最后回归的阶段等。
3. 合理的统筹人员分配
工作量合理分配。各任务评估完成之后,需要将工作量做合理的分配。很多时候看到开发自己排定的计划中工作量的分配会不均衡,有些人多有些人少。但是当被问及原因时也并没有什么原因,可能只是没有仔细考虑,所以项目经理要帮助团队更多的考虑这部分,将工作量能够更合理的分配。
人员在多项目间的分配。例如发现开发和测试排出来的计划已经不能满足时间节点的需求的时候,一方面当然是要优化当前的计划,但发现已无优化空间时,就要考虑调整人员的分配情况。因为项目经理会比具体的成员更了解从全局上的优先级,就可以考虑将低优先级项目的人员临时调到高优先级的项目上来,当然这是在跟职能主管取得一致意见的情况下。
4. 考虑假期影响
一个版本开始之前最好能够收集大家既定的请假情况,在工作量安排上给予考虑。尤其是在一些法定节假日前后尤其需要考虑。另外一些特殊情况也会导致请假人员密集:例如公司每年六月份都会消除上一年遗留的年假,这也会导致大家在6月份密集请假。除了请假安排的考虑,项目经理还必须考虑节假日带来的“假期综合症”,如国庆或者春节这样的长假前后,大家的工作效率都会降低,这也会成为项目延期的风险,所以需要在计划阶段给予考虑。
5. 周知计划
确保相关人士能够get到这个版本的计划。研发团队常常会禁锢在自己的一亩三分地,所以一般情况下,很少有人会想到要周知其他角色,就算有意识去通知相关角色也会很容易遗漏。所以项目经理就需要帮大家补足这部分。那么除了研发团队还有哪些角色会关心呢?
需求人员(包含老大)会很关心计划,包含具体的需求范围(需求范围可能会跟策划原先提的有所出入,会根据工作量情况做微调),以及具体的上线时间。
运营人员,运营同学需要该计划来确认下一波上线的内容,从而判断是否需要针对某几个功能或者活动安排运营推广活动。
市场同学,市场同学需要通过该计划来提前准备提交应用市场审核的相关材料,如果有首发安排的话,还需要提交首发申请。
如果是跟其他业务团队合作的,那么还需要通知合作方。
所以说,项目经理并不是在项目计划上可有可无的角色,也不只是帮大家画个时间线这样的角色,只是项目经理在这上面的作用不是那么显性,但却是不可缺少的。打个比方,没有项目经理,项目计划还是能定出来,只不过这个计划会缺胳膊少腿,到最后还会发现按时上线会遇到各种风险和问题。
但是对于项目经理而言,不是说做到本文提到的这些就能够做出完美的计划了。一来,每个项目的背景不一样,执行的方式也会有所不同,所以制定计划过程中需要注意的事项需要结合项目的情况进行裁剪;二来,万事万物都是不断变化的,我们需要不断总结经验,每发生一个问题,就要去反思这个问题是不是能够在计划阶段通过更完善的计划而避免的。如果是,那么就将这点记录下来,在下一次计划时注意。这样项目计划的checklist就会越来越丰富;三来,笔者的经验也是有限的,可能有失偏颇,所以我们还是要根据团队以及项目的情况,审时度势的去制定计划,拥抱变化才是正道。
作者:何燕华,网易高级项目经理,PMP, CSM。先后在网易私有云、网易账号系统、GACHA、LOFTER等大大小小十几个项目担任项目管理工作,致力于项目的成功交付和团队的持续成长。
本文由@网易杭研项目管理 (ID:NeteasePM)原创授权发布于管理圈,未经许可禁止转载。