技术开发 频道

项目陷困境 丢盔弃甲OR浴火重生?

【IT168 专稿】

  陈江是一家软件公司的开发经理,这几天他一直在痛苦的思考,当软件开发项目陷入绝境时,作为项目经理该怎么办?是丢盔弃甲的中止这个软件项目还是努力使项目凤凰涅磐、浴火重生?的确,做出一个终止开发项目的决定要比争取一个项目要更具魄力。中止开发项目就意味着否定自己之前所有的努力,做这样的决定需要很大的勇气,这一直也是让许多软件开发管理人员难以抉择的难题之一。
  
  一般来说,让项目经理头痛不已的困境项目通常状况是项目计划执行不下去,进度比预计的长,成本比预计的高,质量比预计的差,问题能出到什么程度就出到什么程度。大家都说“坚持就是胜利”,但是对于软件开发项目而言,硬着头皮不顾成本和现实情况走下去,就一定能成功完成一个项目吗?
  
项目染病陷困境

  随着项目研发的深入进展,蓦然回首陈江发现许多问题逐步开始暴露。经过大半年反反复复的开发,不但没有顺利的完成预期任务,反而使项目陷入困境变成了一个烂摊子。是承认项目失败,丢盔弃甲的落荒而逃中止这个陷入困境的开发项目,还是痛下决心使项目浴火重生呢?让作为项目经理的陈江一夜间添了许多白发。
  
  常言道:成功的项目是一样的,失败的项目各有不同。要总结软件开发失败的原因,有一定的难度。曾有一个研究显示,大多数软件开发陷入困境主要是在这几个方面:项目因资源配置问题导致逾期和超支的有60%;因项目需求混乱造成项目范围频繁更改的为60%;因项目缺乏监督导致计划执行差的为63%;因沟通不畅导致的概率为48%;而因项目经理的能力差导致的则为37%。
  
  (1)资源配置不善导致进度和成本陷入困境
  软件开发管理的一个重要内容是资源配置和成本管理。在项目中有两种相互矛盾的因素约束项目经理的作为,一个是项目进度和质量,另一个是项目成本,任何一种约束的缺失都可能造成项目陷入困境。例如,当资源配置管理不善时,通常都会导致成本失去控制。非常遗憾的是在软件开发过程中,我们更多的强调进度的约束而忽视成本的约束,反而最终导致进度失控。陈江在后来每每谈起此事时,因为没有平衡好进度和成本的关系,造成项目进度延误和成本超支都让他感到非常的心痛。
  
  (2)项目需求混乱造成项目范围蔓延
  项目需求混乱不清,项目范围不断蔓延,项目绩效无法衡量,这是我们在失控的项目经常看到的例子。因此,这个时候处于矛盾漩涡中的项目经理就会多头受气,既处理不好上级领导、项目成员等各方的关系,也平衡不了各方利益,项目走向扯皮的现象就越多。实际上,如果项目范围一直不断蔓延和频繁变更,项目将毫无成功的机会。因为经常范围变更,那么任务很有可能要滞后完成,这就会危害到整个项目的进度。
  
  (3)缺乏项目监控导致的问题
  软件开发管理的基础是项目执行和监控。高效的项目执行要求有量化的指标,没有量化的指标就只能是粗放的管理,结果就会导致连锁影响,只能走进项目失败的死胡同。
  
  (4)沟通不畅导致的问题
  软件开发出现问题时绝大部分都与沟通不畅有关,而不是技术问题。思科总裁钱伯斯有一个著名的理念:“使项目陷入困境的有两大原因:一是远离你的客户,二是远离你的员工。”远离导致的唯一后果就是:缺乏交流,一般来说当项目陷入困境时会导致人心松散、疲惫不堪、摩擦不断,项目组成员看不到希望,如果这时沟通不畅就会使项目人员士气低落。因此,沟通不畅正是导致项目失败的主要原因之一。
  
  (5)项目经理能力有限无法主导项目
  项目经理是软件开发项目的主导者和领导者,他的能力完全直接影响到开发项目能否顺利进行。古语有云:兵熊熊一个,将熊熊一窝儿。一头狮子带领一群羊,这群羊就会变成一群狮子。所以,项目主导者的品格往往决定了团队的品格与成败的走向。因此,陷入困境的开发项目能否浴火重生关键之一在于选择能力强的项目主导者。否则,无论其它环节做得更好也是白搭。

