10第0章软件项目管理概述 求和需要的信息,即确定谁需要什么信息,什么时候需要,如何获取这些信息。信息分发及时的提供 项目人员需要的信息。项目绩效报告包括收集和发布项目的性能信息,如项目的状态,项目的进展报 告,项目的预测等。项目干系人管理主要是通过沟通管理满足项目相关人员的需求和期望,同时解决 问题 8)项目风险管理 项目风险管理是决定采用什么方法和如何规划项目风险的活动,是指对项目风险从识别到分析乃 至采取应对措施等一系列过程。它包括将积极因素所产生的影响最大化和使消极因素产生的影响最小 化两方面内容。风险管理的主要过程是:风险管理规划(k anagement planning)、风险识别(isk identification)、定性风险分析(qualitative risk analysis)、定量风险分析(quantitative risk analysis)、风 险应对计划(risk response planning))和风险监控(risk monitoring and conro)。 9)项目采购管理 项目采购管理包括从执行组织之外获取货物和服务的过程。为了满足项目的需求,项目组织需要 从外部获取其些产品,议就是采的。采购的意义是广义的,可能是采购物品,也可能是采购服务(例 如软件开发等),还包括收集有关产品的信息,进行择优选购。采购一般是通过合同进行的。项目采购 管理包括如下的过程:采购计划编制(planning purchases and acquisitions)、合同计划编制(planning contracting)、供方反馈获取(requesting seller responses)、供方选择(source selection)、合同管理(con )、合同收尾(the contract)。 0.4.2项目管理知识体系的标准化过程组 按照项目管理生命周期,项目管理知识体系又分为5 个标准化过程组,也称为项目管理生命周期的5个阶段 (启动过程组】 (计划过程组】 见图06.他们是启动过程组、计划过程组、执行过程组 控制过程组、收尾过程组。每个标准化过程组有一个或多 个过程组成。它们正如导弹的发射过程,从设定目标 (控制过程组】 执行过程组 定目标,执行目标,控制目标,到最后的达到目标的目 的。它们的关系定义如下: 1)启动过程组:启动过程组主要是确定一个项目或 《收尾过程组) 个阶段可以开始了,并要求着手实行。定义和授权项目 或者项目的某个阶段。在这一过程中最重要的是确定项目 图06项目管理的5个过程组 章程和项目初步范围说明书。项目章程是在客户与项目经 理达成共识后建立的,主婴包括项目开发人、粗的成本估算和进度里程碑等信息。项目初步范围说明 书包含了范围说明书涉及到的所有内容,同时还包含了初步的WBS分解、假设约束、风险、开发人 员、范围、交付物、粗进度里程碑、粗成本费用估算、验收准则和项目边界等诸多内容。这些做好后 防止客户在软件提交后提出无理的要求。 2)计划过程组:计划过程组是为完成项目所要达到的商业要求而进行的实际可行的工作计划的设 计、维护,确保实现项目的既定商业目标。计划基准是后面跟踪和监控的基础。 3)执行过程组 :执行过程组根据前面制定的基准计划,协调人力和其他资源,去执行项目管理计 划或相关的子计划。执行过程则存在两个方面的输入, 个是根据原来的基准来执行,另外一个就是 婴根据监控中发现的变更来执行。因为主要变更必须婴得到了整体变更控制批准后才能够执行。 4)控制过程组:通过监督和检测过程确保项目达到目标,必要时采取一些修正措施。集成变更控 制 一个重要的过程 5)收尾过程组:收尾过程组是取得项目或阶段的正式认可并且有序地结束该项目或阶段。应提交 给客户,发布相关的结束报告,并且更新组织过程资产并释放资源
第0章软件项目管理概述11 各个过程组通过其结果进行连接 一个过程组结果或输出是另一个过程组的输人。其中,计划过 程组、执行过程组和控制过程组是核心管理过程组。 表0-1是PMBOK的5个标准化过程组、9个知识领域、44个模块之间的关系。 表0-1 PMBOK的5个标准化过程组、9个知识领域、44个模块之间的关系 过程组 知识额城 启动过程组 计划过程组 执行过程组 控制过程组 收尾过程组 项目集成管理 项目章程编制 项目计划编制 指导与管理项目执行 项目监控 项目结束 初始项目范围绵制 集成变更挖制 项目范围管理 范国守 任务分解结构定义 项目时间管理 任务宁义 进度计划控 任务排序 任务贷源估计 项目成本管理 成本估算 成本校制 成本顶算 项日质量管现 质量规划 质量保证 质黛控制 项目人力资额管理 人力资源规划 人力资源获取 困队管理 团队建设 项日沟通管理 沟通规划 信息分发 绩效报告 项目干系人理 风险管理规划 风晚监控 风识易 项目风险管理 分 风险应对计划 项目采购管理 采购计划编制 供方反馈获取 合同管理 合同收尾 合同计划编制 供方选择 0.5过程管理与软件项目管理的关系 0.5.1软件过程定义 所谓过程,简单来说就是我们做事情的一种有的方式。我们做任何事情都有过程存在,小 到日常生活中的琐事,大到我们的工程项目。对于做一件事,有过经验的人对完成这件事的过程 会很了解,他会知道完成这件事需要经历几个步骤,每个步骤都完成什么事,需要什么样的资源 和什么样的技术等等,因而可以顺利地完成工作。没有经验的人对过程不了解,就会有无从着手 的感觉。下面两个图可以形象的说明过程在软件开发中的地位。如果项目人员将关注点只放在最 终的产品上(如图0?所示),不关注期间的开发过程,那么不同的开发队伍或者个人可能就会 采用不同的开发过程,结果导致开发的产品质量是不同的,有的质量高,有的质量差,完全依赖 个人的素质和能力
12第0章软件项目管理概述 用户需求 关注点 图07关注开发的结果 反之,如果将项目的关注点放在项目的开发过程,见图0-8,不管谁来做,也不管什么需求,都采 用统一的开发过程,也就是说,企业的关注点在过程。经过同一企业过程开发的软件,产品的质量是 样的。可以通过不断提高过程的质量,来提高 产品的质量。这个过程是公司能力的体现,它是不依 赖于个人的。也就是说,产品的质量依赖于企业的过程能力,不依赖于个人能力。 关注点 过程 产品 图08关注开发的过程 对于软件过程的理解,绝对不能简单地理解为软件产品的开发流程,因为我们要管理的并不只是 软件产品开发的活动序列,而是软件开发的最佳实践。它包括:流程、技术 产品、 活动间关系 角 色、工具等,是软件开发过程中的各个方面的因素的有机结合。因此,在软件过程管理中,首先要进 行过程定义,将过程以一种合理的方式描述出来,并建立起企业内部的过程库,使过程成为企业内部 可以被重用的共享资源。对于过程,要不断地进行改进,以不断地改善和规范过程,以帮助提高企业 的生产力。如果将一个软件生产类比于一个工厂的生产,那么生产线就是过程,产品按照生产线的规 定过程进行生产。 软件开发的风险之所以大,是由于软件过程能力低,其中关键的问题在于软件开发组织不能很好 地管理其软件过程,为此必须强调和加强软件开发过程的控制和管理。软件项目的开发过程主要有系 统调研、需求分析、概要设计、详细设计、编码、测试、实施与维护等。对于不同的软件项目,虽然 大体上过程相 ,但不同的项目 个过程所包含的一系列具体的开发话动(子过程)千差万别, 而且不同的项目组采用不同的开发技术、使用不同的技术路线, 其开发过程的侧重点也不一 。因此 项目经理在软件项目开发前,根据所开发的软件项目和项目组的实际情况,建立起一个稳定、可控的 软件开发过程模型,并按照该过程来进行软件开发是项目成功的基本保证
第0章软件项目管理概述13 软件过程是极其复杂的过程。我们知道,软件是由需求驱动的,有了用户应用的实际需求才会引 发开发个软件产:品。教件产品从需求的出现到最终的产品出现。要经历一个复杂的开发时程。软件 品在使用时要根据需求的变更进行不断的修改 这称为软件维护。我们把用于从事软件开发及维扩 的全部技术、方法、活动、工具,以及他们之间的相互变换统称为软件过程。由此可见,软件过程的 外延非常之大,包含的内容非常之多。对于 :个软件开发机构来说,做过一个软件项目,无论成功与 否,都能够或多或少地从中总结出一些经验。做过的项目越多,其经验越丰富,特别是一个成功的开 发项目是很值得总结的,从中可以总结出一此完善的过程.我们称之为最佳实践(best practices) 最佳实践开始是存放在成功者的头脑中的 很难被机构内部共享和重复利用,发挥其应有的效能 长期以来,这些本应从属于机构的巨大的财富被人们所忽视,这无形中给机构带来了巨大的损失 当人员流动时这种企业的财富也随之流失,并且也使这种财富无法被其他的项目再利用。过程管理, 就是对最佳实践进行有效的积累,形成可重复的过程,使我们的最佳实践可以在机构内部共享。过 程管理的主要内容包括过程定义与过程改进。过程定义是对最佳实践加以总结,以形成一套稳定的 可重复的软件过程。过程改进是根据实践中对过程的使用情况,对过程中有偏差或不切合实际的些 方进行优化的活动。通过实施过程管理,软件开发机构可以逐步提高其软件过程能力,从根本上提 高软件生产能力。 0.5.2过程管理在软件项目中的作用 上面我们已经看到了过程在软件开发中的重要性。对于软件这种产品来讲,软件过程具有非常重 要的意义。对一件家具,它的质量好坏主要有两方面的因素。一是用于生产这件家具的材料的质量要 等香得准有好的家生产的咖T工要好明的家必工M湾为主么由工万 ,产品的质量自然参 不齐 ,由于技术的 断发展 材刻上到了进一北的提高 同时在 产品的加工上,更多地引人了高技术含量的木工机械,所以产品的加工能力和质量的稳定性都得到 很大程度的提高。在软件这种产品的生产上,我们说有一定的特殊性。首先,软件产品没有物理的存 实体,它是完全的逻辑的高度聚合体,那么在质量因素的构成上,材料质量的因素就没有了,那么, 在 产过程中唯 影响 品质量的战是产品的生产梦这个生产工在软件工程中的术语就是软件 程。软件过程管理对于软件产业的发展非常重要。软件 产业的发展基础不能永远是零,软件产业发 展中的重要问题就是要注重循序渐进地积累,不单是积累技术实践,更为重要的是积累我们所欠缺的 管理实践,积累项目中的各个环节的实践经验和项目管理的实践经验,这样才能保证我们的生产力持 续地发展,满足业务发展的需要 软件过程管理,将帮助软件组织将过程资产进行有效管理,使之可以被复用在实际项目中,并结 合从项目中获取的过程的实际应用结果来不断地改进过程。这样软件组织将能够有能力改变自身的命 运,将它从维系在一个或几个个体身上变成维系在企业中的管理上。过程管理能够让软件组织直观感 党到的 个最明显的转变就是软件项目中的所有成员的位置可以替换。 0.5.3~过程管理与项目管理的关系 过程管理,顾名思义,就是对过程进行管理,这种管理的 过程改进 目的是要让过程能够被共享、复用,并得到持续的改进。在软 过程定义上 件行业,要管理的是软件过程。过程管理 与项目管理在软 织中是两项最为重要的管理,项目管理用于保证项目的成功 目规划 而过程管理用于管理最佳实践。但这两项管理并不是相互孤立 的,而是有机地紧密地结合的。图09中展现的是过程管理和 通目许理的基本关系。过程管理的成果即软件过程可以在项目 管理中辅助于项目管理的 在项目的计划阶段,项目计划 的最佳参考是过去的类似项目中的实践经验,这些内容通过过 图09项目管理与过程管理的关系
14第0章软件项目管理概述 程管理都成为了过程管理的工作成果,这些成果对于一个项目的准确估算和合理计划非常有帮助,合 理的计划是项目成功管理的基础。在项目计划的执行过程中,计划将根据实际情况不断地得到调整, 直到项目结束时,项目计划才能被真正稳定下来。这份计划及其变更历史将是过程管理中的过程改进 的最有价值的参考。在国外的成鹤的软件组织内部。每个项目的开发完成后必须提供一个《软件过程 改进建议)的文档,这是从软件开发项目的过程 中提炼出来的对软件过程改进的建议。过程的改进就 是注重从项目的实 经验中不断地将最佳实践提炼出来。 0.6软件项目管理过程 软件项目管理不同于其他的项目管理,有很多的特殊性。软件是一个特殊的领域,远远没有建筑 软件目前有很大的发展空间,经验在项目管理中占有很重要的作用,理论和标 准还在发展中 本现了软件 ”的特色 为实现项目目标,使软件项目获得成功,需要对软件项目的范围、可能的风险、需要的资源、实 现的任务、成本,以及进度的安排等做到心中有数。而软件项目管理可以提供这些信息,它贯穿于项 目的始终。 在本书中,将软件项目管理分为4个阶段:项目初始、项目计划、项目执行控制、项目结束。每 个阶段有更多的过程或者程序 0.6.1项目初始 软件项目管理的第一个阶段是确定项目的目标范围,包括开发和被开发双方的合同(或者协议), 软件要完成的主要功能,以及这些功能的量化的范围,项目开发的阶段周期等。软件的限制条件,性 能, 稳定性等都必须明确的说明:必须满足客户的要求。 软件企业实施项目管理的挑战,可以说是贯穿于项目的整个生命周 。项目初始过程面临的第 个挑战是“项目目标含糊,充满冲突”。项目的项目干系人,如项目发起人、成果使用者、负责单位 等之间对需求理解不一致,对项目的目标设定不一致。初始过程面临的第二个挑战是“交流语言不规 带,缺乏为通技巧和工且”。以上两方面的挑战导致了在项目初始过程中,很难使项目目标被清晰定义 一致理解 除此之外, 对项目目标 不够,也是项目初始过程中普遮存在的一个问题。 很多项目管理者低估了达成项目目标一致性的难度,在这方面投入的精力不够,往往简单地认为已经 达到一致。因此,很多项目其实是在目标没有定义清楚的情况下匆忙启动的。 0.6.2项目计划 项目计划是建立项目行动指南的基准 包括对软件项目的估算 风险分析、进度规划、人员 的选择与配备、产品质量规划等,它指导项目的进程发展。规划建立软件项目的预算 ,提供 控制项目成本的尺度,也为将来的评估提供参考,它是项目进度安排的依据。最后,形成的项目 计划书将作为跟踪控制的依据。软件项目计划是一个用来协调所有其他计划,以指导项目执行和 控制的可操作的文件。它体现了对客户需求的理解,是开展项目活动的基础,是软件项目跟踪与 监控的依据 项目计划过程面临的最大挑战就是计划的准确性差。产生这个问题的原因是多方面的 首先 ,是 信息不充分。很多项目经理在制定计划,尤其是制定一个新的项目计划时没有认真地去挖据项目信息 没有花足够的精力去与客户进行深入交流。由于没有真正使项目目标达到一致,因此项目人员获取的 信息往往是互相冲突的,是“垃圾信息”,对制定计划没有有效的帮助。第二,缺乏科学的估算方法。 第三,对计划工具的抵制。第四,缺乏对数据的统计积累。这也是一个非常具有挑战性的方面,也是 我们在企业发展中应注重加强的方面。 0.6.3项目执行控制 一旦建立了基准计划就必须按照计划执行,包括按计划执行项目和控制项目,以使项目在预算内