您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第1章软件项目概述.
第一章绪论软件项目是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力;是以一套独特而互相联系的任务为前提,有效地利用资源,为一个特定目标所做的努力;是一个特殊的将被完成的有限任务,它是在一定时间内满足一系列特定目标的多项相关工作的总称。通过本章学习,应掌握以下内容:掌握项目、软件项目、软件项目管理概念理解软件项目管理的原则及范围理解软件项目过程管理的基本原理内容结构:1.1软件项目1.1.1项目项目的定义很多,但其内涵和特征是一致的,是指一系列独特的、复杂的并相互关联的活动,这些活动有明确的目的,必须在特定的时间、预算、资源限定内,依据规范完成。每个项目都有特别的地方、时间、地点、内部和外部环境、自然和社会条件有别于其它项目。项目的特征:(1)目标性。项目工作的目标在于得到特定的结果,其结果可能是一种产品,也可能是一种服务。目标贯穿于项目始终。(2)相关性。一个项目里有很多彼此相关的活动,某些活动在其它活动之前不能启动,而另一些活动必须并列实施,如果这些活动相互之间不能协调地开展,就不能达到整个项目的目标。(3)独特型。在一定程度上,项目与项目之间没有重复性,每个项目都有独自的特点。每个项目都是唯一的。(4)周期性。项目要在一个限定的期间内完成,有明确的开始点和结束点。项目管理的很大一部分精力是用来保证在预定时间内完成项目任务,为此而指定时间进度计划表。(5)约束性。每个项目都需要运用各种资源来实施,但资源是有限的,资源成本是项目实施的约束条件。(6)不确定性。一个项目开始前,应当在一定的假设和预算基础上准备一份计划,但项目实际实施中,外部和内部因素总是会发生一些变化,因此项目也会出现不确定性。1.1.2软件项目软件是包括程序、数据及相关文档在内的完整集合。软件项目除了具有项目的基本特征之外,还具有如下特点:(1)软件是一种逻辑实体,不是物理实体,具有抽象性。(2)开发过程中没有明显的制造过程,也不存在重复生产过程。(3)软件的开发受到计算机系统的限制,对计算机系统有不同程度的依赖。(4)软件开发至今没有摆脱手工的开发模式,软件产品基本上是“定制的”,做不到利用现有的软件组件组装成所需要的软件。(5)软件本身是复杂的。(6)软件的成本相当昂贵。软件开发需要投入复杂的、高强度的脑力劳动。(7)很多的软件工作涉及社会的因素,比如许多的软件开发受到机构、体系和管理方式等问题的限制。1.1.3软件项目分类按照软件项目的目标和工作内容,可将软件项目划分为4类。1.通用软件产品开发项目通用软件产品是指满足某一客户群体的共同需求的软件产品,包括:系统软件(如Windows、Linux);开发平台与工具;通用的商业软件(如杀毒软件、金山词霸、用友的财务软件等);嵌入式软件,如手机游戏等;行业专用软件产品(如服装CAD设计软件等)。1.1.3软件项目分类2.定制软件系统开发项目是针对某一特定用户的个性化需求而设计实现的软件系统。国内本土软件企业都是开发这类定制软件系统。许多这类企业都希望通过定制系统的开发形成通用软件产品,但成功的却很少。提供通用软件产品的软件企业则可以轻松实现定制软件系统。1.1.3软件项目分类3.软件实施项目这类项目是在成熟产品的基础上,进行一些二次开发,以实现客户个性化的需求,二次开发可能涉及编码也可能不涉及。如ERP的实施项目,一般设计3个子项目:咨询、采购和实施。1.1.3软件项目分类4.软件服务项目软件服务项目越来越多。通常,软件的免费维护期是一年,一年之后用户需要和开发商签订维护与服务合同,这便是软件服务项目合同。因为这几类软件项目的项目生命周期不同,在立项、需求、设计、编码、测试、销售、售后服务等环节的方法和管理是不同的。1.2软件项目管理1.2.1项目管理项目管理是把各种系统、方法、人员结合在一起,在规定的时间、预算和质量目标范围内完成项目的各项工作。项目是企业最小的盈利单位,项目管理自然是企业利润的基石。它是企业的核心竞争力所在。1.2软件项目管理1.2.1项目管理项目管理是指一定的主体,为了实现其目标,利用各种有效的手段,对执行中的项目周期的各个阶段进行计划、组织、协调、指挥、控制,以取得良好经济效益的各项活动的总和。通过项目各方干系人的合作,把各种资源应用于项目,以实现目标,使项目干系人的需求得到不同程度的满足。为了满足相关项目干系人的需求,需要在下面这些互相冲突的要求中寻找平衡:(1)范围、时间、成本和质量。(2)有不同需求和期望的项目干系人。(3)明确表示出来的和未明确表达的需求。1.2软件项目管理1.2.2软件项目管理软件项目管理的提出是在20世纪70年代中期的美国,当时美国国防部专门研究了软件开发不能按时提交、预算超支和质量达不到用户要求的原因,结果发现70%的项目是因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管理。到了20世纪90年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。1995年,据统计,美国共取消了810亿美元的商业软件项目,其中31%的项目未做完就被取消,53%的软件项目进度通常要延长50%的时间,只有9%的软件项目能够及时交付并且费用也控制在预算之内。1.2软件项目管理1.2.2软件项目管理软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期、按质完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则、方法,同时避免前人的失误。1.2软件项目管理1.2.2软件项目管理软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。1.2软件项目管理1.2.3软件项目管理原则在软件项目管理中,有下列原则和经验可以借鉴:1.计划原则软件项目计划是为管理工作提供合理的基础和可行的工作计划,从而保证软件项目顺利完成。2.Brooks原则向一个已经滞后的项目添加人员,可能会使项目更加滞后,因为加入新成员,要进行相关培训、熟悉工作环境等,人员之间的沟通路径增加。很多项目管理者并没有注意到这一点,认为“人多力量大”,当项目完不成时,就再增加人员,最终导致恶性循环。1.2软件项目管理1.2.3软件项目管理原则3.80-20原则20%的工作耗费了80%的时间,或者20%的人担当了80%的项目工作,考虑到开发人员能力的多样性,不应采取任务均分的愚蠢做法,互补结构比对等结构更稳定。4.默认无效原则项目成员理解并赞成项目的范围、目标和策略吗?项目开发人员沉默并非完全赞成管理人员的意见,但实际上人们或多或少会陷入这样的思维误区。沉默在很大程度上说明项目开发人员尚未弄清项目的范围、任务等。管理人员仍需要和开发人员沟通,使得大家对项目有一致的理解。1.2软件项目管理1.2.3软件项目管理原则5.帕金森原则帕金森是组织机构臃肿、人员膨胀、人浮于事、效率低下的代名词,在软件开发中,如果没有严格的时间限制,开发人员往往比较懈怠。机构臃肿也可能是管理幅度过宽,一个人的管理幅宽有限,如果一个项目需要过多人员参与,就要分成若干个组,项目经理管理若干个组长,适当分权与分责来提高效率。1.2软件项目管理1.2.3软件项目管理原则6.时间分配原则在实际工作中,开发人员的时间利用率达到80%就非常高了,如果组织合理,开发所需要的时间为原计划的1.2——1.5倍。如果组织不合理,所需时间更长,很多开发人员加班加点,实在完不成,只有降低标准。管理人员在制订计划、分配工作时,应考虑这些因素。1.2软件项目管理1.2.3软件项目管理原则7.验收标准原则不求质量则往往凭经验草率了事,追求完美则要耗费太多的精力,但此番耗费未必针对该项任务,这是由于没有按标准完成的结果。软件项目开发常常以验收标准为原则。作为项目经理,应制定好每个任务的验收标准,才能严格把好质量关。1.2软件项目管理1.2.3软件项目管理原则8.变化原则软件技术发展迅速,只有变化、创新,才能有活力。9.工程标准原则软件工程标准会给软件工作带来许多好处,比如:提高软件的可靠性、可维护性、可移植性、提高软件生产率等,有利于减少差错和误解,有利于软件管理及减少开发周期等。1.2软件项目管理1.2.3软件项目管理原则10.组织变革原则从实践来看,增加复用力度、完善复用体系、实施组织变革是解决工期、成本、质量等因素的有效途径。复用能提高项目的生产率,也能降低项目风险;精简管理机构、改善开发人员沟通效率、营造良好的开发环境,是从根本上解决项目开发种种棘手问题的另一有效途径。1.3项目管理范围项目管理的五要素指技术、方法、团队建设、信息、沟通。项目管理是技术,也是方法,也是信息,当然也需要团队建设。从战略上看,有效的项目管理集中于3个P上:人员(people)、问题(problem)、过程(process)。从战术上看,软件项目管理的四大变量为:范围、质量、成本及交期。项目管理需要在相互间具有冲突的要求中寻找平衡。主要有三个关注点:范围(满足质量要求的产品需求)、成本、进度。1.3项目管理范围项目范围是指为了成功地实现项目目标所必须完成的、全部且最少的工作。全部的是实现该项目目标所进行的“所有工作”任何工作都不能遗漏,否则会导致项目范围“萎缩”。最少的是指完成该项目目标所规定的“必要的、最少量”的工作,不进行此项工作就无法最终完成项目。项目范围管理实际上是一种功能管理,它是对项目所要完成的工作范围进行管理和控制的过程和活动,包括确保项目能按要求的范围完成所涉及的所有过程。1.3项目管理范围项目成本管理是承包人为使项目成本控制在计划目标之内所作的预测、计划、控制、调整、核算、分析和考核等管理工作。项目成本管理就是要确保在批准的预算内完成项目,具体项目要依靠制定成本管理计划、成本估算、成本预算、成本控制四个过程来完成。项目成本管理是在整个项目的实施过程中,为确保项目在已批准的成本预算内尽可能好的完成而对所需的各个过程进行管理。1.3项目管理范围项目进度管理是指在项目实施过程中,对各阶段的进展程度和项目最终完成的期限所进行的管理。项目进度管理要求在规定的时间内,拟定出合理且经济的进度计划(包括多级管理的子计划),在执行该计划的过程中,经常要检查实际进度是否按计划要求进行,若出现偏差,便要及时找出原因,采取必要的补救措施或调整、修改原计划,直至项目完成。其目的是保证项目能在满足其时间约束条件的前提下实现其总体目标。1.3项目管理范围这三个因素互相影响,任何一方变化都会影响其它两方,比如,产品规格发生变化,产品的成本就需重新估算,项目的进度也需重新安排。如果要赶进度,成本或者规格就需要进行折中。项目管理需要在项目目标之间进行平衡,在某一领域的提高可能是以降低其它领域的水平为代价。成功的项目管理需要积极地管理这些相互作用的目标。1.3项目管理范围软件项目管理涉及系统工程学、统计学、心理学、社会学、经济学,乃至法律等方面的问题。需要用到多方面综合知识,特别是涉及到社会因素、精神因素、人的因素等,比技术问题复杂。紧靠技术、工程或科研项目的效率、质量、成本和进度等方面很难得到较好的解决,必须结合工作条件、人员和社会环
本文标题:第1章软件项目概述.
链接地址:https://www.777doc.com/doc-2154307 .html