项目管理准则(白皮书)摘要Microsoft解决方案框架(MSF)具有一种分布式的、能够提高责任性的项目管理小组方法,这个框架还具备很大范围的灵活性,既适用于小型项目,也适用于非常巨大和复杂的项目。本白皮书描述了这种分布式小组方法的原理,并解释了项目经理与MSF小组模型之间的关系。尽管项目管理对于小型项目也很重要,但是本白皮书把重点放在具有扩展小组的大型项目上。虽然本文没有涉及到项目管理领域的所有方面,但是给出了用于规划和评估的推荐做法。框架概述为了使信息技术(IT)项目的成功最大化,Microsoft提供了一个打包的指南,用于有效地设计、开发、部署、操作和支持建立在Microsoft技术之上的解决方案。这一知识来自于Microsoft在大规模软件开发和服务操作项目上的经验,来自于Microsoft顾问在为企业客户实施项目时所获得的经验,以及来自于全球IT行业的最佳知识。本指南安排成相互补充、紧密集成在一起的两个知识体系,或者叫做框架。它们分别是Microsoft解决方案框架(MSF)和Microsoft操作框架(MOF)。在预算范围内按期创建一个业务解决方案需要一种经过检验的方法。MSF为成功地规划、设计、开发和部署IT解决方案提供了经过检验的做法。与规定的方法相反,MSF提供了一个可以伸缩的灵活框架,以满足任何规模的组织或者项目小组的需要。MSF指南由原理、模型和用来管理人员、项目和技术元素的准则,以及它们的折衷(大多数项目都会碰到)组成。Microsoft操作框架(MOF)提供了技术指导,从而让组织能够在使用Microsoft产品和技术创建的IT解决方案上取得任务关键系统的可靠性、可用性、可支持性,以及可管理性。MOF的指导致力于解决人员、过程、技术和管理等问题,这些问题都与操作复杂的、分布式的、差异巨大的IT环境有关。MOF基于一套行业最佳做法,称为IT基础结构库(ITIL),由英国政府的政府商务办公室(OGC)颁布。介绍MSF最引人注目的一个特性是其缺乏一个称为项目经理的角色或者职位头衔。这对于一个用来解决IT项目成功完成相关问题的框架来说是很令人意外的。但是MSF非常强调与项目管理有关的准则和能力。本白皮书总结了项目管理准则的关键方面,并描述了MSF如何来处理它们。本文阐述了MSF的基础原则如何在实施项目管理中衍生一些与众不同的概念和做法。本白皮书还描述了为了支持整个小组,MSF程序管理角色如何提供专门的项目管理技能,并描述了典型的项目管理活动如何分布到MSF小组的各个领导身上。本白皮书并非旨在提供项目管理的指南,它也不会试图解释有经验的项目经理所使用的很多技巧。它的目的在于说明MSF的原理如何产生出项目管理方法,其中项目管理的职责被分布到了小组领导的身上。项目管理的专家提供一种以促进和指导为基础的方法,而不是强行去控制小组里的其他成员。在阅读本白皮书之前,请先阅读MSF小组模型白皮书。MSF基础原理尽管没有在本文里讨论,但是MSF项目管理准则会以某种方式应用MSF所有的原理,这一准则与下面的几点直接相关。清晰的责任共担职责MSF小组模型基于这样一个前提,即小组里的每个角色都代表了对项目的一种独一无二的观点,没有哪一个人能够成功地代表所有角色的所有质量目标。但是客户需要一个对项目状态、行动和当前问题等信息的权威来源。为了解决这一两难的境地,同级的小组必须把对客户的清晰责任与对整体成功的共同职责结合起来。在小组内部,每个角色都对实现自己质量目标所需要的活动负有责任。小组的每个成员都对项目的整体成功和解决方案的质量都负有职责,并希望根据他们自己的知识提供自己的想法和观察,即使是在那些他们并不负责的领域里。具体来说,MSF小组角色共同担当着项目管理很多方面的职责,例如风险管理、时间管理、质量管理、规划、日程安排、小组招聘,以及人力资源管理等。被赋予权力的小组会更加有效在一个高效的小组里,成员被赋予权力来交付他们自己的承诺,他们相信只要是他们所依赖的、由别人来承担的承诺,别人就能够交付承诺。类似的,客户有权认为,小组会兑现其承诺,并就此进行规划。任何延迟或者改变都应该被尽快报告。MSF小组向其成员赋予了完成他们的承诺所需要的权力。这对于项目管理这一角色监视过程的能力具有深远的影响。如果没有被赋予的权力和承诺,小组管理者就必须不断检查,看小组成员是否偏离了方向。一旦他们确信任何延迟都会在发现的时候被立即报告,小组领导就会变成一个具有更大促进作用的角色,帮助小组成员评估他们的真实位置,同时为他们提供指导和帮助。对过程的监视分布在小组的各处,并成为一个支持性的角色,而不是一个控制性的角色。关键概念要理解MSF的项目管理方法,理解MSF定义下列概念和术语的方法就显得尤为重要了:MSF中的准则MSF认为,多个非技术领域里的专长是MSF小组模型里所有角色需要具备的重要能力。这就叫做准则。要获得更多的信息,请参阅MSF小组模型白皮书。当前,MSF有三个准则,分别是风险管理、就绪管理和项目管理。MSF认为,这些准则已经发展出了建立在多个行业基础上的最佳做法,而不仅仅只在信息技术(IT)行业里。这些做法常常能够被应用到IT操作和其他业务过程以及IT项目里。MSF没有重新发明这些做法,而是总结了项目小组需要知道的、关于这些准则的一些内容,并加入了Microsoft小组在过去几年里所领悟到的东西。为了有效地实施这些准则,MSF所有的小组角色都必须在每个领域里具有足够高的能力。什么是项目管理?在描述IT项目里的项目管理之前,不论什么类型的项目,首先理解项目管理的定义是很有好处的:一个项目就是一次临时的投机,它具有确定的开始和结束,其目标是创造一项独特的产品或者服务。项目管理是用来实现项目目标的一套知识、技能、工具和技术,而项目目标就是一致认同的质量、成本、日程安排和约束等的参数。(I)在一些公司和国家里,程序这个术语用来描述被放在一起的项目组。为了与叫做程序管理的MSF小组角色群区分开来,一组项目被叫做项目组合。MSF对项目管理职责、技能和活动的领域进行了下列分类。(ii).项目管理领域描述项目规划/跟踪/改变控制集成和同步项目计划;设置用于管理和跟踪变化的步骤和系统范围管理定义、分解工作范围(项目范围);管理项目折衷日程安排管理利用小组估计生成日程安排,任务排序、将资源与任务进行匹配、应用统计学的技术、日程安排维护成本管理根据小组时间估计来准备成本估计;过程报告和分析;成本风险和价值分析人员资源管理规划资源、构建小组、解决冲突、(为项目而)规划技能就绪交流管理交流规划(小组、客户/赞助商、用户、利益相关人),项目状态报告风险管理促进和推动小组风险管理过程;维护风险文档采购邀请承包商参与服务和/或硬件/软件的投标;准备要求建议(RFP),管理供应商或者分包商;合同和协议的管理和谈判;开放采购订单和批准发票质量管理质量规划,即确定要使用哪些标准,提供质量标准和质量测量过程的文档尽管本白皮书无法给出关于上述领域的完整指导,但是本文档后面会提供经过挑选的MSF推荐做法。项目管理不是由项目经理一个人完成的在日常的言谈中,项目管理这个术语可以被用描述一个角色以及在某个领域里的技能和专长。例如,想想“项目管理层说他们现在应该已经完成了它”这样的说法,以及“太空机构一般都会有优秀的项目管理能力”这样的说法。这种差别很重要,因为项目管理作为一种活动是由很多人(共同)完成的,而这些人并不都是项目经理。在MSF里,项目管理总是用来指上面所列领域里的特定知识和技能,而不是一个角色或者职位头衔。而项目经理这个术语将会被用来描述擅长进行项目管理的人。项目管理和IT特定过程总的来说,项目管理由一些知识和技术组成,这些知识和技术可以广泛应用到实施这些项目的任何行业领域里。每个行业领域(例如太空行业、建筑行业、IT行业等等)都有最适合该行业的特定过程、阶段、角色和做法。为了成功地实施项目,这些针对行业的过程就必须与一般的项目管理做法形成互补。MSF为IT项目提供了过程和推荐的做法。它与项目管理准则的关系见图1。图1:MSF与项目管理准则的关系查看完整的图像。在这上面的图里,针对行业的领域是MSF过程的五个阶段。针对行业的项目管理活动的一个例子是用于跟踪错误的推荐做法。项目管理的一般知识领域在左边。一个例子是用于管理合同或者跟踪预算的推荐做法。交叉代表了特定的项目管理做法,后者是MSF的特征。这些都会在后文进行描述。返回页首MSF项目管理的特征MSF方法的这些与众不同的特征将在这里描述,并在后面进行更加详细的讨论:•项目经理角色的大多数职责都包含在MSF程序管理角色群里。•在需要MSF扩大小组的大型项目里,项目管理活动在多个层次发生。•某些大型的或者复杂的项目需要专门的项目经理或者项目管理小组。项目管理角色包含在程序管理里MSF程序管理角色群包括了下面所示的职能职责领域。在小型项目里,所有的职能职责一般都是由一个程序经理来处理的。随着项目规模和复杂性的提高,这一角色群分解成了两个专门的分支:一个处理解决方案体系结构和规范,另一个处理项目管理。程序管理如何与小组领导一起工作要理解项目管理如何在MSF里工作,就有必要理解小组模型如何扩大规模、进行规划、通讯,以及决策。关于这一点的更多信息,请参阅MSF小组模型白皮书。如何去分布小组管理,在很大程度上要取决于项目的规模和复杂性。MSF是一个高度可伸缩的框架,它能够被用在只需要两个或者三个人的小型项目里,也可以用在非常大型的项目里。Microsoft内部的产品小组就涉及成百甚至上千个小组成员。MSF已经把从Microsoft小组组织里学到知识进行了归纳,供更大范围的IT项目使用。MSF的可伸缩性在很大程度上来自于小组模型。小组模型可以以两种方式扩大规模:1.通过将小组角色抽象成为一套职能职责,而不是特定的职位描述。通过这种方式,每个角色的职能就不会被限定到个人身上。一个角色可以被扩展成为多个角色群,每个都专注于一系列目标更加明确的职责。一个或者多个个人可以担当这些更加专业的角色。2.使用功能小组和职能小组的各种组合,以创建任意数量的可能的大型小组结构。对功能小组和职能小组的描述见下面。职能小组职能小组是存在于一个角色内部的子小组,当一个角色里的任务达到要求使用专门资源的时候它才会被组建。职能小组的一个关键方面并不简单的就是角色需要一个以上的人来担当,而是在其成员中有一个对任务的陈述。图2是其中一个例子。小组领导是大型小组其他成员的集成点。小组领导在其子小组这一层次负有一些项目管理的职责。图2:负责用户体验的职能小组示例功能小组功能小组是跨学科的子小组,它们被安排在解决方案的特定功能周围。功能小组由组成小组模型的六个角色构成。图3显示了一个功能小组。程序管理角色也是为大型小组提供集成点的小组领导。功能小组的结构是远程或者“离岸”子小组(用于为解决方案构建相当分散的组件)的有力候选对象。图3:功能小组示例扩大程序管理职能的规模图4显示了如何在三个项目规模层次处理项目管理活动。在项目A里,所有的角色都由大约六个或者更少的人来担当,所有的项目管理活动都由程序管理来处理。这并不意味着其它的角色就不会为项目管理作出贡献。事实上,这意味着他们在负责规划、时间估计和识别他们各自领域里的风险。图4:项目管理的可伸缩方法在项目B里,大多数或者所有的角色都由子小组来担当,每个角色都有一个小组领导。小组领导对其各自的子小组进行项目管理。程序管理角色群拥有负责整个项目的项目管理活动。要注意的是,功能小组没有在图上显示出来,但是它们也是子小组。由于每个子小组都是跨学科的,所以每一个都有一个程序管理领导。项目C和项目B类似,尽管它有与其规模或者复杂性相关的特殊风险。复杂的项目,就像用在MSF里的一样,意味着项目具有与下列因素相关的高风险:•大规模或者高成本。•地理上分散的小组。•小组成员隶属于多个公司、组织或者分包商。•固定的或者高度受限的预算或者日程安排。•需要技能和时间来管理的合同或者法律问题。为了降低这些风险,程序管理角色群有一个职能小组,它包