项目进度控制是项目经理的一项重要职责。俗语说的“时间就是金钱”在这里体现得再明显不过了。项目管理和自驾车回老家过年是相同的,实际上按照项目的定义,“自驾车回老家过年”也是一个不折不扣的项目,只是它更贴合大家的生活,更容易引起共鸣,我们就拿它来做例子说明。
从乘客的角度,如果坐车很久,但是没有达到预期的目的地的时候,就会产生疑问,一般都会去询问司机“到哪里了”,如果司机的回答没有那么令人满意,这个疑问就会积累。积累到一定程度,就会开始怀疑是否迷路,如果这个疑问一直无解,最终就会要求停车问路。如果坐的是出租车,就会导致乘客下车,换车继续前进。
项目进行过程中同样如此,因为软件项目的“不可见”特性,客户心理更脆弱和不稳定。如果每次项目经理给出的进度都是无法验证的,客户的疑问就会积累,最终到无法忍受而爆发。
人对一个事物的完成都会有自己的“心理预期值”,这个值会随着人对该事物的了解的加深而进行调整,并变得越来越准确。乘客坐车到目的地,如果他对路线熟悉的话,一般都会跟踪一些关键的地标和时间的对应关系。比如从南山科技园到深圳火车站,一般用时不会超过1小时,开车走深南的话,肯定会经过世界之窗、市民中心、帝王大厦,最后到火车站。如果在晚上8点出发,过了半小时都没看到世界之窗,乘客会怎么想?
项目也是如此,客户的心理预期就是项目“里程碑事件”的到达时间。项目经理制定项目的里程碑,目的之一就是去影响客户的心理预期。但是这种行为是一把双刃剑,会影响客户的心理,同时也会对项目构成约束。
实际上,项目进度表现在两个程度,一个是微观的层面,这个层面上,所有的事情都是一个一个的task,一个项目下来,有成百上千个task要去完成,这个层面是项目经理和项目组员关注的,是最准确的进度描述;另一个是宏观的层面,这个层面是客户以及项目外部的干系人所关注的,每一个进度都是一个“里程碑事件”,这种层面的进度描述并不是十分准确。
依然从心理角度去分析,项目经理给出的进度有误差是肯定的,关键是和现实的落差是否在范围之内。如果客户持续觉得项目的进度描述是准确的,那么对项目也就越有信心,对项目的支持也就越好,对失误的宽容度也越高。反之,如果对项目进度没有信心,那么就会对项目施压,对失误的处置也会越严厉。
如何把握进度和进度的报告,常用的方法有“堵”和“疏“。所谓的”堵“就是隐瞒,项目经理可以进度造假造得很漂亮,但是到最后交付不了,就会被修理得很惨;而”疏“则是如实汇报,让项目干系人透明地掌握项目的主要细节。实践中,很多项目经理采用了折中的方法,有些如实汇报,另外一些则隐瞒起来,避免不必要的麻烦。但是实际上,项目经理”说真话“是要有一定能力的。
首先是”项目组实际的完成能力“,通俗点就是每天、每周最多能完成多少任务,如果项目经理和客户都知道这个速度,客户就不会提出过分的进度要求,项目经理也可以拒绝所有超出能力的进度要求。这个”能力“其实就是项目经理”Say No“的底气来源。现实中很多项目经理因为不知道团队真实的能力,胡乱应承,结果害了自己,也坑了团队。
其次是”项目进度的预测能力“,如果项目经理给出的完成时间每次都能做到,他以后的项目工作就会越来越顺畅。许多项目组和客户的冲突,起因大都是因为”进度预测不准“甚至”无法预测进度“导致的,进度再一再三地突破客户的心理预期,想不让人发飙都不行了。
在项目实战中,项目进度的评估和预测非常不容易,但是并不是完全做不到的。我们可以反过来看,从项目结项的那一刻开始。在结项时刻(算上变更之后的),项目的进度毫无疑问是100%,往前推一周,我想进度是可以预测的,但是往前推一个月就会模糊一点了,越往前越模糊。换言之,项目的进度预测是随着项目的进展而越来越清晰的。
先分析”为什么会模糊“。问题在于两个方面,一个是”任务分解“,一个是”临时性的任务“。对于前者我们可以逐步分解、逐点清晰的方法来解决,对于后者我们可以预留时间。我们可以先用大块的任务写在任务列表中,等要处理之前再去分解细化并再评估,随着工作的进行,任务列表会越来越细,评估也越来越准确。对于”临时性任务“则在计划表中预留时间去处理。
接下来分析”如何清晰“。
首先是”预估“,把当时能够想到的所有任务都写在计划表中,不要怕不详细,也不要怕不准确,有总比没有好,但是要记得及时对所有可以细化的任务进行细化;
其次是”记录“,项目经理把项目组所有做过的任务都记录到任务计划中,等到积累到一定程度之后,就可以从计划表中看到项目组完成任务的速度,即”项目组实际的完成能力“,这个能力值的单位可以是”任务/天“、”工时/天“、”工时/周“等。同时可以得到的,就是”计划外工作量“的值,这个值可以指导项目组调整为“临时性任务”预留的时间。
最后就是“优化和预测”,通过前两步的成果,对未来的进度进行预测并及时进行调整。
总之,项目进度管理中,要遵循的就是如下三个公式,任何一个懂得小学数学的人都可以完成:
而实战中,通过“记录任务”知道“已完成工作量”,并得到“开发速度”,通过不断细化逐步逼近“总工作量”,也就得到了越来越准确的“当前进度”和“剩余时间”了。
项目进度管理其实并不难,不是吗?真正难的,是“驱散恐惧”。