相信我,你并不孤独,大部分项目经理都面临过项目延期的情况,特别是在软件开发领域,项目延期情况尤为严重。
为何会出现这种情况?
首先当然和项目经理管理能力有关
受过良好培训,又经历过大量项目历练的项目经理,一定会注意项目的时间管理,尽量让项目在预定时间内按质按量完成。其次是软件开发工作特性决定,预估时间偏乐观
软件开发工作,本身是一个弹性很强的工作,实现同一个功能,有人可以1小时搞定,有人需要一个礼拜。有时看起来一天可以搞定的事情,实际开发过程中遇到问题可能3天都没有搞定。
加上程序员在预估开发时间时,本来就有偏乐观的倾向,谁都认为自己的开发能力强对不对? 有时甚至都没有预留软件测试时间。
再加上帕金森定律,再多的时间都能用完,你给一个程序员安排一周完成一个功能,再简单功能他都一定是一周才完成,因为软件是可以无限优化的。于是项目经理在预估时间是也偏向乐观,更别说遇到需求方的压力了。最要命的,软件开发项目范围难以明确
软件开发结束到测试阶段了,老板一看界面,要求加个功能,是常有的事吧,而且,人家还觉得加这样一个简单功能,应该很快的。
有什么预防延期方法?
最根本的,当然是提升项目管理能力。
明确项目范围,项目计划时,确定明确的开发范围。列出功能清单,提前确定验收标准。并且约定范围变更的流程,范围变更时,同时相应调整项目时间安排。
合理预估时间,预估时间时与项目成员充分沟通,不要安排太紧,当然也别太松,有一个经验公式是,如果开发人员自己预估需要一天的开发时间,那你给他安排2.5天是比较合适的。开发任务尽量拆细些,预估时间会更容易。
盯紧项目过程,项目进行过程中,实时留意项目风险,遇到人员请假或临时任务加入,及时做好资源调配。
充分考虑修改,设计时就要充分考虑软件可扩展性,可维护性。做过几年软件开发人都知道,要在开发前将需求明确固定下来是一件多么奢侈的事情。何况,业务逻辑,也是会随着业务发展,不到更新迭代的,所以设计时就应充分考虑,预留可扩展、可修改的空间。
上面这些都是老套路了,最近在看阿里巴巴中间件首席架构师钟华写的《企业IT战略转型之道》,有了一个新的思路,就是中台战略。
面向服务架构设计,良好的架构设计,可以自由应对需求的变更,而且随着业务的不断发展,服务能力也不断得到加强,这个是阿里巴巴中台战略的思路。将业务中通用的部分提取出来,做成一个个独立的服务,所有服务就像一个个可以自由组合的积木,要什么前端应用,只要将后端各个服务按各种方式组装即可。比如淘宝、天猫、聚划算等应用,就统一使用商品、订单、支付、物流等服务。
想象一下,我们已经有了这样一个服务平台,里面有琳琅满目的各种服务,我们要开发一个什么系统,只需取出各个服务,简单组装,测试,即刻完成,哪里还会有什么开发项目延期的问题呢?
这个太美好了,我们回来一下,如果你现在就面临一个软件项目已经延期了怎么办?
已经延期项目应对方法
谈判
别无二法,和你的项目发起人谈判,要么砍掉部分功能,将部分需求留待下期完成,要么协商争取延长项目时间。