中止项目还是浴火重生?

  对于陈江来说,中止一个亲自争取来的项目是一件痛苦的事情。中止还是继续这两条路在公司高层都有不同的支持者,以 CFO为主提出中止的理由是:将“死马当活马医”的想法是因为害怕已经投资的那些钱都打水漂了,可是继续一个陷入困境的项目对公司财务来说会有长远的不良财政影响。另一条路是以CIO技术总监为主的支持观点是:如果问题能够被克服,为什么不重新评估和重新计划呢?
  
  争论到最后,原先支持中止项目的CFO放松了态度。但他强调一点,在讨论中止还是继续项目之前,一定要弄清正在开发的项目出现了什么问题,有没有走出失败浴火重生可能,一定要避免投入更多资金之后才发现项目还是要中止。经过几个通宵的会议讨论,陈江提出从这几个方面来判断项目是否能走出失败的泥潭,浴火重生。
  
  (1)项目是否有一个可衡量的目标和范围
  目标不明确或者目标过于理想化都会导致项目的失败。当初陈江在项目规划时为了争取高层对项目的支持,故意夸大项目投资回报率而避谈了项目的风险。当项目进行了一多半时,种种问题出现了,由于期望值过高造成实际效果的极度反差,大家对项目的信心倍受打击,也没有看到期望的结果,从而大家的热情一下子降到冰点。因此,是否有可衡量的明确目标和清晰的项目范围,是项目重启后能否成功的第一个关键所在。
  
  (2)项目进度计划是否可测量和控制
  做过开发项目的人都有这样的体验:一是开发工期一拖再拖,总是有不断冒出的工作需要完成,但似乎没有人知道开发项目能够什么时候完成;二是项目计划定了一个又一个,却又总是在不停的修改这个计划。
  
  后来,陈江在回忆时无奈的说,不是不想制定详细的计划,而是我们对制定计划的依据没有把握。同时,我们对项目的进度也没有很好测量,难以把握项目真实完成的情况。因此,只能走一步算一步,项目质量只能依赖于开发人员个人的能力和责任心,但由于全过程缺乏有效的监控,最终的质量还是很难保证。在软件开发有一句俗语是:人们常常不是计划失败,而失败于计划。因此,进度是否能测量,计划是否受控是软件开发能否成功的重要因素之一。
  
  (3)项目内是否人浮于事
  开发项目成员的工作有的完成的好,有的完成的差,有的多有的少。陈江在谈到因为对项目成员完成的工作量缺乏准确估算,使到一些人钻了空子,总是宣扬自己的工作很难,总是在加班但却没有真正干事情。造成的结果是“劣币驱逐良币”,大家都人浮于事。当开发成员没有全力参与时,团队力量就无法发挥,开发项目也就谈不上有成功的机会了。
  
  (4)项目的人员配置是否合理
  项目负责人是一个项目的领头人,项目主导者是否称职对项目成功与否起着至关重要的影响。一个合格的项目负责人不仅需要有良好的技术技能,同时也需要拥有良好的业务和领导技能,这样才能与各方人员沟通以及在项目控制中游刃有余。另外,陈江发现项目的失败还在于核心开发人员的流失。一般来说,核心人员的稳定关系到项目的生死,但公司在没有办法控制人员流失的时候,也没有建立起完备的后备人选机制。

五措施力保项目新生

  经过多次反复的讨论,公司决定项目重新启动。为了保证重新启动的项目能顺利进行,陈江决定通过以下几个方面开展工作:
  
  (1)重组开发团队,提高团队士气
  陷入困境的开发团队都会有一个明显的特点,就是人心涣散。因此在重组开发团队时,第一步就是明确各成员的工作职责,建立起顺畅的沟通通道。如果项目团队士气低落,项目经理应要花较多的精力去关心处于疲惫状态的开发人员,注意人员流失,最好能主动缓解项目成员的压力。在重组团队时,还应考虑项目原有的人员配置是否合理,了解各成员的作用,哪些成员是对项目是有利的,哪些成员是“鸡肋”。必要时应注入新的力量,以提高团队的活力。
  
  (2)制定切实的目标,控制项目需求变更
  需求管理始于范围定义,当项目经理未能在项目范围上做到先发制人,问题就会接踵而至,因为范围变更常常会涉及到成本上升和延长时间。所以,陈江决定要吸取教训,从实际需求出发做好项目规划,明确项目目标,不再轻易修改需求范围,以避免频繁的修改影响开发进度。
  
  (3)制定严密的实施计划
  “凡事预则立,不预则废”。陈江认为关键之一是:根据实际情况权衡客观需要和主观可能,制定新的可执行的计划,抛弃一切不切实际的幻想。同时,他还强调这个开发计划应该真正地被各方人员接受,要把它树为今后开发活动的标杆,严格执行而不只是形式上写写。
  
  (4)加强开发里程碑的审核和控制
  开发里程碑方法是将软件开发分成若干个子阶段的项目管理方式,其中一个重要功用是在各子阶段之间预留缓冲时间。使用缓冲时间可以在项目实际执行进度和预计进度之间取得平衡,有助于开发项目适应意料之外的事件。例如缓冲时间可以用于弥补进度延误,使进度计划不至于长期失效。因此,在项目每个关键点设立里程碑,对前一阶段的工作进行严格的审核和评审,能保证前一阶段出现的问题不会被传递到下一阶段,同时通过对里程碑进行有效的控制也可以保证项目质量和项目进度。
  
  (5)评估潜在风险并制定预防措施
  在项目重启后,要对项目中可能存在的风险进行仔细分析,制定比较周密的风险防范机制,大力降低项目过程中出现的风险。通过对陷入困境项目的总结和吸取深刻的教训,陈江明白到软件开发项目管理不只是一种技术,还涉及到许多方面的因素,只有齐心协力,项目才能浴火重生。

0
相关文章