计划 请从“切实”入手
作者:徐彤 2003-11-5                                  摘自:中国计算机用户

  案例
  A公司承接了一个电子商务网站的建设项目,客户是一家旅游商务公司,专门承揽各类机票、车票和宾馆房间的预订。客户原有一套C/S系统,在各大宾馆设有客户端,通过电话拨号与中心连接。现在,该客户的竞争对手建立了一个旅游商务网站,可以在线受理各类预订业务。因而,该客户也希望建立类似的电子商务网站。并且,迫于竞争的压力,该客户希望A公司能够在一个月后完成这一项目。至于这一网站项目的具体需求,该客户没有提出更多的想法,只是要求实现竞争对手网站具有的功能。

  A公司第一次承接这样的电子商务网站建设项目,希望通过该项目掌握电子商务网站的开发技术,进一步拓展公司业务。但是,由于A公司规模有限,能够投入的资源有限。小W被公司从系统分析员的岗位上任命为该项目的项目经理,该项目组还有三名开发工程师。

  小W接受任命后,开始制定项目计划。他根据客户提出的项目结束日期,确定整个项目时间为一个月。系统开发完成后,需要进行系统测试。小W根据自己的经验,留出一周的系统测试时间。这样,留给实际开发过程只有三周时间了。根据小W对该客户需求的理解,考虑到只有三位开发人员,他将系统大致分为交易类、查询类、管理类三大类功能,每位开发人员负责一类功能的开发。然后对每一类功能进行细分,确定每个人每天的工作内容,汇合起来形成项目计划。制定完成项目计划后,小W召集全体项目成员开会,在会上宣布了项目计划和各人的项目任务。

  一周过后,小W发现进度出现延误。为了赶上项目进度,小W开始组织项目成员加班。经过一个月的努力,项目组终于完成了开发任务。但是,系统测试来不及了,因而无法交付项目。经过与客户协商,客户同意项目完成时间推迟一个月。

  接下来,小W调整计划,开始组织测试。测试中发现,开发出的系统中有许多需要修改的错误,真正离项目交付还差得远,还有很多工作要做。可经过了上个月的加班,项目成员的工作效率和热情都大大降低,项目计划形同虚设,最终项目还是没有按期交付。

  在软件开发项目中,出于业务需要的原因,客户经常会提出一个较“苛刻”的项目完工时间。而一些承担开发的中小软件企业为了拿下项目,经常会痛快地答应客户的要求。“完工期”的压力大多会转嫁给了项目经理。类似这样的事情经常会发生,上文案例中的小W就是这样的遭遇:在接到电子网站建设的任务后,匆忙投入工作,并没有考虑客户要求的合理性等问题,最终导致了项目不能如期完工。

  那么,小W的工作中出现了什么问题呢?实际上,在项目计划制定的时候,小W就埋下了失败的种子。首先,小W是自己一个人制定计划的。按照项目管理理论,项目计划的制订不是项目经理一个人的事情。它是需要项目成员全员参与,发挥集体智慧的事情。项目经理的作用是组织和协调。其次,小W在划分项目活动时,只是按照功能划分为三大类。这种方式太简略,会忽略很多项目活动,造成项目估计不足。这样,难免会在项目测试时发现很多的遗漏,耽误项目的进展。

  事实上,为了保证项目的顺利进行,在项目开发之初,小W应该召集所有的项目成员,对项目的工作内容进行讨论。一般,这种新项目在公司中没有类似的历史数据作参考,只能利用项目成员的经验,“头脑风暴法”比较有效,也是比较常用的方法。接下来,要对该软件项目活动进行划分和排序。
  项目活动的划分
  在对软件项目活动进行划分时,可以考虑按以下步骤实施:

  第一步:按照软件项目生命周期将项目划分为几大阶段,作为第一层,阶段可能包括制定主计划、需求分析、概要设计、详细设计、编码、集成测试、运行维护阶段等。小W的项目需求相对明确,项目人员比较少,沟通起来很方便,可以划分为需求、设计、编码、测试和投产等阶段。

  第二步:将阶段继续分解成活动(第二层),并列出重要的子活动(第三层),直到足以估算成本、历时和方便管理。

  第三步:增加有关管理活动,这些活动不是客户直接要求的,但是也是项目所必需的。包括质量保证活动、项目控制活动等。

  第四步:优化,即检查层次是否明确、是否有遗漏或重复的工作、可阅读性等。

  第五步:给出任务编号,形成工作任务表。

  只有通过以上步骤,才能确定项目中所有需要完成的活动。

  明确了项目的活动后,可以对定义的活动进行排序,使得项目可以有条理地实施,可以使时间安排更加合理,有利于找到关键路径。具体做法是:第一步,明确工作任务表中的最底层活动;第二步,明确每个活动的前置活动;第三步,明确任务间的关系类型;第四步,形成网络图。
  估算项目资源
  项目计划制定完成后,接下来是对活动进行估计,也就是估算软件规模、工作量并配备必要人力资源。在估计中的约束条件和假设往往很重要。

  对于A公司的项目,因为公司没有先例,所以估计的准确度只能取决于项目成员人员的经验。如果小W将估计的依据和方法记录下来,那么今后公司遇到类似项目时,对于项目计划的估计就多了一份参考的资料,计划的准确性就会大大增加。因而,中小软件企业要及时收集整理项目资料,作为新项目的参考资料,这样企业的项目计划水平才会逐步提高,计划的权威性才能够得到客户的认可。通过这种知识库的建立和积累,能够使企业的软件能力得到大大地提高。
  对计划的调整
  经过上述几个过程后,项目组就可以形成项目计划的初稿,得出完成项目所需的时间和项目的关键路径。对于小W的项目组,还有一个客户要求的时间期限。所以,项目组还要比较项目计划的完成时间与客户要求时间的差距。如果这个项目进度与客户的要求有冲突,还要对计划进行调整。

  计划调整使用的技术就是“项目管理知识体系指南”中描述的“赶工和快速跟进。”“赶工”主要是通过增加资源来缩短工期,是一种平衡成本与进度的技术。赶工的目标是以最低的成本增加来最大限度的压缩进度。赶工涉及到资源的增加,一般是人员的增加,它常常会增加项目成本,需要项目经理对组织内部的资源进行协调。快速跟进是将顺序进行的活动改为部分重叠的平行活动以缩短工期,赶工一般不需要增加资源,但是对项目经理的管理能力有一定的要求,同时项目的风险增大。

  像小W所在的中小软件企业,项目经理所能利用的资源有限,公司不太可能再给项目组增加开发人员。所以,作为小W首先考虑的是能否是项目活动平行进行,以缩短项目工期。如果工期还是不能满足客户要求,只能考虑组织加班的方式进行赶工。

  如果小W在对项目计划进行调整之后,工期还是超出一个月,那么客户这个进度要求是无法满足的。这时小W就要考虑与客户进行沟通协商。要么增加工期,要么减少系统功能。与其拖到最后,项目延期造成客户抱怨,不如提前说明情况,减少项目组的压力。

  在本案例中,A公司的项目最终没有按期交付,应该说在项目计划阶段就出现了问题,迫于客户的时间要求,对项目活动严重估计不足,制定了一个不可能完成的计划,造成后续项目工作的被动局面,最终导致失败的结局。

  对于中小软件企业的项目经理,往往被要求在有限资源的条件下去完成项目。面对着客户和公司的双重压力,项目经理必须在项目计划阶段充分考虑项目可能遇到的各种因素,与公司和客户进行充分沟通,才能为后面的项目工作创造良好的条件。只有制定出切实可行的计划,才能保证项目按期完成。


版权所有:北京华泰科信科技有限公司      Copyright (C) 2002 Beijing Huatai Information Technology Co., Ltd.