CMM: 把程序员变成蓝领 - 技术前沿 - 兰健

(这条文章已经被阅读了 168 次) 时间:2001-05-29 14:24:31 来源:兰健 (河马兰兰) 转载

CMM强调过程控制,文档先行。而谁都知道,不管什么样的生产一旦实现了“过程标准化”,其情形就与《摩登时代》里展现的那种流水线相类似了。

早几年就有程序员是坐办公室的蓝领的说法,印度则叫软件工人。但说归说,圈里人其实并不认。昔日编码英雄的余辉尚存,突然间把“编码”与“工人”联起来叫未免有些残酷;程序员们的求伯君梦也无可厚非,何况技术尖子永远缺乏也永远有自傲的理由。更重要的还在于,我们不少软件企业的生产依然是手工作坊式的,每位师傅(技术骨干)都有自己的套路,别人很难接手。于是便出现了一个项目离了某某人便玩不转的情形,他们一甩手能把老板急死,岂有认可“蓝领”的道理?

但今后的情形势必有所不同,原因之一是一个叫CMM的管理模式正快速渗透到国内软件业。刚刚结束的第三届中关村电脑节不见得比往年热闹,其中的“CMM与中国软件产业发展国际论坛”却颇受关注,吸引了不少国内外腕级人物。一位与会专家告诉记者,不管你情愿不情愿,CMM的推行都会加快程序员蓝领化的步子。他同时认为,这对中国软件业是件大好事,长远看对程序员个人也不是坏事。

CMM,即“软件能力成熟度模型”(Capability Maturity Model for Software),由美国卡内基-梅隆大学的软件工程研究院(SEI)于1987年推出,先是用于美国和北美地区,随后被欧洲和亚洲越来越多的信息技术企业所采纳。CMM最初是为满足美国联邦政府评估软件供应商能力而设计的,目前已成为国际上最流行的软件企业成熟度等级认证标准。如今的行情是,一家软件企业如果不能通过相应等级(共分5级)的CMM评估,你的产品就少了一张进入国际市场的通行证,外商也很可能会因此打消把软件承包给你的念头。与推行了多年的ISO标准系列相比,CMM更为软件产业所看好。因为它是专门针对软件工程控制而设置的,不仅进行软件企业工程能力的评估,更致力于软件开发过程的管理,强调“对软件开发过程进行持续改进”,引导软件开发过程走向成熟。

有着10年软件开发经历的龚杰女士介绍说,CMM强调过程控制,文档先行,用严格统一的文档实现对软件生产过程的标准化控制。而谁都知道,不管什么样的生产一旦实现了“过程标准化”,其情形就与《摩登时代》里展现的那种流水线相类似了。当然,今天站在软件流水线边上的程序员与卓别林扮演的那个角色不好简单类比,但你确实很难再把他们看作求伯君那样的个人编码英雄了。程序员们其实也是在软件工厂里拧螺丝钉,虽不乏个人创造性却必须遵守统一的规范。

不言而喻,这其实就是我们喊了多年的软件产业化。北京市科委副主任俞慈声说,我们的软件业不缺创新能力,也不缺创业的激情,缺的是基于市场的社会化组织,中国与印度、爱尔兰软件行业的差距可能主要不是人才技术,而是标准。CMM的推行将有助于我们迈出这艰难的一步。它把软件开发分为18个过程域(KPA)、52个目标和300多个关键实践,详细描述第一步做什么,第二步做什么,对每个过程进行标准化控制,并通过严格编写文档等措施使“过程”达到了标准化。

软件产业化在提升了软件开发的组织度、透明度、进度和可预测性的同时,也程度不同地抹煞了个人的力量。过去你这个程序员走了,软件开发就无法进行了。现在有了严格的过程控制和标准文档,开发过程透明化了,一个人不干了,另一个人只要看看文档和标准就能接过来照样干。印度的软件工人只相当于职高的毕业生,打开他们写的某一个程序模块,会感觉里面的东西很乱,写得不漂亮,还有不少多余的东西,但整体功能却不错,速度也很快。这就是产业化的力量,它强调的是软件的整体架构和各模块间的衔接,而不是个人随意性的挥洒。印度是美国之外通过CMM最多的国家,据说印度的程序员加入一个公司很长时间,可能都不知道自己整天编的代码是干什么用的。

北京软件行业协会常务副理事长殷志鹤对推行CMM想得更远:中国的软件开发现在还处于小作坊阶段,美国则已进入半自动化阶段,并正向自动化阶段迈进。软件开发的自动化将提供一种全新的模式,一旦成熟,软件将会采用流水线模块的构件方式生产出来,一个程序员会顶10个用。到那时我们人力资源充足的优势也有可能丧失,现在美国还来中国挖人,那个时候恐怕就不来了。我们应该赶在这个阶段到来之前把我们的产业搞上去,占领市场。而CMM提供了一条走向软件开发自动化的有效途径。