软件项目管理教材:软件项目管理案例教程(第2版)作者:韩万江姜立新授课教师:张陵山第0章软件项目管理概述3哪些活动是项目?上课野餐活动集体婚礼社区保安开发操作系统每天的卫生保洁神州飞船计划人类社会活动很多,有的可以称为项目,有的则不能。40.1项目与软件项目项目及其特征项目(Project):是为创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力;是以一套独特而相互联系的任务为前提,有效地利用资源,为实现一个特定的目标所做的努力;项目是一个特殊的将被完成的有效任务,是在一定时间内满足一系列特定目标的多项相关工作的总称。5项目所具有的特征1.目标性项目是面向目标的,项目工作目的在于得到特定结果。目标贯彻于项目始终,一系列的项目计划和实施活动都是围绕目标进行的。6项目所具有的特征2.相关性一个项目里有很多彼此相关的活动,活动间有些是异步的,有些是并发或并行的,要达到项目的目标,必须对活动进行协调。7项目所具有的特征3.周期性项目是临时性的任务,要在一个限定的期间内完成。项目有明确的开始点和结束点。当项目的目标达到时,就意味着项目任务的完成。项目管理的很大一部分精力是用来保证在预定时间内完成项目任务。为此要制定项目计划进度,标识任务何时开始,何时结束。8项目所具有的特征4.独特性在一定程度上,项目与项目之间没有重复性,每个项目都有独自的特点。每一个项目都是唯一的。5.约束性每一个项目都需要各种资源作为实施的保证,而资源是有限的。资源成本是项目成功实施的一个约束条件。9项目所具有的特征6.不确定性项目开始前,应在一定的假定和预算基础上准备一份计划,但在项目具体实施中,内外因素会发生变化,导致项目出现不确定性。1010项目与日常运作上课野餐活动集体婚礼社区保安开发操作系统每天的卫生保洁神州飞船计划日常运作项目11软件项目软件的特点:软件是一种逻辑实体,具有抽象性。软件的生产过程中没有明显的制造过程。软件没有硬件的机械磨损和老化问题,但仍需要维护。软件的开发受到计算机系统的限制,对计算机系统有不同程度的依赖。软件开发至今没有摆脱手工方式。软件本身是复杂的。软件的成本相当昂贵。12软件项目软件项目是一种特殊的项目:它创造的产品或者服务是逻辑实体。很多理论还不能适应所有的软件项目,经验在软件项目中仍起很大作用。软件项目是由相互作用的各个系统组成,项目中各个元素之间联系复杂。变更在软件项目中是常见现象。所有这些说明软件项目管理是复杂的。13软件项目要素组成一个软件项目的要素包括:软件开发的过程;软件开发的结果;软件开发赖以生存的资源;软件项目的特定委托人(客户)。特定委托人既是项目结果的需求者,也是项目实施的资金提供者。14项目目标成功实现的制约因素一个成功的项目应该是在工程允许的范围内满足成本、进度和客户满意的产品质量。项目目标的成功实现受4个因素的制约:项目范围:是使客户满意而必须做的所有工作;成本:是完成项目所需要的费用;进度计划:项目进度是安排每项任务的起止时间以及所需要的资源等,是为项目描述的一个过程蓝图;客户满意度。项目目标就是在一定的时间、预算内完成工作范围,以使客户满意。150.2项目管理什么是管理管理是为了某种目标,应用一切思想、理论和方法去合理地计划、组织、指挥、协调和控制他人,调度各种资源,如人、财、物、设备、技术和信息等,以求以最小的投入去获得最好或最大的产出目标。项目管理项目管理理论来自于工作实践,是指把各种系统、方法和人员结合在一起,在规定的时间、预算和质量目标范围内完成项目的各项工作。16项目管理对一个组织的管理而言,应该包括3部分:战略管理:从宏观上帮助企业明确和把握企业的发展方向。运作管理:对日常的、重复性工作的管理。项目管理:对一次性的、创新性工作的管理。战略管理项目管理运作管理17项目管理定义项目管理:是一定的主体,为了实现其目标,利用各种有效手段,对执行中的项目周期的各阶段工作进行计划、组织、协调、指挥、控制,以取得良好经济效益的各项活动的总和。18项目管理定义项目管理就是为了满足甚至超越项目干系人对项目的需求和期望而将理论知识、技能、工具和技巧应用到项目活动中去。要想满足或超过项目干系人的需求和期望,需要在下面这些相互间有冲突的要求中寻求平衡:1.范围、时间、成本和质量。2.有不同需求和期望的项目干系人。3.明确表示出来的要求(需求)和未明确表达的要求(期望)。项目干系人是指积极参与到项目中来的个人和组织,项目对他们可能带来正面或负面的影响,他们对项目及结果也可能施加影响。项目干系人如下:项目经理:负责对项目进行管理的人员。客户:使用项目产品的组织或个人,是项目产品的购买者。用户:产品的直接使用者。项目执行组织:其员工主要投入项目工作的组织。项目团队人员:具体从事项目工作并直接或间接向项目经理负责的人员。项目出资人:为项目提供资金的个人或组织。19其实,在实际项目中,很多的项目是多个执行组织共通努力的结果,例如:项目业主:对正在形成的项目产品拥有所有权的一方,一般是项目的发起人,并主导项目的实施。项目承包人:依据合同而投入项目实施工作的一方,不具有对项目产品的所有权。供货商:提供项目组织外的某些产品,也包括服务。2021项目管理定义软件是一件特殊的产品,其特殊性之一就是它的生产活动是以项目的形式来进行的,因此项目管理对软件生产具有决定性的意义。特别是在当今的软件项目中,项目管理的质量与软件产品的质量有着直接的对应关系。因此,提高项目管理的能力对于软件组织的软件生产力的提高是最为重要的。22项目管理定义项目管理是一项复杂的管理活动,包括8个方面:项目范围管理;项目进度管理;项目成本管理;项目质量管理;项目人力资源管理;项目沟通管理;项目风险管理;项目变更管理。在一个实际项目的进展管理中,这些管理实践相互融合,相互关联,是复杂的,专业化的。因此要求有专职的项目经理或专门的项目管理机构来完成。对项目经理提出了很高的要求。23项目管理的主要内容项目管理从不同的分析研究角度可以得出不同的任务内容:从管理职能角度划分,包括项目计划、组织、人事安排、控制、协调等方面的内容。从项目活动的全过程划分,包括项目决策、项目规划与设计、项目的招投标、项目实施、项目终结与后评价等方面的内容。从项目投入资源要素角度划分,包括项目的资金财务管理、人事劳动管理、材料设备管理、技术管理、信息管理、合同管理等方面的内容。从项目目标和约束角度划分,包括项目进度管理、项目成本管理、项目质量管理等方面的内容。24软件项目管理的特征及重要性从概念上讲,软件项目管理是为了使软件项目能按照预定的成本、进度、质量要求顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人能力转化成企业的开发能力,企业的开发能力越高,表明这个企业的软件生产越趋于成熟,企业就越能够稳定发展。25软件项目管理的特征及重要性全球经济对软件的依赖度越来越高,但软件的生产能力与业务发展的需求不相适应,即软件危机仍然存在。项目人员特别是管理层人员及其低下的项目管理能力是造成这一现状的根本原因。有问题的项目占46%失败的项目占28%成功的项目占26%1999年当年美国软件项目统计数字软件项目管理的特征及重要性软件项目管理和其他项目管理相比有相当的特殊性:1.软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率难以预测和保证。2.项目周期长,复杂度高,变数多。3.软件需要满足一群人的期望。即满足一群想法和利益各不相同的人的需求。26软件项目管理与软件工程的关系软件工程可以分为三部分:软件项目开发过程;软件项目管理过程;软件过程改进。开发过程是软件人员生产软件的过程;管理过程是项目管理者规划软件开发,控制软件开发的过程;过程改进相当于对开发过程和管理过程的“工艺流程”进行管理和改进。27280.3项目管理的范围项目管理的五要素项目管理的五要素是技术、方法、团队建设、信息、沟通。从战略和战术两个层面看项目管理的关注点。29从战略上看项目管理的三个关注点从战略上看,有效的项目管理集中于3个P上:人员、问题、过程。1.人员(Person)2.问题(Problem)项目经理的一个重要任务是发现问题和解决问题。3.过程(Process)过程管理是项目管理的任务。30从战术上看项目管理的三个关注点从战术上看,项目管理主要关注在项目范围(满足质量要求的产品需求)、成本、进度三个方面。这三个方面相互影响,任何一个发生变化都会影响其他两个方面。范围/质量成本进度310.4项目管理知识体系PMP(ProjectManagementProfessional)(项目管理专业人员资格),是美国项目管理学会(PMI)开发并组织实施的一种专业资格认证,在我国已成为继MBA,MPA后的最新热点。项目管理知识体系是美国管理学会组织开发的一套关于项目管理的知识体系,包括9个知识领域,5个标准化过程组,39个模块。32项目管理知识体系-9个知识领域39个模块1.项目集成管理2.项目范围管理3.项目时间管理4.项目成本管理5.项目质量管理6.项目人力资源管理7.项目沟通管理8.项目风险管理9.项目采购管理项目管理项目管理知识体系33项目管理知识体系项目管理9大知识领域的关系:1.为了成功实现项目的目标,首先必须设定项目的工作和管理范围,即项目范围管理。2.为了正确实施项目,需要对目标进行分解,即对项目的时间、质量、成本三大目标分解,即项目时间管理、项目成本管理、项目质量管理。3.项目实施过程中,需要投入足够的人力、物力资源,即项目人力资源管理、项目采购管理。34项目管理知识体系4.为了对项目团队中人员实行管理,让大家目标一致地完成项目,需要沟通,即项目沟通管理。5.项目在实施过程中会遇到各种风险,所以要进行风险管理,即项目风险管理。6.项目管理一定要协调各个方面,不能只顾局部的利益和细节,所以需要集成管理。35项目管理知识体系按照项目管理生命周期,项目管理知识体系又分为5个标准化过程组。项目管理的5个标准化过程组及其关系如图所示。启动过程组计划过程组控制过程组执行过程组收尾过程组36项目管理知识体系启动过程组—确定一个项目或一个阶段可以开始了,并要求着手实行。计划过程组—进行计划并且保持一个可操作的进度安排,确保实现项目的既定商业目标。执行过程组—协调人力和其他资源,执行计划。控制过程组—通过监督和检测过程,确保项目达到目标,必要时采取一些修正措施。收尾过程组—取得项目或阶段的正式认可并且有序地结束该项目或阶段。37项目管理知识体系各个过程组通过其结果进行连接,一个过程组的结果或输出是另一个过程组的输入,其中计划过程组、执行过程组和控制过程组是核心管理过程组。项目管理的5个标准化过程组也称为项目管理生命周期的5个阶段,每个标准化过程组由一个或多个过程组成。表1-1列出了5个标准化过程组,9个知识领域,39个模块之间的关系。38390.5过程管理与软件项目管理的关系软件过程的定义所谓过程,简单地讲,就是我们做事情的一种固有的方式。项目人员可能将关注点集中在最终产品或开发过程,这带来的后果是不一样的。40软件过程的定义过程A过程B过程C产品产品产品用户需求关注点结果是:产品质量依赖个人的素质和能力关注开发的结果41软件过程的定义过程产品产品产品用户需求关注点结果是:产品质量依赖企业的过程能力关注开发的过程42软件过程的定义软件工程过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。ISO9000把过程定义为:把输入转化为输出的一组彼此相关的资源和活动。过程定义了运用方法的顺序、应该交付的文档、为保证软件质量和协调变化所需要