Sunday, June 22, 2008

项目管理之项目厉害关系人
首先澄清一个概念,什么是项目厉害关系人?项目厉害关系人就是积极参与项目,或其利益因项目的实施或完成而受到积极或者消极的影响的个人和组织,他们还会对项目的目标和结果施加影响。项目团队必须清楚谁是厉害关系者,而项目经理的责任就是根据这些厉害关系者的要求对其影响加以管理。记得我们之前的文章谈到过,越是到项目的后期这些厉害关系着对项目的影响越小(因为有一句话叫既成事实),不关心各个项目厉害关系者的做法是非常危险的。我们要学会或者说做到,让对项目有利的厉害关系者帮助我顺利的完成项目,并且尽力的消除项目厉害关系者中对项目不利一方的影响。下面列出每个项目都包括的关键厉害关系者:
  • 项目经理
  • 顾客/用户:要记住,顾客和用户有时候是一样的,但有时候是不一样的,比如某个软件外包公司面对的顾客是一方,而实际使用软件的是顾客之外的另一方。
  • 项目执行组织:最直接参与项目工作的单位。
  • 项目团队成员:比如我的软件开发团队。
  • 项目管理团队:比如各个部门经理,组长等等。
  • 赞助人:他们为项目提供了人力和物力资源等。
  • 施加影响者:这类人可能与项目的取得和使用没有直接关系,但是因为他所在客户的单位或组织中地位能够对项目的进度施加积极或者消极的影响。(我们往往会忽略他们,以我的经验有时候他们的影响也是很重要的)
  • 项目管理办公室:如果有的话。
需要记住的是,一个项目相关的厉害关系人,他们之间的要求往往相距甚远,甚至相互冲突,项目经理必须想办法管理好或者说平衡这些需求,这是非常有挑战性的一项工作。说到这里我们就必须谈另外一个内容:组织制度和组织结构。制度是必须有的,三五个人一两条枪是不需要什么制度的,但是一旦是大型项目或者是人员众多,就一定要有一套适合的制度进行管理。而谈到制度化管理就有了组织机构。一个项目经理要去管理和协调那么多的事情那么首先你要明白你在组织机构中的位置是什么,也就是说你的权利有多大。一般如果以一个矩阵来比方的话,矩阵的左边是偏职能型的右边是偏项目性的。职能型的就是说,比如你们公司要开发一个项目,而这个项目是由各个部门和做完成的,每个部门经理负责其中的一个部分。而项目型的就是说,比如你们开发的这个项目,成立一个专门的项目组,每个人都只属于这个项目调遣。现在,看看你属于哪一种,职能型组织结构中的项目经理权利最少,因为基本上很多事情由你的部门经理负责。而项目型的组织结构,项目经理的权利是最大的,你拥有所有的项目资源,你直接向你们的总经理负责。而大多数情况下,我们的项目经理都是属于两者之间。
项目管理之项目生命周期
作为一个项目经理我们知道制定计划对于项目的重要性,制定行之有效的计划的一个前提是识别项目的生命期。所谓项目生命期,其确定了将项目的开始和结束连接起来的阶段(引自PMBOk)。比如,我们在开发软件的时候一般都会有一个可行性研究阶段,主要是确认是否可以立项,这个时候通常意味着项目的开始,但是有时候我们最好把立项阶段的可行性研究阶段作为一个单独的项目来处理,因为,很显然我们的研究结果是这个项目不能立项。但在我所知的项目中,大多是是已经和客户签订了合同,所以这个阶段一般是前期的风险评估阶段了,所以我们也把他放在了整个项目生命期中的一个部分。在这里我要先提一下,项目的生命周期和产品的生命周期是不一样的,举个例子,一个软件开发完毕并交付产品就算项目什么期的借宿,后期的产品上市宣传和营销就不属于项目生命期了,而是属于产品生命期,可以说产品什么期包含了这个产品的项目生命周期,呵呵,是不是有点绕啊,理解就好了:)
就像前面我们提到的例子,如果我们的可行性研究报告认为项目可以立项开发,那么下一步就要建立一个完整的项目组制定需求、设计、开发、测试、文档以及培训等详细的计划和安排。从这里我们可以看出:从项目生命期的一个阶段转移到另一个阶段一般会涉及某种形式的技术交接,这种阶段转移也通常由这种技术交接确定。举个例子,不论是哪种软件过程管理也好,我们都要经历分析、设计、开发和测试几个阶段,其中就设计技术交接,设计必须在得到需求分析的结果之后才能进行,而开发在设计之后(当然某些项目可能直接从需求就到开发阶段了,但其实设计的任务交给了开发人员,这样做是有风险的)。不过有的时候在前一个阶段的可交付成果通过验收之前我们认为风险是可以承受的那么我们可以紧接着开始后一阶段的工作。也就是说前后阶段的任务进行了重叠,举个软件工程的实际例子,比如XP(极限编程)。
但是,说了这么多,目前还没有确定项目生命期的最好方法。不过一般来讲项目的生命期通常规定了:
  • 项目各个阶段应当从事何种技术工作:比如需求分析,详细设计,开发,测试以及文档等等。
  • 项目各个阶段可交付的成果何时生成,以及如何审查、核实和确认:比如我们会制定相应的计划,何时结束需求分析;何时开始详细设计;何时开发;测试等等。并且制定相关的项目管理流程,如何以及有谁来审核每个阶段的交接成果等等。
  • 项目各个阶段有哪些人参与:比如需求分析阶段我们可能会有需求分析人员和客户代表;设计阶段可能有架构设计人员以及相关的项目组长参加等等。
  • 如何控制和批准项目的各个阶段:一个项目的生命期可以很具体也可以很笼统。具体的生命期可能包含各种图表和表格,比如MS.Project等等。
  • 项目阶段一般按顺序首位相接,通常根据某种形式的技术信息或可交付成果进行传递来确认:不管是传统的瀑布式流程还是RUP流程甚至XP都包含了这个传递的过程,只不过形式和方法存在差别。大多数项目生命期具有若干共同特点。
  • 人力投入和费用:每个项目都有预算,你的项目需要多少人、需要购买那些硬件软件以及日常开销等。但是一个规律是,这些人力和费用开始的时候需要较低,随之增高,在项目收尾的时候会迅速降低。
  • 项目开始的时候成功的可能性最低,因为这是的不确定因素很多,比如需求的不明晰,技术的风险,厉害关系人的影响等等。但是随着项目的继续执行,成功完成项目的可能性通常都逐渐上升。
  • 项目开始时,项目厉害关系人对项目产品的最后特点和项目最后费用影响最强,而随着项目进展,这种影响会逐步减弱。
项目的每个阶段都以一个或多个可交付的成果完成为标志。比如技术说明书、程序代码,测试用例、用户手册等等。每个项目有不同的阶段,甚至某些项目根据自己规模、复杂程度等还设有子阶段。但是为了便于监控,每一个阶段都要与一个或多个具体的可交付成果对应。没一个阶段的可交付成果都要进行审查,审查结束意味着可以进行下一个阶段或者项目的终止。我们把这种阶段审查成为阶段放行口、阶段关卡或者验收站
综上所述,所有的工作都是为了降低项目的风险,所以我的建议是对于规模或者风险较大的项目,最好是建立项目的项目生命周期,并且明确每一个阶段的可交付成果,制定相应的项目管理和开发流程,项目经理的职责就在于监控和保证各个可交付成果的按时监控的通过放行口。