UML软件工程组织

CMM软件过程改进前( 4)
来源:sepp中心
Q:根据我们对于cmm初步的了解,我们认为已经基本达到了2级的要求,可不可以直接从3级开始实施?


A:对于绝大多数从未做过软件过程改进的企业来说,这个问题的答案是否定的。很多企业的高级管理人员常常觉得cmm 2级根本不值得一提,在实施的时候完全可以忽略不计,一上来就直接考虑三级。这通常有两种原因,一是还没真正了解cmm 2级核心的要求。他们觉得项目管理不就是做做计划、定期开开会什么的;配置管理不就是版本控制嘛;质量保证?简单,找几个测试人员就齐了;需求管理就更不在话下了,我们公司哪个项目没有需求调研?哪个项目没有需求文档?至于说子合同管理,我们公司没这回事儿,不用做了……就这样,二级自然不在话下,三级还有点意思。可其实呢, cmm对于软件过程要求得很细,我还从来没有看到过一家公司的软件开发和管理流程一开始就和cmm的要求十分吻合。另外一个原因就是,这样的企业根本就没有通过量化的手段进行真正意义上的管理,很多项目的实际情况作为公司的高层实际上是完全不了解的,而这样的企业恰恰应该从cmm 2级认真做起。因此cmm 2级的6个关键过程区域都是为基本的项目管理提供一个基础,特别是建立起初步的度量体系,从而进行量化的项目管理,这对于建立高级别的关键过程区域非常有用,如果跳过cmm 2级直接去做3级,就会像地基没有打好就盖房子一样。


关于资源投入


Q:按照cmm 2级的要求,我们需要配备什么样的人员和岗位?


A:对于人员方面,一般包括以下几个方面:


★ 软件工程过程组(SEPG): 这个小组是按照cmm 3级的“组织过程焦点(OPF)”这个关键过程区域要求设置的,它专门负责一个组织中软件过程改进方面的组织协调工作。对于一个希望实施以cmm为基础的过程改进的企业来说,在向二级演进的过程中建立这样一个小组是一个非常有效的办法。通常这个小组应该由部分全职和部分兼职的人员组成,全职人员的数量一般占到实施cmm的整个组织人数的2~3%,兼职人员数量不限。SEPG成员应该能够在组织中比较有威望,沟通技能、谈判技能、协调能力比较出众,同时能有较丰富的软件工程方面的背景。SEPG对于过程改进工作可以和其它软件项目一样被看成一个专项小组。


★ 软件质量保证组(SQA):软件质量保证是cmm 2级的一个关键过程区域,cmm要求SQA组应该有独立于项目组的向高层经理汇报的渠道。如果企业过去从来没有SQA职能的人员,那么就需要建立SQA。SQA人数上根据试点项目的数量、规模决定。一般来说,10个开发人员左右的项目最好有一个专职的SQA。SQA可由项目组成员兼职,但我个人并不推荐这种做法。这是因为cmm明确要求SQA要有向高层经理直接汇报的渠道,在出现项目组无法解决的问题时及时向高层反映并寻求解决。如果SQA由项目组成员担任,很可能会失去这种独立汇报的机制,也可能失去客观性。SQA人员也可以来自SEPG,特别是对于过去没有这方面人员的企业,可以通过一段时间的学习并且参与制定相关过程来培养SQA,这样的人员成为SQA后,他们对过程的理解比较深,而且在开始的时候可以协助项目组做一些管理方面的工作,起到培训和示范的作用,很多企业这样做了以后,效果非常好。还有,应该注意的是要充分考虑人力资源的充足性,这也是cmm的要求之一。


★ 软件配置管理(SCM):和SQA一样,SCM也是cmm 2级中的一个关键过程区域,但SCM可以由项目组成员兼职担当。当然,如果能够有一个组织级的配置管理小组专门负责组织中所有的配置管理工作,效果可能会更好。


★ 项目管理:对于任何一个知道如何到位地管理项目的项目经理来说,cmm 2级要求没增加任何额外工作量,但对那些更像是“技术带头人”角色的项目经理来说,增加的工作量还是很大的,特别是大量的管理文档。通常,项目管理的工作量约为整个项目技术活动总体工作量的20%左右。也就是说,一个由5个开发人员组成的项目组中,应有一个专职的项目经理。对于初期管理很不规范的企业,项目经理必须要去适应新的习惯,形成大量文档,如果形成的文档要保证质量,项目经理真正掌握过程中要求使用的方法,那么管理方面的工作量可能会占这个人总工作量的将近一半。


★ 其他相关人员:cmm对于除了项目经理外的一些管理人员做出了要求,但主要是参加一些评审会、通过统计数据进行一些分析方面的工作,额外需要增加的资源投入基本可以忽略不计。对于具体的开发人员,需要严格按照规定的流程去做事,并要留下一定的证据(文档),以便为组织的过程体系和度量体系提供第一手的信息。如果开发人员有良好的工作习惯的话,这部分的工作量增加不算很多,约为原有工作量的5%左右。


Q:我们需要投入多少资源来进行过程改进以便达到cmm 2级的要求?


A:在这里,我们主要从以下几个方面考虑资源的配备:时间、人员和设备工具。对于时间资源,请参照上期的答案。对于人力资源,请参照上文。对于设备工具来说,除了Office和电子邮件工具外,基本上不需要什么其他的工具。但是如果能够使用一个比较完善的配置管理工具,而不仅仅采用操作系统文件目录的方式进行配置管理,配置管理过程相关的工作量减少会比较明显。其他的工具,像问题管理工具、某些流程的管理工具、任务安排、项目管理工具等,在初期实施过程改进时,最好都不要使用,因为在过程未得到完善定义前,使用工具只可能使过程的使用更加混乱。如果过程已经定义好,并且在组织中得到了较广泛的应用,使用一些问题报告工具、项目管理工具会提高工作效率。


另外,对于SEPG工作来说,必要的活动经费是不能忽视的。因为SEPG要学习、研究、宣传过程改进,如果活动经费不够,对他们的工作会有很大影响的。

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