UML软件工程组织

CMM布道中国:一切才刚刚开始
  孟迎霞 唐琦  

    一、引子

  1986年底,美国“软件危机”日趋严重,同时,美国联邦政府希望能有一套评估软件供应商能力的方法,为此,卡内基·梅隆大学的软件工程研究所(sei)开始正式着手这项工作。sei的w.s.humphrey等人在仔细分析导致“软件危机”的各类具体因素后,相继提出了软件过程、软件能力成熟度等概念,并在mitre公司的协助下,于1987年9月发布了一份“能力成熟度框架”(capability maturity framework)和一套“成熟度问卷”(maturity questionnaire)。
  这套问卷其实只是探索软件过程成熟度的一个工具,真正的模型出现在四年以后。sei总结了自1987年以来对“成熟度框架”和初版“成熟度问卷”的实战经验,集中了四年来对软件公司评估的经验以及广泛的用户反馈,在“成熟度框架”的基础上建立了一个可用的模型,使这个模型可以更有效地帮助软件企业建立和实施过程改进计划。这个模型,就是后来为全球软件业所称道的cmm,当时推出的是cmm1.0版。
  cmm的真正含义是“能力成熟度模型”,即capability maturity model的缩写。
  cmm1.0版使用2年之后,sei在1992年4月举行了一场研讨会,来自全美的200多名软件专家参与了cmm的主题建议、草稿评审、更改评定和结果测试。根据众多专家的反馈,1993年sei又推出了更新版的cmm1.1。近年来,针对软件的发展和过程影响的各个因素,cmm开始细化,并相继产生了多个分支,而且每个分支也在不断地产生新版本。
  随着全球信息化和一体化进程的逐步深入,cmm正在深刻地影响着全球软件业的每个角落:在美国和北美地区,cmm已得到了广泛的应用,越来越多的欧洲和亚洲国家正在采纳和实施cmm。当然,热潮之中,中国也毫无例外。
  中国最早引进cmm体系的应该算是国防系统以及一些大学的研究部门,而实施最早的是motorola(中国)公司,他们在1993年开始实施cmm,并于1996年达到cmm 3。但真正对国内业界带来冲击的还是1999年7月6日,由ibm和清华同方合资成立的北京鼎新信息系统开发有限公司通过cmm 2级,这是国内规模化知识导入cmm的一个重要里程碑。
  在这此后的一年多,中国软件界对cmm进行了广泛的讨论和分析,各大媒体相继发表了大篇幅的讨论性文章,cmm的各层次相关会议、论坛也层出不穷。人们对cmm的认识普遍经过了这样一个过程:概念、思想的引进→引发的业界争论→软件企业的质疑与肯定。中国本土企业第一家通过cmm 2评估的是2001年1月联想电脑有限公司软件事业部,它标志着中国cmm体系正式进入了“研究、实施期”。至此,中国的软件界开始了cmm引入的热潮。cmm服务商开始诞生并日趋活跃。
  国内开始派出人员到sei取经,国外的软件工程大师也开始第一次将眼光投向这块东方圣土。

  二、cmm传道士—— ron radice博士专访

  cmm创始人前来大规模传道的,到目前为止,有2位:即ron radice和他的学生——cmm主任评估师、p-cmm创始人和设计者bill curtis。
  这两次培训,是国内业界更多人士第一次真正直面cmm始祖,对于深入理解和更好实施cmm有着不可低估的作用。

  ron其人

  在中国,即便是软件界,知道ron的人恐怕也并不会特别多。但在印度,ron却是一位家喻户晓的知名人物,由于ron对印度软件业的巨大贡献,印度总理曾专门接见ron,并对他所做的一切表示赞赏。
  第一次见ron,是2002年1月16日,北京,建国饭店。在由美国软件工程界名家、jbm公司总裁丛斌博士主办的我国第一届cmm主任评估师培训班上,一位头发花白、精神矍铄的老人,谈笑风生地在讲述着自已从事cmm的经历。
  这个故事,与以前所历次听过的cmm有关,但又不象以前所听过的那样遥远、那样深奥。这一次,记者不但知道了cmm的更多内容,也同时知道了闪烁在这位老人身后的耀眼光环。
  ron是cmm主要创始人之一,现任sei软件流程改进项目部门的总监。他的特长主要集中在以下几个方面:
  集多年经验与实践之大成。ron曾在ibm技术管理职位任职23年,为ibm在软件流程和质量保证管理方面奠定了策略性的发展方向。也曾在美国著名的rensselaer理工研究所管理学院教授软件工程。ron所开发的工具曾被业界评为软件工程界最重要的10大贡献之一。
  对cmm的认识和培训有独到的认识和经验。ron从事cmm的相关工作已达30多年。80年代,他的团队开发出成功的现场评估方法,成为后来sei在商用和政府软件组织推行的spa和sce方法的先驱。cmm中最常引用的休斯顿范例也是ron亲自实施和创造的。sei的现任院长以及全球cmm领域的许多优秀人才都是ron的助手或学生。ron所创建的评估公司,是美国政府允许对外评估的第一批企业之一。
  有多部软件工程专著,如《an industrial approach》、《software inspection: past, present, and future》、《imagine the possibility》和《software metrics: a practical approach and level 5》等多部。
  ron一向奉为至理的一句话就是:“越简单越好,越有效越好”。他认为,在软件项目中,只要软件工程实施得好,就能达到“还未做测试,但大部分错误已排除”的效果。

  从“程序员”到“软件工程专家”

  刚开始时,ron的工作是写代码,他写过很长时间,也做过很多程序,非常喜欢编程。但编程过程中很容易出错,这似乎谁也避免不了。后来,编程久了,ron发现:如果程序开发和过程管理做得好,出错就少。这里面可能有技术,这是一个很重要的发现。也是刚开始写程序时他没有注意到的。
  研究这项技术也很有意思。其间,ron想到许多管理方法或技巧,并在编程时加以运用。后来上司发现,ron的程序总是比别人的程序错误少得多,得知原委后,上司就让他将这些技巧教给其它同事。后来,ron注意到其它程序写得好的开发人员也有自已避免出错的方法和技巧,他们的方法也能达到同样的效果。这时,上司希望ron能将这些技术或方法总结出来,教给更多的程序员。
  慢慢地,ron喜欢上了这种培训,也写了很多的技术报告,在报告和实践中,他更发现这些工作的重要性和兴趣,也就乐意教给越来越多的人,长此以往,不知不觉中也就转到软件工程了。但从另一方面说,ron开始做培训,并自出于自愿,而是一步步地被迫转到这种工作。
  ron认为,在软件工程中,写程序就像是一个砖瓦工,到不同地方拿东西来组装东西。但组装时,有时会拼不上,这可能是原料短缺,就象做软件时需求没有做好,到底做什么心里没底;也可能是时间太短,非常复杂的一个功能,短期内不可能做好。甚至可能并非是程序员的问题,而是因为环境不好,需要的东西没有,或者说并非完备。其实,写好软件的秘诀也很简单:给程序员足够的时间,很好的“构造”,开始时必须教他们如何做,需要时提供很好的培训,此外,还应当有一些好工具。
  现在有些程序员写不出非常好的程序,原因可能是管理问题,处在很大的压力之下。很短的时间要求做完,又给不出足够的支持。这就象饭店的厨师,要求他很快做好菜出来,但一方面佐料不全,另一方面厨房环境又很混乱,他虽然希望、但确实是很难迅速做出一道好菜。其实,每个程序员都希望写好程序,他们以此为荣,个人也有成就感。在这种情况下,ron感觉做管理是自已应尽的责任,必须尽量提供给开发人员所需要的所有技术和环境。尽管这是一件比较长久的事,但也是一件必须要做的事。

  软件工程会越来越重要

  写程序的人既然是工程师(software engineer),就必须遵循一定的规范,编写代码并不能太随意。
  软件工程表示解决问题一定要非常有规律、有秩序,按次序进行。不论公司或项目的大小与规模,哪怕只是一个人,从考虑问题开始,一直到问题的解决方案,自始至终都要按照一定的规律进行。对一个项目来说,要先做需求分析,后写代码。这个与项目大小无关,做任何项目都必须按科学的方法来做,这样成效也就更大。
  当然,如果是有很多人的大项目组,需要遵循的过程会多一些,所需要的规则也多一些,因为还有小组之间的交流、个人之间的交流等等。但哪怕项目只有一个人,也要按照一个过程来做,当然这个过程会简单一些。如果遵循这些规则,效益会提高很多,编写的软件质量也会提高,错误会减少,甚至周期也会缩短。其实,cmm中的psp(个体软件过程)实质上就是专门为一个人的项目制订的。未来一定时期内,软件的需求会越来越大,软件工程也会越来越重要。一方面,未来的商务解决方案会产生更多的软件需求;另一方面还要求软件开发得更快、质量更高、费用更少,所以帮助软件开发者达到这个目标的类似cmm一样的软件工程会越来越重要。

  为什么美国的一些大企业不做cmm?

  这里有一个概念,不是说所有的企业都必须实施cmm。美国有一些大企业,他们没有实施cmm,但他们或许有自已内部的一套成系统的管理方法。在美国,一些和国防有关,特别是为政府做事的企业就必须通过cmm认证。如果该企业没有通过cmm3级,就不能参与国防部的项目。但还有一些与国防无关的其它领域,比如为美国财政系统做软件的企业,他们并不是为国防部做事,也不是从政府拿项目,但他们中的大部分都已经实施了cmm。特别是其中最大的五个企业中已经有四个实施了cmm。此外,能源领域里也有很多企业都实施了cmm。这些企业希望能通过cmm提升自身软件能力、降低生产成本。
  在这个问题上,ron认为有些中国人对美国软件企业的认识存有一些偏差,似乎过于看重前一段网络热后产生的一些创业公司,即2、3个人+一个好想法+一个车库的创业公司。大多这样的软件企业确实没有实施cmm,但他们不能代表美国的软件企业主流。    

  咨询公司

  在北京市科委和北京软件产业促进中心的一份出版物上,记者看到了一份“北京市推荐的cmm评估咨询机构一览表”:

  太平洋软件(中国)有限公司

  北京力友和质量管理咨询有限公司

  北京北大青鸟软件工程有限公司

  北京航天测控公司软件中心软件工程咨询部

  北京航空航天大学软件工程研究所

  北京新世纪质量体系认证中心

  北京新标智业集团

  北京jbm科技发展公司

  美国soft tech公司(北京博思美亚科技发展有限公司)

  航天软件评测中心

  北京市软件促进中心副主任姜广智先生对此解释说:“推荐名单是以单位笔划排序,没有具体的衡量标准,主要是这些公司主动和我们联系,但他们大多原来都有过业绩,企业需要重点考虑的是这些咨询公司的评估师是哪些人,他们是否能真正地起到推动作用。”

  在此次专题的组织过程中,我们无数次地听到、接触到两个活跃于北京的cmm咨询公司,这就是上面所提到的jbm和力友和。jbm technologies inc.是数名留学美国、并成功于软件管理的海外人员创办的软件管理咨询公司,在北京和硅谷均设有办公机构。而力友和是一家中德合资公司,因对鼎新、北京北佳、北京东方通和广州新太的cmm2级评估业绩突出而获得过北京市嘉奖。

  对政府的期望

  丛斌博士认为,政府要对认证机构有一些控制作用,因为对产业的影响比较大。

  此外,政府对cmm的衡量应当不只局限在几年过了几级,而要更长远一点,看看3年之后国内出了几个世界软件企业的品牌。反过来,如果国内全是4级、5级,但做不了国际上的商务,得不到国际的承认,那也是没用的,而且那也是真正的失败。所以,推动cmm的真正目标是做好企业品牌。

  五、从30万元说起—— 谈政府对cmm的扶持

  2001年10月,通过cmm 2级的北京东方通、北京北佳软件公司分别得到了北京市政府的30万元奖金。同期,由同一家咨询公司——北京力友和帮助下也通过cmm 2级评审的广州新马太公司也得到了广州市政府的奖励。cmm研讨会上颁发奖金及证书的一幕,给人留下了很深的印象。

  就政府的扶持,北京市软件行业促进中心姜广智副主任从以下各方面做了论述:

  扶持原因

  2001年,北京市软件出口额为4470万,同比增长34%,全国软件出口为4亿美元,北京占到约11%,北京的软件企业数几乎占到全国的1/3。北京是全国最主要的软件发展基地,也要尽力营造全国最好的软件发展环境。希望能做实事,做扎扎实实的改善和促进。

  国家支持cmm评估工作,主要是考虑提升国家软件行业的管理水平。此前,科委内部也有争论,认为中国不应该引入cmm,因为费用太过昂贵,据了解,国内第一家过cmm 的鼎新,做cmm 2就花了200万。而且也有企业反映,引入cmm后,项目成本增加了20%。但从整体来看,cmm是经过许多国外软件企业实践过的,这剂进口药开始可能贵一些,但如果能解决我国的问题,就是必要的。所以,最终采取了不管争议埋头先干的策略。

  扶持主要从四个方面:制订各种推动计划和优惠政策,扶持企业通过cmm,发展国内主任评估师以及举办相关培训、活动等等。

  3年落实700万

  从1999年开始启动cmm,政府制订了计划,北京市科委拿出了700万奖金,目标是到2002年有20家企业通过cmm2级以上的评估(包括评估过的企业),以望在2年内形成一个规模群体。整体形势现在看来要比预想的好一些。

  700万元是1999年安排的,主要来源于两方面,(1)科委;(2)外经贸部。2000年到2002年,3年时间专款专用,支持企业做cmm工作,包括培训,包括对企业通过cmm后的补贴、奖励,包括对个人的补贴,这个奖励是以补贴的形式,对每个通过cmm的企业都奖励30万元。

  700万是政府直接发给促进中心,由促进中心代政府用于企业、个人以及相关的活动。企业是北京市20家以上通过cmm的软件企业;个人主要是针对主任评估师的资助。对个人的补贴,主要是希望他们在通过后对国内企业做cmm时能降低成本,做主任评估师的费用在20多万,每人补贴在10万元左右,相当于国家资助50%。三是用于对软件企业的宣传、培训以及活动费用。如举办北京国际周的cmm论坛、cmm培训等。

  对咨询机构的认识

  对咨询机构,北京市采取完全市场化的办法。其实,培育cmm的大市场、大环境,就是对中介机构的最大支持。咨询公司要握住两头,一是国内企业,一是评估师。我们只能在国内客户这方面做好,尽量作桥梁,培养这方面的环境。据国内企业介绍说,这些中介机构到现在其实并没有挣到多少钱,费用主要用于国外专家。所以,如果国内有了自已的主任评估师,那费用肯定会降低很多。

  中介市场很大,不单限于cmm,还可以做质量管理,企业很小时,可能不太需要cmm这么庞大的系统,但还是需要管理上一些简单实用的方法,现在各行各业对中介的认识还不够充分,就像对律师,会计师的认识一样,都是经过十多年以后才意识到其必要性,才得到社会的承认,软件行业的质量管理,也需要这么一个认识过程。

  海外留学者创办的咨询公司都享有特殊优惠,而本土咨询公司对国内环境又比较熟悉,双方各有优势,希望能在竞争中优势互补,共同促进这一行业的发展。

  六、惩前毖后,治病救人—— ron为中国软件企业开10剂良药

  国内企业实施cmm所遇到的问题,既有个性,也有共性。在jbm公司的主持下,国内企业同ron面对面商讨具体的病症,也终于有机会一起寻找治病良药。

  问题1:开发人员不愿做cmm怎么办?
  ron:刚开始时开发人员不配合,这是一个很大、也很突出的问题,这关键是一种意识的培养,需要一定的时间。企业引入cmm时,开始找不到合适的人做质量控制,这种现象在各国都存在,也都一样的产生冲突。没有一个简单易行的解决方案。很多程序开发人员都认为做质量控制,不可能是一个职业生涯。在软件还不很成熟的国家,他们更看重的是技术,例如j2ee、java等技术培训,如果让他们花时间来做质量控制,就很容易引起他们的反对。
  但这种现象不可低估,因为实质上,它反映的是一种企业文化的变换。作为管理层,一定要重视,要不断强调这种工作的重要性。这是一个长期的工作,而且也是一个应当贯彻始终的事情。对于从事质量控制的人员,公司要加以重视,必要时应该给予额外的待遇。这在初期尤其重要。
  此外,还要多做些这方面的培训。如果有人反感此类培训,也可以换种方式进行,比如将培训改成“开会”、“聚会”、“沟通”等等。不要让他们产生强制性的反感。从高层到程序员,都要认识到cmm的重要性。
  再先进的东西同样需要一个逐渐接受的过程。开始时要找企业内部一些有积极性的员工或团队做试点,尽量避免直接在一些认识不够且意志坚定的“老顽固”员工或团队中引入cmm。等到那些有积极性和认识的员工将cmm应用进来,并收到明显效果时再考虑影响到那些反对者。再等到将质量控制的思想转变成企业文化的一部分时,即便再有新员工也很容易接受这种软件工程思想。  

 


版权所有:UML软件工程组织