作者:郭国印 张秀伟 赵政文
论文关键词:能力成熟度模型 能力成熟度模型集成 个体软件过程 群组软件过程
论文摘要:从软件项目管理的重要性谈起,研究分析了四个主流的软件项目管理技术,指出了它们的缺陷,最后结合实践提出了一种新颖的软件项目管理概念。
1引言
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。最早源自于70年代中期。当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为管理善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件项目全局的因素,而技术只影响局部。这个结论非常重要。到了90年代中期,软件项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。在商用软件产业中,这一现象尤为严重。1995年,美国共取消了810亿美元的软件项目,其中31%的项目未做完就取消了,53%的软件项目进度通常要延长一半的时间,通常只有9%的软件项目能够及时交付并且费用也不超支。WWw.133229.COm由此可见,软件项目管理技术的研究至关重要。
2软件项目管理技术综述
随着上世纪末软件工程的快速发展,软件项目管理水平也有了很大提高,提出了很多的软件项目管理技术,极大地推动了软件业的发展,这里我们主要谈以下四种主流的软件项目管理技术。
2.1cmm
cmm是美国卡纳基梅隆大学软件工程研究所(cmu/sei)提出的软件研发项目管理的一系列方法,它基于组织对关键过程域的支持,定义了软件过程成熟度的五个级别。
级别1(初始级)描述了不成熟,或者说是未定义过程的组织。级别2(可重复级),级别3(已定义级),级别4(已管理级)和级别5(优化级)分别描述了软件过程成熟度级别递增的组织。和这些级别相关的kpa是:
级别2:需求管理,软件项目计划,软件项目跟踪和监控,软件子合同管理,软件质量保证,软件配置管理。
级别3:组织级过程焦点,组织级过程定义,培训大纲,集成软件管理,软件产品工程,组间协调,同行评审。
级别4:定量过程管理,软件质量管理。级别5:缺陷预防,技术更新管理,过程更改管理。
2.2cmmi
cmmi被看做是把各种cmm集成为一个系列的模型中。cmmi的基础源模型包括:软件cmm2.0版(草稿c),eia一731系统工程,以及ipdcmm(ipd)0.98a版。cmmi也描述了5个不同的成熟度级别:
级别1(初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。
级别2(已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商协议管理、产品和过程质量保证、配置管理、以及度量和分析。对于级别2而言,主要的过程焦点在于项目级的活动和实践。
级别3(严格定义级)代表了以组织内改进项目执行为特征的过程成熟度。强调级别2的关键过程域中前后一致的、项目级的纪律,以建立组织级的活动和实践。附加的组织级过程域包括:①需求开发:多利益相关者的需求发展。②技术方案:展开的设计和质量工程。③产品集成:持续集成、接口控制、变更控制。④验证:保证产品正确建立的评估技术。⑤确认:保证建立正确的产品评估技术。⑥风险管理:检测、优先级,相关问题和意外的解决方案。⑦组织级培训:建立机制,培养更多熟练人员。⑧组织级过程焦点:为项目过程定义建立组织级框架。⑨决策分析和方案:系统可选的评估。⑩组织级过程定义:把过程看做组织的持久发展的资产。⑩集成项目管理:在项目内统一各个组和利益相关者。
级别4(定量管理级)代表了以改进组织性能为特征的过程成熟度。3级项目的历史结果可用来交替使用,在业务表现的竞争尺度(成本、质量、时间)方面的结果是可预测的。级别4附加的过程域包括:①组织级过程执行:为过程执行设定规范和基准;②定量的项目管理:以统计质量控制方法为基础实施项目。
级别5(优化级)代表了以可快速进行重新配置的组织性能和定量的、持续的过程改进为特征的过程成熟度。附加的级别5过程域包括:①因果分析和解决方案:主动避免错误和强化最佳实践;②组织级改革和实施:建立一个能够有机地适应和改进的学习组织。
2.3psp
psp(personalsoftwareprocess,个体软件过程)是由cmu/sei开发出来的,它的推出在软件工程界引起了极大的轰动,可以说是由定向软件工程走向定量软件工程的一个标志。psp为基于个体和小型群组软件过程的优化提供了具体而有效的途径,例如如何制订计划,如何控制质量,如何与其他人相互协作等等。在软件设计阶段,psp的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。因此,psp保障软件产品质量的一个重要途径是提高设计质量。
2.4tsp
tsp(teamsoftwareprocess,群组软件过程)是cmu/sei在psp基础上又发展出的软件项目管理技术,它主要是指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。始终以最佳状态来完成工作。tsp实施集体管理与自己管理自己相结合的原则,最终目的在于指导开发人员如何在最少的时间内,以预定的费用生产出高质量的软件产品,所采用的方法是对群组开发过程的定义、度量和改进。
实施tsp的先决条件有三条:首先,需要有高层主管和各级经理的支持,以取得必要的资源;其次,项目组开发人员需要经过psp的培训并有按tsp工作的愿望和热情;第三,整个开发单位在总体上应处于cmm二级以上,开发小组的规模以3~20人为宜。在实施tsp的过程中,首先要有明确的目标,开发人员要努力完成已经接受的委托任务。在每一阶段开始,要做好工作计划。如果发现未能按期按质完成计划,应立即分析原因,以判定问题是由于工作内容不合适或工作计划不实际所引起,还是由于资源不足或主观努力不够所引起。开发小组一方面应随时追踪项目进展状态并进行定期汇报,另一方面应经常评审自己是否按psp的原理工作。开发小组成员应按自己管理自己的原则管理软件过程,如发现过程不合适,应及时改进,以保证用高质量的过程来产生高质量的软件。项目开发小组则按集体管理的原则进行管理,全体成员都要参加和关心小组的规划、进展的追踪和决策的制定等项工作。
3软件项目管理技术分析研究
cmm的基于活动的度量方法和瀑布过程的有次序的、基于活动的管理规范有非常密切的联系,所以cmm在实践中反映出来的问题表现为过度基于过程的管理,具有典型的传统瀑布方法症状。现代主流的叠代软件项目开发技术、软件产业最佳实践和经济动机推动了软件开发组织采用基于结果的方法:开发业务案例、构想和原型方案;细化后纳入基线结构、可用发布,最后定为现场版本的发布。虽然cmmi保留了基于活动的方法,它的确集成了软件产业内很多现代的最好的实践,因此它很大程度上淡化了和瀑布思想的联系,而和叠代思想联系得更紧密。软件项目管理技术发展到今天,有了成熟的现代软件项目管理十大原理(沃克尔·罗伊斯):①首先注重结构过程;②用叠代生命周期在早期防御风险;③强调基于构件的开发;④建立变更管理环境;⑤用循环工程工具使变更更自由;⑥使用严格的、基于模型的设计符号;⑦提供过程的客观质量控制的手段;⑧使用中间产品的基于演示的评估;⑨发布细化的、展开的计划;⑩建立一个可升级的、可配置的过程。
根据对软件开发项目一线的多数工程师和项目经理的调查分析,我们知道cmm对现代原理几乎没什么影响,甚至有些现代原理实际上是和cmm关键过程域相冲突的。基于对产业默认实践的观察和分析,cmmi和现代管理原理关系十分密切,激发了半数的叠代软件管理原则,如表1所示。
因此,对于采用瀑布过程开发软件项目的组织来讲,最好采用cmm的软件项目管理技术,而对于采用迭代软件开发过程开发软件项目的组织来说,还是应该采用cmmi软件项目管理技术进行软件项目管理。
但是,并不是实施了cmm/cmmi后,软件研发项目的质量就能够有所保障了。cmm/cmmi不是万能的,它的成功与否,与组织内部有关人员的积极参与和创造性活动密不可分,而且cmm/cmmi并未提供有关子过程实现域所需要的具体知识和技能。这就需要psp的管理技术来协作了,psp专注于为个体和小型群组软件过程的优化提供具体而有效的途径。统计数据表明,在应用了psp后软件中总的差错减少了,在i贝0试阶段发现的差错减少了,生产效率提高了,软件项目开发有了很大的改善。
众所周知,现代软件项目早已走出单个英雄单打独斗的时代,而是需要众多软件工程师的密切合作。实践证明,psp已不能解决现代软件项目管理中的所有问题,这时,擅长于项目任务规划管理和项目人力资源规划管理的tsp恰好可以在这方面做有益的补充。
综上所述,单纯实施cmm/cmmi,永远不能真正做到能力成熟度的升级,达到软件项目管理的最佳境界,只有将实施cmcmmi与实施psp和tsp有机地结合起来,灵活地应用于软件项目管理,才能发挥最大的效力,取得最好的效果。
4总结
文章分析研究了几种主流的软件项目管理技术,结合实践,提出了新颖的软件项目管理概念。我们相信随着软件工程的发展和进一步成熟,软件项目管理技术的发展会取得更大的进步。在实际项目中,我们要坚持改善软件工程的管理,并在实践中总结适合自身的经验,这样才有利于管理技术的进步和软件项目的顺利完成,创造出更高的品质、更大的效益。