摘要:ISO9000、CMM和CMMI在国内软件企业已经实施了相当一段时间,目前实施后的软件公司CMM/CMMI等级都上去了,可是效果却各不相同。本文从软件过程改进整个过程来探讨成功实施软件过程改进要注意的方方面面,如何才能够让软件过程改进取得最佳效果。
关键字:软件过程改进,CMM,CMMI
1 引言:
软件开发是一种组织良好、管理严格、各类人员协调配合、共同完成的工程项目。软件开发的核心资源是人,这与那些自动化生产线主要靠机器来工作不同,软件开发有太多的可变因素,因此对软件开发的管理应该也是具有一定的柔性,以适合不断变化的开发过程。
软件过程是生产软件的一系列流程,是为了获取所需要的软件产品而需要完成的一系列有关软件工程的活动。他一方面与软件生命周期、软件开发方法和工具、软件开发人员等诸多方面都有着密切联系,另一方面被软件公司的传统习惯、文化氛围和企业领导人的领导风格所影响。
软件过程并不是一个单一体,他是由一个主过程和若干辅助过程共同构成。一般的主过程就是软件开发必须经过的一些过程,称为开发过程。此过程中的任何一个环节都不可缺少,如最传统的瀑布模型中的软件开发过程为:需求分析、总体设计、详细设计、编码、测试、部署和维护。辅助过程则一般指软件开发中的配制管理、文档管理、质量保证、项目管理等过程。虽然软件开发只需要开发过程就能开发出软件,但是缺少辅助过程则会让整个开发过程变得混乱,甚至失去控制,因此辅助过程也是软件过程改进中的重要内容。
2 软件过程改进概述
软件过程改进(Software Process improvement,SPI)帮助软件企业对其软件过程的改进进行计划、过程诊断、过程改进方案制定以及实施。 他的实施对象就是软件企业的软件过程,也就是软件产品的生产过程,当然也包括配制管理、软件维护之类的辅助过程,而对于其他的过程并不关注。
在软件企业,软件开发是企业最重要、最复杂的过程。软件产品是软件企业的生命,对软件企业进行流程优化和改进,最主要的还是对其软件过程进行改进。一个软件企业的消耗与收益都在软件产品上,开发过程失败则会给企业带来致命的打击,开发成功则能给企业带来大量的收入,如何降低开发成本,多、快、好、省的开发出所需要的软件是企业立足于市场的根本。
当一个软件企业一步步成长的时候,会发现原来的开发方法、管理模式开始不适应目前的开发。需要开发的软件越来越大、越来越复杂,而不断的增加人手对开发的进度的帮助越来越小。由于开发人员数量越多,沟通成本就越高,使得总体开发效率反而下降,因此需要在管理方面进行提高、在流程上进行优化,才能够提高开发效率、缩短开发周期、降低开发成本。
软件企业从“软件作坊”进化到“软件工厂”是一个跳跃式的改变,从开发模式、管理模式、企业运营模式都会发生质的变化。很多从团队发展起来的小软件企业很难实现这一步的跨越,生搬硬套更是可能让企业的生命过早结束。如何提升软件开发模式和企业的管理是中小型软件企业发展过程中遇到的最大问题,也是软件过程改进需要解决的问题。
目前在世界上用的最多的软件过程改进模型是CMM、CMMI和ISO9000系列标准。软件企业根据自声的软件过程情况,参照模型标准进行对照,找出自身与标准的差异,然后对自身的过程进行改进,以达到标准的要求。在这个过程中需要根据企业自身的情况分步实施,有计划、有组织的进行,如果一开始就全面铺开,波及的范围比较广,则会给企业带来较大的风险。如同有些企业一年内从CMM Level1级别一路升到CMM Level 4 级,不仅没有实施效果,还可能会让企业适应不了新的流程,而造成企业内部的混乱。总体规划、分步实施才能保证软件过程改进的效果,“先僵化,后优化,再固化”才能够让过程改进落到实处。
3 国内软件过程改进的现状分析
自从2000 年,中国通过了第一个1+3 的评估以来,实施CMM/CMMI 的顾问团,中国在2006 年1 月份的企业,中国到目前为止已经有 128 家企业通过了评估,美国是158 家。在CMM认证通过的企业数量来看,考虑到中国第一次做评估的是2000 年,而印度要早十年,中国与印度的差距在一步步缩小。
文章来源于领测软件测试网 https://www.ltesting.net/