论文部分内容阅读
摘要: 软件企业或单位软件过程的改进是软件能力成熟度模型关注的焦点,首先对软件能力成熟度模型进行简单介绍,并以中小型软件企业为分析对象,对其软件过程管理现有不足进行探讨,之后对模型的改进及实施方案进行深入阐述。
关键词: 软件能力成熟度模型;软件过程管理;项目测试
0 前言
中中国软件行业协会相关统计资料显示,从数量上来分析,我国拥有的软件企业并不少,然而大多数的软件企业的规模有限,抗风险能力有限。实践证实,中小型软件企业在进行软件项目研发的过程中,管理无序、工期延期、系统缺乏可维护性以及经费预算不准等问题普遍存在,这些问题给软件企业业务的开展造成了极大的负面影响,甚至会造成软件项目失败。笔者分析,导致这些问题的主要原因并非研发技术不够先进,软件研发人员的业务能力不够,而是这些软件企业在进行软件研发过程中处于无序状态,将主要的注意力集中在技巧方面,对管理的重视程度不够,换句话说,就是软件生产过程对目标管理关注过度,而忽视了过程管理。
1 CMM相关理论及等级选择
CMM,即软件能力成熟度模型,其主要关注的焦点为软件企业改进软件生产过程,致力于不断提升软件研发组织或项目的软件过程能力以及软件成熟度。对软件能力成熟度模型准确而合理的运用可以促进软件研发质量及效率的不断提升。软件能力成熟度模型自提出之后,其影响范围迅速扩大,并得到广泛应用,给各国软件行业带来了深远影响,其作为国际主流行业标准的角色已经得到普遍认可。按照从高到低的顺序,可以将软件能力成熟度模型划分为五大不同等级,其共涉及关键过程域18个,目标52个以及关键实践316个。所有成熟度等级主要是由初始级以及软件能力成熟度模型数个关键过程域构成。CMM2级企业已经具备软件项目管理相关测量以及具体的实施规程,软件研发及维护过程波动不大,并具有可以重复使用的成功经验。以项目为主要对象制定过程管理策略,项目经理的主要职责是对成本、进度以及软件功能进行跟进,并找出其中存在的不足;遇到问题时,具备识别及纠正的能力,并可以实现相关承诺。CMM等级及管件过程域分类详见下表所示。
对基于中小型软件企业而言,企业规模有限,但一般具备突出的创造力,灵活性也较高,容易沟通;在人才配置方面,主要是技术研发人员,其同时兼顾管理,一般没有专业且经验丰富的管理人员;质量意识淡薄,管理水平有限,软件研发规范性有待提升;大多数是短期星期,产品及过程欠缺重复利用性。结合中小软件企业实际存在的上述不足,在实施软件项目研发管理的过程中引入CMM项目管理标准,可以为软件项目的实施及管理提供比那里,在很大程度上提升软件项目过程及质量。若以CMM标准为参考,中小型软件企业尚处于CMM初级阶段,从这点分析,由CMM2级切入较为适合;但笔者并不赞同对CMM2级管理标准进行简单的照抄照搬,原因在于:1)CMM内容的复杂系数较高,具备较为完善的标准,中小型企业的资源有限,若进行过度评审和实践将会造成实施上的不便;2)CMM培训时间长、花费大,会给中小企业造成极大压力;3)CMM只对软件能力成熟度要实现的结果作出了相关规定,但并没有对如何实现这样的结果作出说明。所以,要想使其更加适应于中小型企业的CMM,还需要对CMM管理内容及相关标准进行优化。
CMM软件的技术核心是网络计划,因为网络计划直接影响了施工生产的进度和所产生的费用,而且整个资源的动态管理与控制也都在这个网络计划的核心中,所以这个技术非常的有价值,对于企业的各项管理来说,都是很有管理价值的。在整个过程中,要先做好进度计划安排,实施好计划和编制,然后根据编制的进度进行施工项目,合理的进行工作结构的分解和作业工期等各个工序的逻辑关系,使得这样能够对于施工生产的流程和方案要求进行计算。最后还要对于这些成果进行优化和分析,对于进度编制要积极的检查和优化,这样能够对于生产作业的逻辑关系进行检查和完善,检查企业的生产是否满足其工期的要求,资源配置是否合理。
2 模型改进及实施方案
2.1 改进模型
笔笔者在此介绍一个以CMM2级为基础的软件项目管理模型,具体的结构详见下图所示。
该基于CMM2级的软件项目管理模型的生命周期结合了软件项目研发生命周期,主要包括需求的确定、制定计划、具体实施、测试维护以及最终交付等五个阶段,每个阶段中均含有对应的CMM2级关键过程域,软件质量保证以及软件配置管理贯穿于软件研发过程始终,对于大部分的中小型软件企业而言,软件研发项目并不会采取外包的方式,因此,可以用软件子合同管理KPA对其进行裁剪;若在实践中遇到需要外包的情况,可以在具体的实施阶段有项目经理筛选资质合格的转包商对子项目进行转包。
2.2 组织结构
改在进CMM过程的第一步就是要调整软件组织结构,将之前的不科学之处予以舍弃,并根据实际需求裁剪CMM2级的组织结构。对于中小型软件企业而言,研发人员队伍较为薄弱,如果设置过多人员或是过于复杂的角色关系,实现起来比较困难。组织结构角色及其工作职责为:高级经理一名,主要职责是对软件项目进行管理;项目经理数名,主要职责是对整个项目进行管理;软件工程组,一般需要根据项目规模确定组成人数,主要作用是开发、维护软件;系统测试组,可以由软件工程组兼任,但必须交叉,也就是说,同一个模块的开发及测试不能是同一组人员;软件配置人员,可由项目经理兼任,主要工作时配置软件产品;软件质量保证组,要尽可能的确保该机构在组织上的独立性,如果条件不具备,也能由项目经理或者是测试人员兼任。
2.3 实施方案
首首先,确定需求,主要是开展需求调研、分析可行性、制定需求文档以及出具可行性报告等工作。在该阶段,需要注意以下几方面内容:建立相应的管理制度,从实际情况出发,开展必要的培训,并积极创造交流机会;适时引进管理工具,并加以推广,以便于尽可能的降低软件项目管理压力;开展尽可能详细的需求调研,并且尽量多采用选择题的方式,避免使用开放性问题;其次,制定计划,主要是向软件工程的实施及各个阶段的管理提供一个科学可行的计划,具体的工作包括:选择软件项目开发模型;明确项目资源;对项目进行风险评估;工作分解与职责分配;编订项目计划书。此阶段需要注意以下几方面:根据每个开发模型的优点及不足、具体需求、项目开发周期以及研发队伍能力等因素来挑选开发模型;项目经理要带领团队对项目进行全面评估;结合研发人员特长分配职责;再次,具体实施,为了提供足够的项目实施实际进度可见度,防止在项目实际实施过程与原计划出现较大偏差的情况下,管理部门可以及时采取有效应对方案,需啊哟开展项目跟踪及监控。在此阶段,需要注意的是,在进行编码时,客户有可能对需求进行调整,这就要求项目经理能够随时提出需求变更请求,评估及批准权掌握在如见配置组手中;使用VSS等版本管理工具,这样既可以保证项目开发组成员使用最新的代码及文档,由便于程序的调试、修改和管理;项目的测试及维护,主要目的是为确保软件及服务质量,软件研发及软件项目管理的每个阶段都贯穿着项目的测试及维护;最后一个阶段就是最终交付,在项目的最终交付时并不包含任何KPA,主要涉及到的工作有项目验收、项目资料归档以及培训等。
3 结语
综综上所述,对于规模有限的软件企业而言,在进行软件项目研发的过程中,普遍存在着管理无序、工期延期、系统缺乏可维护性等问题,给软件企业业务的开展造成了极大的负面影响,导致这些问题的主要原因在于对管理的重视程度不够,笔者在软件开发生命周期的基础之上,运用CMM2级项目管理关键过程域,构建了依托于CMM2级的软件项目管理模型,并分别从需求的确定、制定计划、具体实施、测试维护以及最终交付等五个阶段对项目模型的具体实施进行了阐述。
参考文献:
[1]宋华青,国内软件企业软件开发质量与项目管理[D].对外经济贸易大学,2003:56.
[2]董锋,基于软件过程改进理论提高软件生产能力的研究[D].首都经济贸易大学,2003:45-46.
[3]王嘉鹏,软件项目质量成本模型与管理方法的研究[D].首都经济贸易大学,2005:34-35.
[4]陈宇静,基于CMM的软件过程改进案例分析[D].首都经济贸易大学,2005:45-46.
[5]李帜、林立新、曹亚波编著,软件工程项目管理功能点分析方法与实践[M].清华大学出版社,2005:243-250.
[6]孙煜,P6项目管理软件在建筑工程中的应用研究[D].华南理工大学,2010:54.
[7]李洪东、孙艺键,工程项目管理软件的发展趋势与应用现状初探[J].中国建设信息,2008(10):123-125.
关键词: 软件能力成熟度模型;软件过程管理;项目测试
0 前言
中中国软件行业协会相关统计资料显示,从数量上来分析,我国拥有的软件企业并不少,然而大多数的软件企业的规模有限,抗风险能力有限。实践证实,中小型软件企业在进行软件项目研发的过程中,管理无序、工期延期、系统缺乏可维护性以及经费预算不准等问题普遍存在,这些问题给软件企业业务的开展造成了极大的负面影响,甚至会造成软件项目失败。笔者分析,导致这些问题的主要原因并非研发技术不够先进,软件研发人员的业务能力不够,而是这些软件企业在进行软件研发过程中处于无序状态,将主要的注意力集中在技巧方面,对管理的重视程度不够,换句话说,就是软件生产过程对目标管理关注过度,而忽视了过程管理。
1 CMM相关理论及等级选择
CMM,即软件能力成熟度模型,其主要关注的焦点为软件企业改进软件生产过程,致力于不断提升软件研发组织或项目的软件过程能力以及软件成熟度。对软件能力成熟度模型准确而合理的运用可以促进软件研发质量及效率的不断提升。软件能力成熟度模型自提出之后,其影响范围迅速扩大,并得到广泛应用,给各国软件行业带来了深远影响,其作为国际主流行业标准的角色已经得到普遍认可。按照从高到低的顺序,可以将软件能力成熟度模型划分为五大不同等级,其共涉及关键过程域18个,目标52个以及关键实践316个。所有成熟度等级主要是由初始级以及软件能力成熟度模型数个关键过程域构成。CMM2级企业已经具备软件项目管理相关测量以及具体的实施规程,软件研发及维护过程波动不大,并具有可以重复使用的成功经验。以项目为主要对象制定过程管理策略,项目经理的主要职责是对成本、进度以及软件功能进行跟进,并找出其中存在的不足;遇到问题时,具备识别及纠正的能力,并可以实现相关承诺。CMM等级及管件过程域分类详见下表所示。
对基于中小型软件企业而言,企业规模有限,但一般具备突出的创造力,灵活性也较高,容易沟通;在人才配置方面,主要是技术研发人员,其同时兼顾管理,一般没有专业且经验丰富的管理人员;质量意识淡薄,管理水平有限,软件研发规范性有待提升;大多数是短期星期,产品及过程欠缺重复利用性。结合中小软件企业实际存在的上述不足,在实施软件项目研发管理的过程中引入CMM项目管理标准,可以为软件项目的实施及管理提供比那里,在很大程度上提升软件项目过程及质量。若以CMM标准为参考,中小型软件企业尚处于CMM初级阶段,从这点分析,由CMM2级切入较为适合;但笔者并不赞同对CMM2级管理标准进行简单的照抄照搬,原因在于:1)CMM内容的复杂系数较高,具备较为完善的标准,中小型企业的资源有限,若进行过度评审和实践将会造成实施上的不便;2)CMM培训时间长、花费大,会给中小企业造成极大压力;3)CMM只对软件能力成熟度要实现的结果作出了相关规定,但并没有对如何实现这样的结果作出说明。所以,要想使其更加适应于中小型企业的CMM,还需要对CMM管理内容及相关标准进行优化。
CMM软件的技术核心是网络计划,因为网络计划直接影响了施工生产的进度和所产生的费用,而且整个资源的动态管理与控制也都在这个网络计划的核心中,所以这个技术非常的有价值,对于企业的各项管理来说,都是很有管理价值的。在整个过程中,要先做好进度计划安排,实施好计划和编制,然后根据编制的进度进行施工项目,合理的进行工作结构的分解和作业工期等各个工序的逻辑关系,使得这样能够对于施工生产的流程和方案要求进行计算。最后还要对于这些成果进行优化和分析,对于进度编制要积极的检查和优化,这样能够对于生产作业的逻辑关系进行检查和完善,检查企业的生产是否满足其工期的要求,资源配置是否合理。
2 模型改进及实施方案
2.1 改进模型
笔笔者在此介绍一个以CMM2级为基础的软件项目管理模型,具体的结构详见下图所示。
该基于CMM2级的软件项目管理模型的生命周期结合了软件项目研发生命周期,主要包括需求的确定、制定计划、具体实施、测试维护以及最终交付等五个阶段,每个阶段中均含有对应的CMM2级关键过程域,软件质量保证以及软件配置管理贯穿于软件研发过程始终,对于大部分的中小型软件企业而言,软件研发项目并不会采取外包的方式,因此,可以用软件子合同管理KPA对其进行裁剪;若在实践中遇到需要外包的情况,可以在具体的实施阶段有项目经理筛选资质合格的转包商对子项目进行转包。
2.2 组织结构
改在进CMM过程的第一步就是要调整软件组织结构,将之前的不科学之处予以舍弃,并根据实际需求裁剪CMM2级的组织结构。对于中小型软件企业而言,研发人员队伍较为薄弱,如果设置过多人员或是过于复杂的角色关系,实现起来比较困难。组织结构角色及其工作职责为:高级经理一名,主要职责是对软件项目进行管理;项目经理数名,主要职责是对整个项目进行管理;软件工程组,一般需要根据项目规模确定组成人数,主要作用是开发、维护软件;系统测试组,可以由软件工程组兼任,但必须交叉,也就是说,同一个模块的开发及测试不能是同一组人员;软件配置人员,可由项目经理兼任,主要工作时配置软件产品;软件质量保证组,要尽可能的确保该机构在组织上的独立性,如果条件不具备,也能由项目经理或者是测试人员兼任。
2.3 实施方案
首首先,确定需求,主要是开展需求调研、分析可行性、制定需求文档以及出具可行性报告等工作。在该阶段,需要注意以下几方面内容:建立相应的管理制度,从实际情况出发,开展必要的培训,并积极创造交流机会;适时引进管理工具,并加以推广,以便于尽可能的降低软件项目管理压力;开展尽可能详细的需求调研,并且尽量多采用选择题的方式,避免使用开放性问题;其次,制定计划,主要是向软件工程的实施及各个阶段的管理提供一个科学可行的计划,具体的工作包括:选择软件项目开发模型;明确项目资源;对项目进行风险评估;工作分解与职责分配;编订项目计划书。此阶段需要注意以下几方面:根据每个开发模型的优点及不足、具体需求、项目开发周期以及研发队伍能力等因素来挑选开发模型;项目经理要带领团队对项目进行全面评估;结合研发人员特长分配职责;再次,具体实施,为了提供足够的项目实施实际进度可见度,防止在项目实际实施过程与原计划出现较大偏差的情况下,管理部门可以及时采取有效应对方案,需啊哟开展项目跟踪及监控。在此阶段,需要注意的是,在进行编码时,客户有可能对需求进行调整,这就要求项目经理能够随时提出需求变更请求,评估及批准权掌握在如见配置组手中;使用VSS等版本管理工具,这样既可以保证项目开发组成员使用最新的代码及文档,由便于程序的调试、修改和管理;项目的测试及维护,主要目的是为确保软件及服务质量,软件研发及软件项目管理的每个阶段都贯穿着项目的测试及维护;最后一个阶段就是最终交付,在项目的最终交付时并不包含任何KPA,主要涉及到的工作有项目验收、项目资料归档以及培训等。
3 结语
综综上所述,对于规模有限的软件企业而言,在进行软件项目研发的过程中,普遍存在着管理无序、工期延期、系统缺乏可维护性等问题,给软件企业业务的开展造成了极大的负面影响,导致这些问题的主要原因在于对管理的重视程度不够,笔者在软件开发生命周期的基础之上,运用CMM2级项目管理关键过程域,构建了依托于CMM2级的软件项目管理模型,并分别从需求的确定、制定计划、具体实施、测试维护以及最终交付等五个阶段对项目模型的具体实施进行了阐述。
参考文献:
[1]宋华青,国内软件企业软件开发质量与项目管理[D].对外经济贸易大学,2003:56.
[2]董锋,基于软件过程改进理论提高软件生产能力的研究[D].首都经济贸易大学,2003:45-46.
[3]王嘉鹏,软件项目质量成本模型与管理方法的研究[D].首都经济贸易大学,2005:34-35.
[4]陈宇静,基于CMM的软件过程改进案例分析[D].首都经济贸易大学,2005:45-46.
[5]李帜、林立新、曹亚波编著,软件工程项目管理功能点分析方法与实践[M].清华大学出版社,2005:243-250.
[6]孙煜,P6项目管理软件在建筑工程中的应用研究[D].华南理工大学,2010:54.
[7]李洪东、孙艺键,工程项目管理软件的发展趋势与应用现状初探[J].中国建设信息,2008(10):123-125.