软件项目的强心剂:过程改进

——本文发表于中国计算机报 2004年第38期,总期号:1317

 

  经过十多年的艰苦努力,我国软件产业取得了长足的进步。截止到200312月底,全国共认定软件企业8730多家,登记软件产品18900多个,但绝大多数企业的规模偏小。如何提高企业管理能力,如何增强产品竞争能力,如何保证企业国际竞争力,成为企业进一步发展必须正视的问题。

 

  在软件企业进行软件过程改进的过程中,有许多问题需要广大软件从业人员认真考虑:

 

  ——面对客户越来越严格的要求,如何按时保质地完成软件项目?

 

  ——面对国际性的竞争,软件企业该如何保证软件开发的品质?

 

  ——面对软件企业规模扩大的压力,软件企业该如何合理地建设软件开发团队?

 

  洞悉:过程改进的前沿

 

  每年一届的美国SEPG大会,在国内外享有盛誉。2004,首届中国软件过程改进(国际)高峰会(SEPG 2004 CHINA)也将举行。当今,促进软件企业过程改进、提高项目管理水平迫在眉睫。

 

  郭旭:历届美国SEPG大会的内容都是围绕促进软件企业过程改进、提高项目管理水平等热点问题进行广泛的研讨。请谈谈在美国召开SEPG大会的一些热点性问题?

 

  刘宇辉:过程改进在美国已经实施了很多年,过程改进的思想也源于西方文化,因此在美国更加注重对模型的实施,而且关注实施的细节。比如,最近一次在美国召开的SEPG大会,就比较关注实践性的问题和方法,包括如何在小项目中运用大的过程,过程改进的经验分享,需求管理的最佳实践等等,这些实践对丰富模型本身具有非常重要的作用。

 

  于国发:每年一度的SEPG大会是软件过程改进领域的一个极具权威性的大会。2004年度美国SEPG大会的热点是:按成本按期构架高质量产品;建立并维护持续的改进工作;应用战略方法使您的组织和行业领先者保持一致。

 

  张本丰:美国SEPG大会的热点一般都集中在与SEPG所关注领域本身相关的主题,如软件过程改进、软件度量与分析等。

 

  郭旭:9月份,即将于北京,由卡内基梅隆大学授权召开首届中国软件过程改进(国际)高峰会即(SEPG 2004 CHINA),您对此有何期待?

 

  刘宇辉:这是SEPG大会首次在中国召开,在此之前在亚洲的其他地区曾召开过。这次将会议举办地选在北京,本身就是对国内这么长时间以来,不懈地进行过程改进工作的一种认可,同时对中国同行业来说也是机会。

 

  CMM是西方文化背景下产生的一套质量体系,在国内实施过程中存在着很大的文化差异,但是CMM作为一套完整的、系统化的管理思路和方法,无疑对国内的软件开发管理和项目管理提供了努力的方向。实现了从无章可循到有法可依的过渡。但是这么多年的摸索也带来了很多的困惑,我们也迫切需要和国外的同行进行广泛的交流,希望了解目前国际上的最新水平。但交流的成本代价太大,而这次大会提供了很好的机会。

 

  于国发:对于SEPG 2004 CHINA,我希望大会能够将重点放在这几个方面:第一,软件过程改进与项目管理的结合;第二,eSCM与中国软件外包;第三,软件外包与国际化人才;第四,组织级项目管理;第五,人力资源成熟度模型P-CMM;第六,CMMCMMI的转化。

 

  张本丰:希望SEPG 2004 CHINA能多谈一点关于CMM/CMMI与项目管理的关系;定量管理的最佳实践;软件过程改进领域国内国际方面的最新进展;国际级大师现身说法等方面的内容。

 

  郭旭:能谈谈您对过程改进领域的前沿思考和实践情况吗?

 

  刘宇辉:目前国内的过程改进工作进展速度很快,原来只有大公司重视,现在有越来越多的中小型企业开始关注这方面的信息,并着手改进工作。但实施的情况不是非常理想,一方面因为国内企业的市场压力比较大,另一方面也有理念上和文化上的差异,这些差异造成了实施上,对标准理解的偏差。但尽管如此,我们可以看到,随着越来越多的企业实施过程改进,软件企业的管理水平得到了确实的提高,而且也使得质量观念在软件行业中越来越深入人心,这对于软件行业的发展非常重要。我认为今后国内过程改进的方向应该是在充分理解模型的前提下,探索自身的特点,进行脚踏实地和卓有成效的实施,避免急功近利的思想。

 

  于国发:软件过程改进不应该只是从软件开发本身做起,还应该把项目管理、ISO9000CMM结合起来综合考虑。在这方面,我们做出了有益的尝试。北京SPINPKSPIN)专门组成了一个课题组ISEBOK(集成化软件工程知识体系),并做出了一定的成绩,取得了阶段性的成功。

 

  过程改进需要作为项目管理和质量管理的一个重要组成部分,作为企业管理体系的重要一环,我们不能脱离软件开发的实际来谈论过程改进。在进行过程改进的同时,我们不断参与软件开发,使理论指导实践、实践产生理论,通过这样的循环不断进行过程改进。在进行过程改进时,需要集合大家的力量,不能单枪匹马。企业之间也可以相互借鉴、相互学习、彼此促进。SPIN(软件过程改进网络)的方式是一种极为有效的方式。同时,六西格玛(6 sigma)作为一种行之有效的质量管理方式已经得到了越来越多的认可,在我国软件行业也开始受到广泛关注。

 

  张本丰:软件过程改进要真正达到高效和可操作,一定需要考虑软件过程信息化的策略。

 

  耿洪彪:实效性强是企业对过程改进研究者提出的永恒期望。另外,还要考虑与其它管理体系的融合,如:项目管理体系、ISO质量管理体系、6-sigma等。

 

  核心:CMM认证的突破

 

  要使中国的软件产业健康发展和走向世界,重要的原则就是提高软件企业管理能力,同时提高并保证产品的质量。实施CMMI是帮助广大软件企业改进软件过程的重要手段之一。

 

  

 

  郭旭:中国企业目前在CMM这一块做得怎样?是否直接影响了其在外包方面的进展?

 

  于国发:近几年,CMM在中国呈星火燎原之势。加上政府的支持,中国的软件企业纷纷实施CMM。但是,中国软件企业实施CMM的动机各不相同,效果也不一样。中国软件企业实施CMM的水平也不一样,有的企业达到了最高的CMM5,也有的企业才开始起步,从CMM2开始,但是大多数企业基本处在2级和3级水平。当然,通过CMM和正在实施CMM的软件企业,无论在数量上还是在比例上,都远远不够。即使通过了CMM认证,有的中国软件企业的软件开发能力和过程改进能力还是让人担忧。由于很多中国企业没有通过CMM的相关认证,在承接外包项目时,无法让有的客户相信它的软件开发的过程能力,在很大程度上影响了外包业务。

 

  耿洪彪:现在进行CMM认证的公司大致分为两类。一类是大型公司如华为、东大等大型品牌公司,认证除了更好地树立形象外,更多地是为了管理其庞大的开发团队和项目群。在这类公司中往往存在对软件工程认识较深的人员,所以持续改进会具备相当的动力,其外部特征就是一般都会做到CMM4以上。另外一类是小型公司,他们认证的目的主要还是增加市场竞争力,从众多竞争对手中脱颖而出,争得订单。这类公司一般缺乏深入应用CMM的人才,一般冲刺到CMM2CMM3就停滞不前。

 

  郭旭:中国企业在CMM认证这一块有哪些困难,什么样的企业适合上CMM认证?有一个什么标准或杠杆存在?

 

  刘宇辉:目前国内在CMM这方面的实施并不是很好。至于什么企业适合实施CMM,没有明确的定论。一般来讲,有一定规模的企业实施起来更加容易一些,改进的效果也会更明显一些。但CMM的思想对多种类型的企业都是很有借鉴作用的。

 

  于国发:根据北京SPIN做过的一个调查,中国软件企业在实施CMM认证方面有这样的困难(引自北京SPIN王均的文章《软件企业需要什么样的CMM服务》):第一,实施制度化体系存在的问题。包括:体系文件的制定没有结合企业的实际情况,没有解决实际问题体系实施带来的大量额外烦琐的管理工作量,又缺乏合适的管理工具;领导支持的力度不够;实施体系时,没有注意改造企业文化中与制度化不兼容的部分,结果发生文化冲突;基本软件工程不到位,包括由于软件人才匮乏,人才结构不合理造成的种种问题;人员素质,各级管理人员普遍缺乏管理知识,不知道怎么管理;由于ISO9000在中国软件业的实施有许多不成功,打击了人们对CMM的信心。

 

  第二,开发过程不规范的问题。已往的制度化体系,特别是ISO9000的实施,没有能够满足企业对于基础管理的需要,体系实施的有效性有待提高。企业的工具使用率偏低,受欢迎的是一些简便易用、价格适宜的工具。

 

  对于什么样的企业适合实施CMM,我认为没有什么具体的标准或者杠杆。关键有一点,企业是真正为了对软件开发过程进行持续改进。不过,对于规模较小的企业来说,CMM实施成本较高,如果企业管理不是很规范,还没有规范的软件开发过程,不是特别适合实施CMM。相对而言,规模较大、管理较规范、人员经验相对丰富的企业,可以考虑实施CMM

 

  张本丰:在CMM评估认证方面,不同发展阶段、不同文化氛围、不同管理机制的企业会面临不同的问题。CMM本身对上述问题并不挑剔。但实施基于CMM的过程改进则必须要正视这些问题,实施的团队/组织要对这些事情有准确的判断和很强的洞察力。可以借助外部的培训和咨询来部分解决这些问题。

 

  理论上CMM对于各种类型的软件企业过程改进工作都是适用的。但一个组织去实施CMM的目的不同,做法也会差别很大,收效也会差别很大。对于那些有切肤之痛的企业或许更容易体会到CMM实施的收益。

 

  CMM的级别本身就能够说明一个企业的软件过程能力。对欧美的外包尤其是这样。但我们要避免将一个软件过程能力事实的标准做出中国特色事情的发生。

 

  耿洪彪:中国企业CMM认证的难点在于,在进行CMM认证之前,多数企业都没有自觉地持续改进活动,所以当突然进行CMM认证时,企业的开发过程一般都会发生剧烈变动。一方面适应这些剧烈变动存在困难,另一方面用于支持这些过程的工程活动(如估算、评审)等不可能短期内有效执行,所以会导致认证表面化。

 

  郭旭:国际上CMMCMMI过渡的进展现在是怎样的一个情况?CMMICMM的区别,以及如何实现过渡?企业应该如何选择两者?

 

  刘宇辉:企业到底是选择CMM还是CMMI 主要基于以下几个方面进行考虑:第一,实施企业的业务特点;第二,实施企业对过程改进的熟悉程度;第三,实施企业对过程改进项目的预算;第四,实施企业是否可以使用阶段式的演进路线;第五,实施CMMCMMI可以平滑地转换。

 

  于国发:CMMI自推出以来,得到了广泛的关注。许多国际企业,特别是欧美等地,都已开始实施从CMMCMMI模型的过渡。很多印度的软件公司,都纷纷从CMM转向CMMI。目前,日本、欧洲、我国台湾、印度等很多企业都在推广与应用CMMI

 

  CMMICMM集成,是系统工程和软件工程的集成成熟度模型,CMMI更适合于信息系统集成企业。CMMI 是在CMM 基础上发展起来的,它继承并发扬了CMM 的优良特性,借鉴了其它模型的优点,融入了新的理论和实际研究成果。它不仅能够应用在软件工程领域,而且可以用于系统工程及其它工程领域。

 

  张本丰:越来越多基于CMM实施过程改进的企业选择了或正在选择向CMMI过渡。CMMICMM的区别其实并不完全是本质上的。但还是有很多地方有所不同。对于CMM2/CMM3的企业来讲,要实现向CMMI L3的过渡,要做的工作还是比较多的。但是对于CMM4/CMM5的企业来讲,要向CMMI的相同级别过渡,其实并没有太大压力。在此过程中,可以借助一些培训和咨询的手段来在短时间内迅速解决know what的问题。

 

  外包:走向国际的热点

 

  国际软件外包市场的持续增长让越来越多的国内软件企业看到了商机,并将自身的业务方向定位在这个领域。虽是热点,也是难点。企业的困惑是什么?应如何做好软件外包?

 

  

 

  郭旭:软件外包在走向国际化的企业中仍然是个热点,也是个难点。他们困惑的地方在哪?

 

  刘宇辉:在国际软件市场上,有两个趋势。第一,尽管WTO是开放的,但是西方世界已经构筑起一道很难逾越的CMM5标准,当然还会有其他相关技术标准,如果你达不到,就很难进入西方市场。第二,用友等公司都已经高高举起国际化大旗,希望在西方的软件世界中获得收益。当然也有一些项目型的软件公司,也在加紧这方面的运作。不过我们的公司目前还不够强壮,这方面的运作远弱于西方公司对中国市场的攻击。目前,我们在外包领域的资金和人才都不具有优势,而且由于文化的差异,导致我们和外方的沟通不是很容易。

 

  于国发:这几年,软件外包在中国的软件行业掀起一阵热潮,而且越来越热。软件外包产业的巨大市场规模和美好的市场前景,让无数中国公司趋之若鹜。很多中国软件公司开始把外包作为重要的发展目标。但中国的软件企业在争取软件外包的过程中,也遇到不少挫折和困惑。中国软件企业的困惑通常表现在如下几个方面:第一,摸不到软件外包的门道;第二,即使摸到了软件外包的门道,也迈不进软件外包的大门;第三,即使进了软件外包的门,前途也是那样坎坷,根本不像想像的那样美好。其实,中国软件企业的困惑产生的主要原因,不是软件外包的问题,而是中国软件行业和软件企业自身的问题:第一,软件开发过程不规范,过程能力太弱。我们很多企业甚至没有一套完整规范的软件开发管理流程,软件开发水平较低。第二,产品质量不高。大多数软件企业无法按时、按质、按量提交合格的产品,无法达到客户的质量要求。第三,规模小。中国企业自身规模有限,导致无力承接大型的软件,只能承接部分低端、小型的订单。第四,人才缺乏。中国的软件企业人才普遍缺乏,特别是缺乏高端人才。第五,缺乏核心竞争力。国内大部分企业提供的业务雷同。我国企业更多的只能承接最底层的编码订单,而很难进入系统设计等业务,更别说承接包括框架设计在内的整包业务了。第六,语言劣势。我们很多人的外语水平无法同欧美等国家的公司人员直接交流,跟印度相比,劣势尤为明显。第七,缺少国际化人才。缺少了解欧美和日本公司的国际化人才,不仅仅表现在语言方面,还体现在思想、思维方式、商务手段、业务模式等方面。第八,文化、商业习惯的差异。中国的软件企业很多不了解欧美等国家的文化,不了解他们的商业习惯,不能按照他们的流程、方式办事,这也是影响中国软件企业从事软件外包的一个重要因素。

 

  郭旭:请谈谈中国的企业应如何做好软件外包?什么样的企业适合作软件外包?他们做外包的情况如何?

 

  刘宇辉:尽管软件外包在中国有诸多困难,但中国在软件外包领域也是很有发展空间的,因为国内的企业清楚地看到了差距,并且正在迎头赶上。国家支持的力度也在不断加强,企业也在不断从我们的邻邦印度那里得到经验。相信随着越来越多企业成熟度的提高,我们承接外包项目的能力也会越来越强。目前国内的外包主要以日本为主,而且已经从简单的测试和编码过渡到开始设计系统架构的分析和设计了。对欧美的外包则刚刚起步,项目的规模还不是很大。

 

  于国发:中国的软件企业要做好软件外包工作,应该从如下几个方面入手:第一,加强软件开发能力,规范软件开发过程。软件企业应该建立一套规范的软件开发过程体系,不断提高自己的软件开发能力、项目管理水平。关键是练好内功。第二,不断提高产品质量。软件开发人员按照规范的软件开发过程进行开发,按时、按质、按量地开发出满足客户要求的软件产品。第三,不断扩大自身规模,或者采取联合的方式扩大规模。第四,加强人才培养工作,优化人才结构。第五,增强核心竞争力,避免低水平和低层次竞争。第六,加强培养和发现国际化人才,理解并遵守国际规则。第七,进行各种认证,满足客户对资质等方面的要求,例如通过ISO9000CMM或者eSCM等方面认证。

 

  当然,并不是所有的企业都具备做软件外包的基本条件或者要求,现在做软件外包比较好的企业一般都具有这样的特点:第一,软件开发过程规范,管理能力强。大多数公司都有一套规范的软件开发过程体系,有的还通过了CMM的各级认证。第二,产品质量可靠。能够按时完成软件开发,质量能够达到客户的基本要求。第三,具有一定的规模。很多企业规模相对较大,能够承接比较大型和高端的项目。第四,人才结构合理。不但具有大量从事编码的程序员,还具有中高端的项目管理人员、系统分析人员、设计人员,以及软件测试人员等。第五,有极强的核心竞争力。这些企业大多都具有明确的业务方向,集中力量从事具体方向,与客户形成有效的互补。第六,具有良好的信誉。第七,了解国际惯例,理解客户的思维方式、文化、习惯,理解国际商业规则,尊重客户。

 

  近几年来,中国的很多软件企业从软件外包中获益匪浅,通过外包积累了资金,发现和吸引了大量的国际化人员,规范了开发过程,提高了软件开发管理能力。这样的企业越来越多。目前,软件外包成星火燎原之势,不但出现了很多著名的公司(如东软、中软、中讯等),而且出现了多处软件外包的开发基地(如大连软件园、中关村软件园等)。

 

  张本丰:发包方对于软件外包服务提供商资格能力方面的关注点是从事外包服务软件企业最关注的问题。中国的软件企业还是要从自身质量体系建设,过程改进、文化建立,项目管理能力,国际化运营等和外包相关的能力方面加以提升。

 

  主持人:郭旭  中国计算机报 高级副总编

 

  于国发 方正奥德公司项目主管

  刘宇辉 北京软件行业协会过程改进分会副秘书长

  耿洪彪 北京圣普远博管理研究中心主任

  张本丰 圣普创业总经理