如何避免 IT 项目延期?

最近收到一个问题,就是当你作为项目管理者,可见到项目必然延期,但是又不能延期的时候,如何处理? 我给出的答案是拆分,把需求拆分细化,然后将一部分主线功能先完成,在时间内讲主要功能上线,然后再做二期讲其他功能做完。 这是我能想到的最好办法了。 置于加班,当加班也无法避免延期的时候,谈不谈加班没有意义了。 我想问的是,还有没有更好的办法控制项目不要延期?
关注者
214
被浏览
21147

14 个回答

项目延期,一般来说问题就是你按照当前项目需求制作的计划,因为沟通原因(首要),需求变更,工作量估算偏差,项目的组织管理,突发事件等原因造成了。
先说预防就是如何避免:
沟通管理:和客户沟通前要制定好沟通管理计划。基本就是who和谁交流:接洽人员还是最终老板;when什么时候交流:每天,还是每周;where在哪里交流:网上还是线下;what交流什么内容:需求,进度;how怎么交流:面对面说人话还是通过互联网打嗝;另外要按照计划给客户展示进度,尤其是那些逆转成本很高的功能节点一定要及时反映。并且这些节点是要在合同里体现的不然只能吃哑巴亏。
需求变更管理: 需求变更一般都是沟通不当造成的,老板没有跟接洽员说明白,接洽人员没有跟项目负责人说明白,项目负责人没有跟产品经理说明白,产品经理没有跟设计和程序员说明白。除此之外还有一些市场因素和异想天开。合同里必须要有变更管理的,变更是有成本和代价的不是你说想变就能变的,这都要加钱加时间,不过卖个人情,多给点时间不麻烦的给变更,麻烦的就再商量吧。
工作量估算偏差:IT项目工作量估算基本靠经验,具体办法可以去看《人月神话》,诸如增查删改等一些常规业务逻辑或者你的IT项目可能是运维方向的,机房布线,服务器维护等等。这样常规类的都是可以控制和估计的,但是如果是一些你的开发团队没有做过但是设想上是可以实现的业务,估算此类业务肯定是会有偏差的。同时既然是估计的时间那么合同里一定说明了项目完成时间和项目交付时间。完成时间和交付时间可是两回事,完成说的是基本业务的完成时间,交付是你验收和调整的时间。你要是没说就定一个时间人家说啥都有理。工作量估算的时候一定要给自己留有余地免得双方都难受。没人愿意加班。
项目的组织管理:你可以管理不好人,但是不能管理不好死的业务和制度。项目延期也很有可能是你的开发团队都不好好干活,不好好干活的原因很多,利益不和谐啦,公司政治啦,沟通问题啦。这里沟通问题其实最值得注意,一定要为项目成员建立良好的沟通机制,项目开发过程也要有相关的记录,不然替换关键人员的事情就无从下手了。软件开发为例子你就可以把你的项目团队想成一艘海盗船,大家要去干一票买卖,作为船长(项目经理)你得让船员信服,找到宝物位置和制定好寻宝计划,碰到宝物的时候你要让大副(助理)帮你出谋划策,让领航员(产品)配置好所有需要的资源控制方向,让水手长或者舵手(架构师)带着水手开始干活。当然这其中有很多重叠工作。千言万语一句话,没有金刚钻,就不要接瓷器活。
突发事件:其实宏观来说控制好上面3条就可以了,围观了讲可以写论文了。突发事件一般就是人员流失,架构师家生孩子,自然灾害等项目经理或者公司制度无法控制的情况发生。但是你要在时间上余出你不可抗拒的事情发生的应对时间。

其实废话有点多,读过项目管理相关书籍的话应该理解,避免项目延期是项目管理意义的一部分,管理的不好肯定延期,项目管理的内容远不止我说的上面几点,项目大小不同应用方式也不一样。
如果已经延期了怎么办?
延期这种事情理论上就不应该发生,发生了的话如果客户没有需求变更或者沟通问题和财务问题,基本上就是你们开发团队的问题,这时候你们只有两种选择
1.毁约赔钱不干了。2.跟客户沟通说明问题缓一缓。
根据我的项目经验来看一般来说都是第二种,因为你项目延期肯定是开发了一段时间才发现的,这时候客户已经浪费了一定的时间成本了。如果变更开发团队成本比较高,为了保持成本只能给你们提供支持。(如果成本比较低大家没必要还纠结来纠结去或者让你赔钱什么的,客户或者BOSS保本少赔就OK)。如果你们团队是有实力的。沟通缓一缓使用变通方案(砍功能或者加班)肯定行一般客户都会理解,你的IT解决方案大家都会理解,像魔兽世界这种版本更新也有延迟上线呢!!!!老板还能扣运维团队工资不成?(扣工资让你分分钟当机)问题最终解决了就好。当然也可能存在那种毁约收赔金的。至少我没有遇到过。
如果是因为需求变更这样的原因延期怎么办?
合同里白纸黑字都写清楚了如果变更怎么办?按照合同办事。如果是公司内部需求,就用公司内部机制解决?什么?你们单位发项目的时候没有延期机制?那还是得跟客户或者领导商量。无非也是两种办法。1.加班。2.砍功能二期在上。关键问题是加班根本不是解决问题的办法!!!有木有啊!!!
这个事情很简单IT软件开发的话我们都是智力价值输出,成本给出来了我没法回收。合同里大家说明白,我给你项目工期时间(时间给不准说实话最好别管项目~)你给我定金,我再给你干活,完成不了和不熟悉的功能根本不承诺,谁NB能做出来你就找谁去,人命关天的事情我不接,如果不是人命关的事情都好商量,定金都收了反正我不会返还,你急什么?

延期不是什么大事,关键是你解决不了客户的问题才是丢单的主要原因。
砍需求。先做重要的,不重要的放到下个版本。理想的做法,但理想和现实往往有一定差距。

Quick and dirty。先让它看起来能用,以后再改。不得已的做法,现在欠的,以后要加倍偿还。大家都知道不好,却很常见。

加人。最直观的做法。虽然《人月神话》中说加人没用,但如果项目文档好,耦合低,可进一步分解任务,加人还是有相当的作用的。再说,老板也没别的办法。

加班。作为程序员,这显然是最不人道的做法。但在现实中,这往往是最有效,最安全的做法。所以,很不幸,也是最常见的做法。

还有一个比较另类的做法,PM找出需求中隐含的矛盾,要求客户明确需求,强调问题严重性,以此为筹码要求延期。