技术预研
最后更新于:2022-04-01 20:46:49
2013.5.19
当从规划中分解到预研项后,我们将进行预研工作。此阶段的工作会对项目中的重大风险或技术方案的不确定性进行攻关,能有效率完成此阶段,是项目经理的一个重要挑战。我见过很多项目经理对项目整体管理把握都很好,但是由于对预研阶段的工作把握度不够,导致项目失控。
按五要素分解预研阶段的工作如下:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-09-06_57ce8451c95d6.jpg)
**1、干系人期望**
此阶段的干系人主要是预研人员和产品经理。
1) 预研的方案复杂度在规划预期内
所有项目都需要在投入产出比做权衡,在预研启动前,我们要知道主管/产品经理的心理预期,如果当预研的方案实现的复杂度会远超过预期时,需要及时提出,并安排讨论,必要时需要停止预研。
2)预研要消除实现风险
预研阶段的主要目的是消除整个项目的实现风险,预研阶段结束,大家会有个共识,那就是项目可以被实现出来,整个项目计划的工作量估算将也重要参考预研结论。
**2、沙盘**
技术预研要做好,首先要有两个前提:有明确的目标值,有可操作的验收方法。
1)有明确的目标
例如:预研一个方案,最后提交的方案需要占用1G内存,而这个内存消耗不能被接受,这时便会带来返工,同时预研人员会新生怨念,为什么不早说呢,害伤神,伤身。
因此这里通常的办法是预研开始前,下发预研目标书,目标书里包含对此项预研所能消耗的资源进行详细限制,例如:内存,cpu,稳定性等。
2)有可操作的验收方法
没有可操作的验收方法,目标就会得不到执行,变成空口白话或脱离本意。因此在预研开始前确认好验收方法至关重要。
例1:目标:新增加的预研方法对原有的系统的性能影响不超过5%
可验收的方法:加载此模块与不加载此模块,在3个相同的业务流里统计所消耗的cpu周期,来计算是否超过5%
例2:目标:前端一个复杂页面的响应速度在客户正常使用过程中3S内返回。
可验收的方法:在2个典型的客户业务流下,非cpu空载情况下测试页面响应速度。
**3、计划制定**
1)预研项的整体计划
预研阶段的整体计划通常很难定的100%准确,尤其对于风险较大的定制,但是一个整体的计划的参考时间点,会给人一个目标,从而得到方向感。
2)快速跟进
快速跟进是预研阶段最靠谱的跟进计划的方法。因为当方案等没有确认下来时,很难有准确的计划,但是通过快速跟进我们可以及时调整当前的计划--滚动式计划。
快速跟进常见两种方法:阶段性,时间性。
阶段性即:将当前预研分为几个阶段(例如:环境搭建,思路1尝试,思路2尝试等),每个阶段汇报和讨论工作情况。
时间性即:每2天,每1周等确认预研进展。
简单及思路明确的预研可采用阶段性跟进,复杂疑难的预研需要使用时间性跟进。当然根据所在项目要求可以调整使用两种方式的混合体。
**4、风险**
典型的三种情况:
1) 预研过度,常见于谨慎型或对技术缺乏自信的项目经理。他们要在预研阶段消除所有的风险,因为预研阶段的代码没有经过设计阶段,所以后续项目编码过程中很难复用,导致工作量浪费,从而导致整个项目周期变紧张。
2) 预研不足,常见于缺乏大局观或技术自信较强的项目经理,他们经常根据自己的判断在项目中选定出几个风险做重要跟进,他们经常不经意间忽略掉自己不擅长或不熟悉的领域的风险,导致项目进入后续阶段后,灾难频发,救火进行的总是如火如荼。
3) 预研思路不正确,导致工作返工较大。
消除这里三种典型情况的方法就是:在项目组中尽早形成良性的技术决策链,这里需要依靠团队管理提供基础
**5、团队管理**
1)团队组建
此阶段的项目核心人员应该已经或将陆续到位,这时候要开下项目启动会。主要要做两件事:
a、阐述整个项目的目标和意义
任何人都希望自己做重要的事情,而既然公司或部门决定投入人力去启动这个项目,自然是存在重要意义的,此时要将这个意义传达给项目组员,以便调动大家工作积极性。
如约翰·科特所说:“如果你想建造一艘船,首先要做的不是去采集木材、加工木板和分派工作,而应该去唤起人们对广阔无垠大海的向往。“
b、集中办公-座位搬到一起
大多数时候项目组的成员来自一个或多个部门,之前的座位不是靠在一起的,项目组成立后,应该要把座位调到一起,集中办公是交流方式最有效率的方法之一,没有其二。
c、 需要给预研人员讲解规划,让其了解此预研项的意义
这样做的目的,是为了让预研人员能够理解启动该预研的目的,通常当我们深入研究某件事情时,很有可能触发其他解决问题的思路。明确的目的能让有些时候预研人员自主变通。
例如:项目组安排给小吴预研目标是:验证网卡的MSI多队列能否在linux2.4内核上实现,目的:提高性能
小吴最后给出这样预研结论,网卡多队列完整移植到2.4上工作量很大,而且有困难,但是有折中的办法,移植一部分MSI的功能,将触发方式改为定时器实现,如此即完成提高性能的目的,又能节约工作量.
2)形成技术决策方式
预研阶段的技术方案跟进或其中的疑难问题如何跟进和处理,需要明确。这里明确的好处如下:
a、项目组员思路受卡时,知道向谁请教问题
b、如果不是项目经理自己跟技术问题,技术相关决策人能够明确自己的责任
';