1、试论软件项目管理探析引言随着信息技术的飞速发展,软件产品的规模和复杂度随之增加,传统作坊式的开发方式逐步被以项目组为单位的协作式开发方式所取代,这就必然涉及到对软件项目的管理实践表明,一个软件项目的成败,不在于其项目组的技术人员的技术水平,而在于是否采用的合适的管理:好的管理方式不一定能使项目完全成功,但是一个不合适的管理模式往往会导致软件项目的失败1. 软件项目管理的特殊性所谓项目,就是在特定条tae下,具有特定目标的一次性任务,是在一定时间内,满足一系列特定目标的多项相关工作的总称项目具有一次性、独特性、目标的确定性、组织的临时性和开放性以及成果的不可挽回性等基本属性项目管理是指“在项目活
2、动中运用专门的知识、技能、工具和方法,使项目能够实现或超过项目干系人的需要和期望”这一定义不仅仅是强调使用专门的知识和技能,还强调项目管理中各参与人的重要性项目经理不仅仅要努力实现项目的范围、时间、成功和质量等目标,还必须协调整个项目过程,满足项目参与者及其他利益相关者的需要和期望软件项目管理和其他的项目管理相比有相当的特殊性首先,软件的整个过程都是设计过程,不需要大量的物质资源,而主要是人力资源,软件开发的产品以程序代码和技术文档为主,并没有其他的物质成果;其次,软件是纯知识产品,其开发进度和质量很难估H-和度量,生产效率也难以预测和保证软件系统的复杂性也导致了开发过程中各种风险的难以预见和
3、控制因此,软件项目管理和其他项目管理相比,有很大的独特性2. 软件项目管理的内容软件项目管理是一种科学的管理手段,它是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、x-2,险等进行分析和管理的活动管理的范围涉及人员的组织与管理、软件度量、项目计划、风险管理、质量保证、过程能力配置管理等几个方面,这几个方面都是贯穿、交织于整个软件开发过程中的从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段不论是作坊式开发,还是团队协作式开发,这六阶段都是不可缺少的从用户的角度来看,软件项目的生命周期应该
4、包括项目前期的论证工作、项目计划、软件开发、运行、维护及项目评价由此可见,软件项目管理的范围不包括传统的软件开发过程,还应该包括开发前的准备工作以及运行中的维护工作和对项目的总结工作根据PMBOK(项目管理知识体系ProjectManagementBodyofKnowledge,简称PMBOK)中的定义,软件项目管理可以分为以下几个方面:21集成管理:项目计划制定、项目计划实施、集成变更控制等22范围管理:制定范围计划编制、范围定义核实、变更控制、任务协调等23时间管理:项目任务分解、进度计划编制、任务持续时间估算、进度计划控制等24成本管理:资源计划编制、成本估算、成本预算和控制等25质量管
5、理:项目质量计划编制、软件质量保证、软件质量控制、软件过程改进等26人力资源管理:组织的计划编制、人员职责的分配、团队合作发展等27沟通管理:建立沟通渠道、信息交换管理等28风险管理:项目风险识别、项目风险分析、项目风险优先分析、项目风险控制等29采购管理:采购计划编制、合同管理、合同收尾等在面的软件项目管理中,有几个关键因素,它影响着软件项目的成败,下面就这几4-关键因素进行一下探讨。3软件项目管理的关键因素31合理配置人力资源众所周知,人是决定组织和项目成败的关键,也是影响软件93:发质量的最关键的因素,因此软件项目管理应该以人为本,有效管理人力资源,合理配置人力资源应该根据项目组成员的组
6、成结构情况,合理搭配,充分发挥每位成员的技术专长,做到人尽其能;组织组建好项目团队,培养团结一致的团队精神,规范良好的职业道德;建立健全完备的奖惩制度,落实权利责任制度,做到权责明确,并在项目进程能及时化解各种人事冲突,营造良好的团队协作环境32顺畅有效的沟通管理开发软件项目是一项知识性极强的工作,对人的依赖性比其它行业更为突出,因此加强人员之间的有效沟通,实现顺畅有效的沟通管理是软件项目成功的另一个关键因素沟通管理是一个收集、存储、配置和发布项目生命周期内所形成的各种信息的过程它把成功所必须的因素人、想法和信息之间提供了一个关键连接对于项目来说,要科学地组织、指挥、协调和控制项目的实施过程,
7、就必须进行信息沟通这里的沟通包括两个方面,一个方面是软件项目组开发人员与用户的沟通,另一方面则是软件项目组内人员的沟通前者是做好软件需求分析所必须的;而后者则有助于组内成员的彼此交流,减少理解错位,实现信息畅通,改善人际关系,化解可能的冲突,加快项目的进度沟通的方式是多样的,可以采用常用的项目组例会方式,可以通过面谈彼此交换意见;也可以利用方便快捷的通讯工具如电话、EMAIL、传真等方式加强信息的沟通;总之,顺畅有效的信息沟通,可以取得彼此的理解,剔除项目进度中的“BUG”,有利于项目按计划顺利开展33正确可靠的软件需求软件需求是软件项目的根本所在,需求不明确,软件项目开发范围不确定,项目开发
8、就会失去方向,容易造成开发的产品和用户实际的需求“南辕北辙“,最终导致项目的失败一个可靠的需求,也是项目管理的关键因素之一软件需求应当是项目有关的人员一致同意的、清楚的、完整的、详细的、可实现的和可测试的需求的确定,开发人员应该反复和用户进行沟通,认真听取用户的意见,及时归档记录,并适时发掘用户的潜在需求,最大限度地满足用户的目标,开发出用户最理想的产品最后应拿出开发人员和用户一致认可的软件需求说明书,并加以确认在项目开始以后,应该尽最大可能不更改需求,要与用户进行很好地沟通,以确保开发212作能按照需求进行,减少需求变更带来的风险!因此,正确可靠的软件需求也是项目成功的重要保障34周密可行的
9、项目计划“凡事预则立,不预则废”软件项目实施过程中,还必须有一个周密可行的项目计划软件项目计划的目的是为完成软件工程和管理软件项目而制定的合理的计划,它包括以下步骤:估计软件产品规模及所需的资源,制定表,鉴别和评估软件风险和协商约定,而且要标志出几个阶段性的里程碑,这些都是极为关键的软件项目开发组来说,一个可行的计划的重要性是不言而喻的在实际发中,:计划的重视程度不够,计划过于笼统、粗糙导致可执行性差,再加上一些人为因素的影响,必然会产生一些反面的影响,或者有了周密可行的计划不严格遵守计划执行,任意变更,都将产生严重的负面影响,有时甚至是灾难性的影响因此,要想成功进行项目管理,就要对高度重视、
10、周密制定、严格执行只有严格进行计划才能使成功项目管理得以实施35健全完备的文档资料软件项目的文档作为软件产品的主要形式之一,集中体现了软件人员的劳动成果,在整个软件生存周期中占据重要位置特别是在开发过程中需求发生了变更的情况下,健全完备的文档资料的重要作用就充yJ-:现出来,开发人员可以及时在文档中回溯,快速锁定问题所在,及时解决问题避免软件项目延期,减少项目此外,健全完备的档资料在项目接近尾声时也便于软件的测试与后期的维护工作,在项目结尾时,健全完备的文档资料也为人员的培训和项目的再开发发挥重要作用,因健全完备的文档资料也是软件项目成功的重要因素,在项目管理过程中应该高度重视36严格的风险管
11、理软件项目的管理是存在风险的,我们应该提前重视风险,并有所防范,最大限度减少风险的发生实行严格的Ixt险管理是有效的手段建立风险项目检查表是进行风险识别的有效地方法就是,主要涉及到产品规模风险检查、过程风险检查、技术风险检查、开发环境风险检查等此外软件的风险评估也是必不可少的主要涉及到发生的可能性,最好建立一个尺度表示风险可能性;发生的结果;确定风险评估的正确性;另外,要对每个风险的表现、范围、时间做出尽量准确的判断同时,要依据以下三个要素对风险进行评价:风险描述、风险概率和风险影响并从成本、进度及性能三方面对风险进行描述4结论软件项目管理是门科学,也是一门艺术;它是一个复杂的系统,决定了软件
12、项目成败的关键在软件开发过程中,我们应该理论联系实践,积极从实践中积累经验,注意项目管理中的关键因素,实施有效的管理,使软件项目获得成功;试论软件项目过程管理矩阵模型研究与实践。项目管理是伴随着项目进行而进行的,是一种为了满足甚至超越项目所有者对项目的期望而将理论知识、技能、工具和技巧应用到项目中的管理活动,是一门关于项目资金、时间、人力等资源控制的管理科学。顾名思义,软件项目管理就是项目管理在软件领域的应用,是一种为了能够按照预定的工期、质量顺利完成软件项目而对成本、人员、进度、质量、风险等进行控制管理的活动。其核心在于通过有效的管理,明确项目范围,合理调配人力资源,提高项目团队的整体开发能
13、力,优化项目执行过程,控制项目成本,为用户提供满意的软件产品。1软件项目管理的特点软件是一种特殊的产品,这种产品的特殊性之一就是它的生产活动是以项目的形式进行的,因此,项目管理对软件生产具有决定性的意义。软件项目管理除了具有一般项目管理的特点外,还有其独特之处,主要表现在:(1) 软件产品缺乏硬性度量指标。软件的最大特点在于一个“软”字,它不像建筑项目,最终可以有一个实物,可以用某一个标准去刚性的度量评价。而软件产品客观上具有“不可见性”,表现在它没有一个可见的实物,还表现在其度量指标也不能像度量实物那样具有明确性。有效的项目管理就是要使软件及其生产过程由不可见、不可度量变成可见和可度量。(2
14、) 重视应用领域的业务知识。对于计算机应用软件来说,它并不单纯是计算机技术问题,更多地表现在它所服务的业务领域的知识技能。如企业ERP、SCM等应用软件项目,计算机只是它的载体,计算机技术往往并不起决定作用,而与之相关的业务知识、管理知识显得更加重要。(3) 管理比技术本身更重要。软件项目是一项计算机技术、信息技术、管理科学等多学科交叉的系统工程。随着信息技术的发展,软件项目应用领域不断扩张、项目规模不断扩大、项目业务日趋复杂,一个软件从构想到完成,需要大量的从事不同工作的人共同努力,个人单打独斗的作坊式开发方式显然已经无法适应这种信息技术发展的需要。在一个大型信息系统工程项目里,需要系统策划
15、人员、分析设计人员、编程人员、测试人员和用户等众多人员的共同参与和密切配合,如何将可用资源有效地结合在一起,并使之发挥最大效率,如何保证项目按照预定的时间将预先约定的软件产品提交给客户是软件项目管理的核心任务。项目管理往往成为决定软件项目成败的重要因素。(4) 强调文档的重要性。文档是软件产品的重要组成部分,软件项目管理以工程化的管理方法,强调规范文档的重要性,在软件生命周期的各个阶段,强调对里程碑文档的评审,并把文档作为阶段成果的重要体现和下阶段的基础。(5) 重视培训与服务的价值。培训与服务是发掘软件产品价值的重要手段。一个软件产品,如果没有人使用就不能形成价值,如果不会使用,就可能降低软
16、件的价值。服务的优劣已经直接影响软件的使用价值并决定软件产品的生命周期。总之,软件项目管理重视培训与服务在软件增值中的意义。 3、通过活动,使学生养成博览群书的好习惯。B比率分析法和比较分析法不能测算出各因素的影响程度。C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错 C产品的实际生产成本包括废品损失和停工损失。C成本报表是对外报告的会计报表。C成本分析的首要程序是发现问题、分析原因。C成本会计的对象是指成本核算。C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。C成本计算
17、方法中的最基本的方法是分步法。XD当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本 中。D定额法是为了简化成本计算而采用的一种成本计算方法。F“废品损失”账户月末没有余额。F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。F分步法的一个重要特点是各步骤之间要进行成本结转。()G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错G工资费用就是成本项目。()G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对J计算计时工资费用,应以考勤记录中的工作时间记录为依据。()J简化的分批法就是不计算在产品成本
18、的分批法。()J简化分批法是不分批计算在产品成本的方法。对 J加班加点工资既可能是直接计人费用,又可能是间接计人费用。J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,XK可修复废品是指技术上可以修复使用的废品。错K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。P品种法只适用于大量大批的单步骤生产的企业。Q企业的制造费用一定要通过“制造费用”科目核算。Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。 S生产车间耗用的材料,全部计入“直接材料”成本项目。 S适应生产特点和管理要求,采用适当的成本计算方法,是
19、成本核算的基础工作。()W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对 Y引起资产和负债同时减少的支出是费用性支出。XY以应付票据去偿付购买材料的费用,是成本性支出。XY原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。()Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对Z直接生产费用就是直接计人费用。XZ逐步结转分步法也称为计列半成品分步法。A按年度计划分配率分配制造费用,“制造费用”账户月末(可能有月末余额/可能有借方余额/可能有贷方余额/可能无月末余额)。A按年度计划分配率分配制造费用的方法适用于(季节性生产企业)