成功实施软件过程改进的三个要素
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成功实施软件过程改进的三个要素
2007-10-15网友评论0 条点击进入论坛
摘要: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 年,而印度要早十年,中国与印度的差距在一步步缩小。
国内能够如火如荼的开展CMM/CMMI评估的原因主要有:
3.1 政府的大力扶持
国务院2000年18号文件《鼓励软件产业和集成电路产业发展的若干政策》的发布表示了我国政府和领导对计算机软件产业的重视和支持。宽松的审批条件、优惠的退税政策、对ISO9000和CMM认证支持的专项资金,激励着国内软件企业通过认证的激情。在政府的扶植下,越来越多的软件企业通过了CMM认证。
3.2 外包业务的要求
新一轮全球产业布局调整的大潮,为中国软件外包市场赋予了高速成长的强大推进力。来自IDC的数据显示,全球应用软件外包服务市场正以平均每年29.2%的速度增长,其中,中国软件外包市场在2004年的增长速度为49.9%,市场规模达到5.99亿美元。而Gartner 研究公司更是预测,在2007到2010年间,中国将成为全球最大的软件外包市场。国外软件公司选择外包软件公司的时候,一般都要求通过CMM3级认证,如果没有CMM证书的话,在软件外包市场这块就几乎无法进入。因此,软件外包业务的拓展,加速了我国软件企业通过CMM认证的进程。
3.3 软件企业本身发展的需求
软件过程改进是软件企业发展过程中的必经阶段,一个软件企业在业务越来越多,项目
越来越复杂,开发对于日益庞大的情况下,为了降低开发和管理成本,必须对整个企业进行流程优化,在这个意义上BPR和CMM的目标是一致的。
4 软件过程改进中的问题
不管是CMM/CMMI还是ISO9000是一个相当复杂的标准,它为如何改进软件开发过程提供了很好的指导,它规定了应该做哪些事,没有规定应该如何去做。这种方法给客户留下了很大的空间来开发适合自己的软件过程、规范和标准,但是,也对客户提出了非常高的要求。而且,CMM标准本身就是一个理想化的东西。CMM有18个关键实践域,每个关键实践域的第一条基本原则就是,必须为这项管理/技术工作提供充足的资金、时间和资源。这条原则却是绝大多数企业无法满足的。
国内企业在进行CMM评估时,存在很多误区。例如,有的企业将CMM当成解决一切问题的圣经,没有很好地理解CMM的内涵;有的企业盲目追求轰动的市场效应,为了获得所谓的“国际市场的入场券”,没有扎扎实实地进行企业软件工程能力的提高,纯粹是为了过级而过级,通过评估后,所有的开发过程基本上又回到原来的状态,完全违背了CMM的思想。
绝大多数企业希望通过CMM来提高自己的软件工程化水平,但却无从下手。其中,很多企业在准备实施CMM的初期,就被其繁琐的过程和高昂的费用所吓退。每一个采用传统的方法实施CMM认证的企业都需要“大动干戈”,首先是全公司的培训;然后,把项目停下来补文档;最后,准备各种各样的问题和答案,准备应付评估师的随时提问,闹得整个企业不得安宁。因为即使CMM二级也有近百种实践要求,就是每个人培训一个星期,他还是很难记住这些操作。短时间参加CMM培训的人员的一个最显著的特征就是迷茫,不知道该怎么去实施,好像以前在开发软件方面还有一些心得,培训完后,就完全不知所措了,更别提将这些管理要求有机地结合到一个项目里去了。
这种做法的后果可想而知,这就是为什么很多企业在通过了评估以后,又回到原来做法的原因。总而言之,传统的CMM实施方法要求按部就班地进行,不仅周期长,对人员和经费要求高,而且,实施后效果保持难度很大。因此,如何真正快速有效地实施CMM,提高软件生产率是一个亟待解决的难题。
5 成功实施软件过程改进的三个要素
对于软件过程改进策略的选择,实在是仁者见仁,智者见智。也许并没有什么绝对的对错,关键看是否符合自身的实际情况。对国内广大中小软件企业而言,存在什么样的实际情况?应该采取什么样的软件过程改进策略呢?
中小企业的实际情况大致如下:管理基础薄弱,资源不足,生存压力大,缺乏统一而有力的文化,人员素质良莠不齐。在这中环境下实施软件过程改进,有很多因素是需要特别注意的。
5.1 企业领导树立正确的软件过程改进观点,全体员工有软件过程改进意识。