浅谈软件项目管理中项目技术分析

2016-10-21 04:55范伟
科学与财富 2016年9期

范伟

摘 要:随着计算机应用范围的日益广泛深人,应用软件的规模及复杂程度也日趋大型化、复杂化,这就导致软件开发的方式也从早期的单兵作战式或手工作坊式渐渐转变为集团化、工厂流水线式的团队协作开发方式。这种情况下,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。本文从软件项目管理的重要性谈起,研究分析了CMM、CMMI、PSP、TSP四个软件项目管理技术,指出了它们的缺陷,最后结合实践提出了一种新颖的软件项目管理概念。

关键词:软件项目管理技术 CMM CMMI PSP TSP

1.软件项目管理技术概述

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。

软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误。

软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。

这几个方面都是贯穿、交织于整个软件开发过程中的,其中大家对软件项目管理过程中技术比较感兴趣。

这里我们主要谈以下四种主流的软件项目管理技术。

1.1 CMM

CMM是指“能力成熟度模型”,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。

CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。 从当今整个软件公司现状来看,最多的成熟度为1级,多数成熟度为2级,少数成熟度为3级,极少数成熟度为4级,成熟度为5级的更是凤毛麟角。

其所依据的想法是:只要集中精力持续努力去建立有效的软件工程过程的基础结构,不断进行管理的实践和过程的改进,就可以克服软件生产中的困难。CMM基于组织对关键过程域的支持,定义了软件过程成熟度的五个级别。

级别1(初始级)描述了不成熟,或者说是未定义过程的组织。级别2(可重复级),级别3(已定义级),级别4(已管理级)和级别5(优化级)分别描述了软件过程成熟度级别递增的组织。和这些级别相关的KPA是:

级别2:需求管理,软件项目计划,软件项目跟踪和监控,软件子合同管理,软件质量保证,软件配置管理。

级别3:组织级过程焦点,组织级过程定义,培训大纲,集成软件管理,软件产品工程,组间协调,同行评审。

级别4:定量过程管理,软件质量管理。级别5:缺陷预防,技术更新管理,过程更改管理。

1.2 CMMI

CMMI即能力成熟度模型集成。CMMI被看做是把各种CMM集成为一个系列的模型中。CMMI的基础源模型包括:软件CMM2.0版(草稿c),EIA一731系统工程,以及IPDCMM(IPD)0.98a版。CMMI也描述了5个不同的成熟度级别:

级别1(初始级)代表了以不可预测结果为特征的过程成熟度。过程包括了一些特别的方法、符号、工作和反应管理,成功主要取决于团队的技能。

级别2(已管理级)代表了以可重复项目执行为特征的过程成熟度。组织使用基本纪律进行需求管理、项目计划、项目监督和控制、供应商協议管理、产品和过程质量保证、配置管理、以及度量和分析。对于级别2而言,主要的过程焦点在于项目级的活动和实践。

级别3(严格定义级)代表了以组织内改进项目执行为特征的过程成熟度。强调级别2的关键过程域中前后一致的、项目级的纪律,以建立组织级的活动和实践。

级别4(定量管理级)代表了以改进组织性能为特征的过程成熟度。3级项目的历史结果可用来交替使用,在业务表现的竞争尺度(成本、质量、时间)方面的结果是可预测的。级别4附加的过程域包括:①组织级过程执行:为过程执行设定规范和基准;②定量的项目管理:以统计质量控制方法为基础实施项目。

级别5(优化级)代表了以可快速进行重新配置的组织性能和定量的、持续的过程改进为特征的过程成熟度。附加的级别5过程域包括:①因果分析和解决方案:主动避免错误和强化最佳实践;②组织级改革和实施:建立一个能够有机地适应和改进的学习组织。

1.3 PSP

个人软件过程(PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与程序设计语言、工具或者设计方法相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。PSP为基于个体和小型群组软件过程的优化提供了具体而有效的途径,在软件设计阶段,PSP的着眼点在于软件缺陷的预防,其具体办法是强化设计约束准则,而不是设计方法的选择。

1.4 TSP

TSP(群组软件过程)是CMU/SEI在PSP基础上又发展出的软件项目管理技术,它主要是指导项目组中的成员如何有效地规划和管理所面临的项目开发任务,并且告诉管理人员如何指导软件开发队伍。

实施TSP的先决条件有三条:首先,需要有高层主管和各级经理的支持,以取得必要的资源;其次,项目组开发人员需要经过PSP的培训并有按TSP工作的愿望和热情;第三,整个开发单位在总体上应处于CMM二级以上,开发小组的规模以3~20人为宜。

2.软件项目管理技术分析

CMM的基于活动的度量方法和瀑布过程的有次序的、基于活动的管理规范有非常密切的联系,所以CMM在实践中反映出来的问题表现为过度基于过程的管理,具有典型的传统瀑布方法症状。虽然CMMI保留了基于活动的方法,它的确集成了软件产业内很多现代的最好的实践,因此它很大程度上淡化了和瀑布思想的联系,而和叠代思想联系得更紧密。

根据对软件开发项目一线的多数工程师和项目经理的调查分析,我们知道CMM对现代原理几乎没什么影响,甚至有些现代原理实际上是和CMM关键过程域相冲突的。基于对产业默认实践的观察和分析,CMMI和现代管理原理关系十分密切,激发了半数的叠代软件管理原则,因此,对于采用瀑布过程开发软件项目的组织来讲,最好采用CMM的软件项目管理技术,而对于采用迭代软件开发过程开发软件项目的组织来说,还是应该采用CMMI软件项目管理技术进行软件项目管理。

CMM/CMMI不是万能的,它的成功与否,与组织内部有关人员的积极参与和创造性活动密不可分,而且CMM/CMMI并未提供有关子过程实现域所需要的具体知识和技能。这就需要PSP的管理技术来协作了,PSP专注于为个体和小型群组软件过程的优化提供具体而有效的途径。

实践证明,PSP已不能解决现代软件项目管理中的所有问题,这时,擅长于项目任务规划管理和项目人力资源规划管理的TSP恰好可以在这方面做有益的补充。

综上所述,单纯实施CMM/CMMI,永远不能真正做到能力成熟度的升级,达到软件项目管理的最佳境界,只有将实施CM CMMI与实施PSP和TSP有机地结合起来,灵活地应用于软件项目管理,才能发挥最大的效力,取得最好的效果。

参考文献:

[1] 张海藩 .软件工程导论[M] .清华大学出版社 .1998 .1

[2] 郭国印等。软件项目管理技术分析研究 .微处理机.2007年10月 第五期

[3] 杨一平等.软件能力成熟度模型CMM方法及其应用[M].北京:人民邮电出版社,2001..