4.6.2成本预值. 109 7.4n2沟通建议.139 4.7小结 .110 7.5校务通系统案例分析 39 4.8练习题 7.6小结.139 第5章软件项目质量计划 112 77练习项 140 5.1质量概述 112 第8意 软件项目风险计划 .141 5.1.1 软件质量 113 8.1风险概念 141 5.1.2软件质量与硬件质量的比较.114 8.11风险定义 141 5.1.3 软件质量的重要性. 11 812 风险类型 142 5.1.4软件质量管理的发展过程 114 8.1.3 风险的基本性质 +143 5.2质量管理 115 8.2风险管理 144 5.2.1质量计划 115 8.3风险识别 145 5.2.2质量保证 16 8.3.1 德尔菲方法 145 5.2.3质量控制 116 8.3.2 头脑风暴法 145 5.3质量计划开发.117 8.3.3 情景分析法· 146 5.3.1质量成本 117 83.4 风险条目检杳栽 146 5.3.2质景计别的方法 118 8.3.5 其他方法 152 5.3.3 质量计划的编写 118 83.6风险识别的结果 152 5.4质量体系 120 8.4风险评估 152 5.5软件质量改善的建议 122 8.4.1 定性风险评估 152 5.6校务通系统案例分析 122 8.4.2 定量风险分析 153 5.7小结. 125 8.4.3风险评估的结果 155 58练习题 125 8.5风险应对计划: 156 第6章 执件项目人力资源计划 127 8.5.1 回避风险. 156 61 相关概念 127 85.2转移风龄 157 6.2项目组织结构. 127 8.5.3 损失控制 6.2.1 职能型组织结构 128 8.5.4 自留风险 158 6.2.2 项目型组织结构. 128 8.5.5风险规划的结果 158 6.2.3 矩阵型组织结构 12g 8.6风险管理建议 159 6.3责任分配矩阵 131 8.7 校务通系统案例分析 161 6.4人员管理计划. 131 8.8 小结 161 6.5 校务通系统案例分析 132 8.9练习题 161 6.6小结. 133 第9章 软件项目合同计划 163 6.7 练习题 133 9.1 项日采购 163 第7章项目沟通计划: 1535 9.2 合同规划 7.1 项目沟通管理概述 135 9.2.1关千合同 164 7.2沟通方式. 136 9.2.2合同类型 164 7.3 沟通渠道 136 9.2.3合同计划 .165 7.4项目沟通计划· 137 9.3软件外包 166 7.4.1沟通计划 13 9.4校务通系统案例分析 +。167
第0章 ■ 软件项目管理概述 0.1项目与软件项目 无论是“项目”、“软件”还是“软件项目”已经越来越被大家所熟悉,而且普遍存在于我们生活 或者社会的各个方面。而软件行业是一个极具挑战性和创造性的新行业,管理上没有很成熟的经验可 供借鉴。 0.1.1项目及其特征 人类社会和日常生活中有很多的活动,但是有的活动我们称为“项目”,有的不能称为项目。 所谓项目(poj©ct),就是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努 力是以一套独特而相互联系的任务为前提,有效地利用资源,为实现一个特定的目标所做的努 力;项目是一个特殊的将被完成的有限任务,它是在一定时间内满足一系列特定目标的多项相关 工作的总称。 从野餐活动到大型聚会,从阿波罗登月到微软的操作系统,从修建三蛱到神州发射都是项目,一 般说,工作活动包括日常运作和项目,它们虽然有共同点,例如它们都需要由人来完成、都受到有限 资源的限制、都需要计划、执行、控制。但是项目是组织层次上进行的具有时限性和唯一性的工作 也许需要一个人,也许涉及成千上万的人,也许需要100小时完成、也许要10年1千人完成等等。 “上班”、“批量生产”、“每天的卫生保洁”等是属于日常运作,不是项目。项目与日常运作的不同是 项目是一次性的,日常运作是重复进行的:项目是以目标为导向的,日常运作是通过效率和有效性 现的;项目是通过项目经理及其团队工作完成的,而日常运作是职能式的线形管理;项目存在大量的 变更管理,而日常运作则基本保持持续的连贯性。下面给出项目所具有的特征。 )目标性。项目工作的目的在于得到特定的结果,即项目是面向目标的。其结果可能是一种产 品,也可能是一种服务。目标贯穿于项目始终,一系列的项目计划和实施活动都是围绕这些目标进行 的。例如,一个软件项目的最终目标可以是一个学生成绩管理系统,另外一个软件系统的目标可能是 个证券交易系统等等 2)相关性。项目的复杂性是固有的,一个项目里有很多被此相关的活动。例如。某些活动在其他 活动完成之前不能启动,而另一些活动则必须并行实施,如果这些活动相互之间不能协调地开展,就 不能达到整个项目的目标。 3)周期性。项目要在-一个限定的期间内完成,是一种临时性的任务,有明确的开始点和结束点。 当项目的目标达到时,意味着项目任务完成。项目管理的很大一部分精力是用来保证在预定时间内完 成项目任务,为此而制定项目计划进度表,标识任务何时开始,何时结束。项目任务不同于批量生产。 批量生产是相同的产品连续生产,取决于要求的生产量,当生产任务完成时,生产线才停止运行。这 种连续生产不是项目。 4)独特性。在一定程度上,项目与项目之间没有重复性,每个项目都有其独自的特点。每一个项 目都是唯一的。如果一位工程师正在按照规范建造第五十栋农场式的住宅,其独特性一定很低,它的 基本部分与已经造好的第四十九栋是相同的,如果说有特殊性也只是在于地基的土壤不同,使用了 个新的热水器,请了几位新木工等等。然而,如果你为新一代计算机设计操作系统时,你的工作必然
2第0章软件项目管理概述 会有很强的独特性。这个项目以前没有做过,以前的经验能提供的帮助不多,而且会存在很大的风险 和很多不确定性因素 5)约束性。每一项目都需要运用各种资源来作为实施的保证,而资源是有限的。所以,资源成本 是项目成功实施的一个约束条件。 6)不确定性。 一个项目开始前,应当在一定的假定和预算基础上准备一份计划,但是,在项目的 具体实施中,外部和内部因素总是会发生一些变化,因此项目也会出现不确定性 0.1.2项目群与项目、项目与子项目的关系 现在来确认一下关于项目群与项目、项目与子项目的关系。 项目群也称为大型项目(p心gm),是通过协调来进行统一管理的一组相互联系的项目,它本身 可能不是项目。许多大型项目通常包括持续运作的活动。一个大型项目可以理解为比项目高一级别的 大通目。出如“863”计别“量火计划”、“登月计划”、“而波罗登月计划”等。以“863”计划为 例,它的目标是跟踪世界先进水平,集中资源重点投人,争取在我国部分有优势的高科技领域有所突 破,为我国在21世纪的经济发展和国防安全创造条件。这样的目标是战略性的,很难具体化,所以本 身不是项目,但它可以通过一系列的具体项目去实施。 而子项目(ubprojeet)是将项目分解成为更小单位,以便更好控制项目,项目中的某一阶段可以 是一个单独的项目,也可以是一个子项目,一个子项目可以转包给外部机构的一个单元。在实际工作 中,子项目的划分是很灵活的,可能有,也可能没有,视项目的需要而定。可以按照阶段划分,例如 期项目,二期项目; 也可以按照项目的组成部分来划分。 0.1.3软件项目 软件是计算机系统中与硬件相互依存的部分,它是包括程序、数据及其相关文档的完整集合。其 中,程序是按事先设计的功能和性能要求执行的指令序列:数据是使程序能正常操纵信息的数据结构 文档是与程序开发、维护和使用有关的图文材料。 软件项目除了具备项目的基本特征之外,还有如下的特点: 1)软件是一种逻辑实体,不是具体的物理实体,它具有抽象性。这使得软件与其他的诸如硬件或 者工程类有很多的不同。 2)软件的生产与硬件不同,开发过程中没有明显的制造过程,也不存在重复生产过程。 3)软件没有硬件的机械磨损和老化问题,然而,软件存在退化问题,在软件的生存期中,软件环 境的变化将导致软件失效率的提高。 4)软件的开发受到计算机系统的限制,对计算机系统有不同程度的依赖。 5)软件开发至今没有摆脱手工的开发模式,软件产品基本上是“定制的”,做不到利用现有的软 件组件组装成所需要的软件。 6)软件本身是复杂的。来自于应用领域实际问题的复杂性和应用软件技术的复杂性。 7)软件的成本相当的昂费。软件开发需要投人大量的、复杂的、高强度的脑力劳动,因此成本比 较的高。 8)很多的软件工作涉及社会的因素,比如许多的软件开发要受到机构、体系和管理方式等问题的 限制。 软件项目是一种特殊的项目,它创造的唯一产品或者服务是逻辑载体,没有具体的形状和尺寸 只有逻辑的规模和运行的效果。软件项目不同于其他的项目,软件是 个新领城而且涉及的因素比较 多,管理比较复杂。目前,软件项目的开发远远没有其他领城的项目规范,很多的理论还不能适应所 有的软件项目,经验在软件项目中仍起很大的作用。软件项目是有相互作用的各个系统组成的,“系 统”包括彼此相互作用的部分, 软件项目中涉及的因素越多,彼此之间相互的作用就越大。另外变更
第0章软件项目管理概述3 在软件项目中也是常见的现象,例如需求的变更、设计的变更、技术的变更、社会环境的变更等,所 有这些都说明软件项目管理的复杂性。 项目的独特性和临时性决定了项目是渐进明细的,软件项目更是如此,因为软件项目比其他的项 目有更大的独特性 。“渐进明细”表明项目的定义会随着项目团队成员对项目、产品等理解认识的逐 步加深而得到逐渐的深人的描述。 软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的 因素。在实际工作中 ,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得 出有益的教训,是今后的项目中取得成功的关健。 0.1.4软件项目要素组成 简单地说,项目就是在既定的资源和要求的约束下,为实现某种目的而相互联系的一次性工作任 务。一个软件项目的要素包括软件开发的过程、软件开发的结果、软件开发赖以生存的资源以及软件 项目的特定委托人或者说是客户,它既是项目结果的需求者,也是项目实施的资金提供者。 0.1.5项目目标成功实现的制约因素 一个成功的项目应该是在工程允许的范围内满足成本、进度和客户满意的产品质量。所以,项目目 标的成功实现受4个因素制约:项目范围、成本、进度计划和客户满意度,见图0-1。项目范围是为使客 户满意,必须做的所有工作。项目成本就是完成项目所需要的费用。项目进度是安排每项任务的起止时 间以及所需的资源等,是为项目描绘的一个过程蓝图。项目目标就是在一定时间、预算内完成工作范围 以使客户满意。客户能否满意要看交付的成果质量,只有客户满意才能意味着可以更快的结束项目,否 则会导致项目的拖延,从而增加额外的费用。 、项目范围 成本 、进度计划 、客户满意度 图0-】项目目标成功实现的制约因素 0.2项目管理 项目普遍存在于人们的工作和生活中,如何管理这些项目就是 项需要研究的任务。项目管理起源于美国,20世纪40~50年代主要应 战略管理 用干国防和军工项目。后来被广泛应用于工商、会融、信息等产业以 及行政管理领域。目前 项目管理已经成为综合多门学科的新兴研究 领域,其理论来自于项目管理的工作实践。所谓项目管理就是指把各 运作男 种系统、方法和人员结合在一起,在规定的时间、预算和质量目标范 围内完成项目的各项工作。 对一个组织的管理而言,主要包括三个部分“战略管理”、“运作 管理 、“项目管理” ,见图0-2。 图02三种管理的关系 战略管理(strategy management)是从宏观上帮助企业明确和把握企业的发展方向。 ·运作管理(operation management)是对日常的、重复性工作的管理 ·项目管理(project management)是对一次性的、创新性工作的管理
4第0章软件项目管理概述 项目是企业的最小赢利单位, 项目管理自然成为构筑企业利润的基石。从这种意义上说,项目管 理是企业的核心竞争力所在。由于项目管理具有效率高,反映灵敏的优点 ,所以更多的企业管理希望 采取项目式管理的方式(management by project),从而可以对用户反应更及时,管理更高效,提高企 业的管理质量。 0.2.1项目管理背景 随着世界由工业时代进入信息时代,时空概念的根本改变加剧了项目的复杂性和可变性。项目涉 及的范围和时间、空间跨度都在以空前的速度扩大。而随着行业竞争的加剧,项目只有在最少时间 最低花费的情况下完成才有意义。项目本身的复杂性和巨大风险以及在分工合作中个人经验的不确定 性,使个人经验已无法确保项目的成功或按时完成。 项目管理是20世纪50年代后期发展起来的一种计划管理方法,它一出现就引起广泛关注。195 年美国杜邦公司把这种方法应用于设备维修,把维修停工时间由125小时锐减为78小时。1958年美国 人在北极星导弹设计中,应用项目管理技术,竟把设计完成时间缩短了两年。由于项目管理在运作方 式和管理思维模式上最大限度地利用了内外资源,从根本上改善了管理人员的工作程序】 提高了效率 降低了风险,因此从20世纪60年代以来它被广泛运用到航空航天、闲防、信息、建筑、能源、化工、 制造、环保、交通运输、金融、营销、服务、法律等行业,以及国家和地方政府乃至联合国;它不仅 适用于大公司也适用于小型企业。目前,在全球发达国家的政府部门和企业机构中,项目管理已成为 运作的中心模式。 0.2.2项目管理定义 项目管理是指一定的主体,为了实现其目标,利用各种有效的手段,对执行中的项目周期的各阶 段工作进行计划、组织、协调、指挥、控制,以取得良好经济效益的各项活动的总和。通过项目各方 干系人的合作,把各种资源应用于项目,以实现项目的目标,使项目干系人的需求得到不同程度的满 足。要想满足或超过项目干系人的需求和期望,我们就需要在下面这些相互间有冲突的要求中寻求 平衡 )范围、时间、成本和质量。 2)有不同需求和期望的项目干系人。 3)明确表示出来的要求(需求)和未明确表达的要求(期望)。 “项目管理” 有时被描述为对连续性操作进行管理的组织方法。这种方法,更准确地应该被称为 “由项目实施的管理”,它是将连续性操作的许多方面作为项目来对待,以便对其可以采用项目管理的 方法。虽然,对于一个通过项目实施管理的组织而言,对项目管理的认识显然是非常重要的。 项目管理是要求在项目活动中运用知识、技能、工具和技术,以便达到项目目标的活动。它是伴 随着项目的进行而进行的,目的是为了确保项目能够达到期望的结果的一系列管理行为。正如Mulcahy 所言“项目经理的工作是·奇妙的'、‘伟大的”,但是也是非常有技巧的。 项目管理类似导弹发射控制过程,需要一开始就设定好目标,然后在飞行中锁定目标,同时不断 调整导弹的方向,使之不能偏离正常的轨道,最终击中目标。 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员 进度、质量、风险等进行分析和管理的活动。项目管理是项目能否高效、顺利进行的一项基础性的 工作 0.2.3软件项目管理的特征及重要性 当前社会的特点是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快 用户需求与市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来