GJB 5000A过程改进中需要关注的几个问题
2017-12-13童卫东
童卫东
(中国船舶重工集团公司 第七二三研究所,江苏扬州 225001)
GJB 5000A过程改进中需要关注的几个问题
童卫东
(中国船舶重工集团公司 第七二三研究所,江苏扬州 225001)
文章对GJB 5000A过程改进中几个需要关注的问题进行了研究,简要分析了问题存在的原因,提出了在实践成熟度二级改进过程中解决这些问题的方法。
GJB 5000A;成熟度认证;解决方法
0 引言
当前,软件研制能力成熟度认证工作在国内军工企业中如火如荼地开展,已有多家单位通过了GJB 5000A成熟度二级认证或三级认证,也有部分单位开始向四级成熟度等级努力。
软件研制能力成熟度认证已在国内开展多年,有不少软件企业通过了CMMI四级、五级认证。国内 GJB 5000A-2008是等同采用CMMI-V1.2软件部分形成的国家军用标准,它是一个能力框架,给出了不同成熟度等级的能力要求(特征),但并未给出达到这些能力要求的途径或指南,因此,每个实施单位要根据本单位的实际情况制定内部标准,以指导本组织的软件过程,使组织的能力成熟度达到目标等级。不同的单位有不同的做法,但通过调查发现,在二级成熟度改进过程中,有一些共性的或者容易被忽视的方面,容易在实施过程中给企业改进活动的组织实施带来困惑,甚至产生问题。
本文结合了GJB 5000A二级认证实践,对认证过程中容易出现的几个问题进行描述,并给出了初步解决方法。
1 有测量,无测量目标
测量与分析,是软件项目实施、组织过程改进的基础。通过测量与分析活动,可以监控项目的进度、成本、质量等,使项目进展“可视化”,促进项目成功。通过测量与分析,可以改进软件开发过程,节约开发成本,开发出高质量的软件产品。
在推进软件成熟度认证的过程中,发现许多单位或项目是为了测量而测量,罗列出一堆测量项,却不知道为什么要测量这些数据、如何利用测量得到的数据。说得严重点,是为了评价。不同的成熟度等级,有不同的管理特征和需要,相应的测量需求(测量目标)就不一样,测量项要紧扣测量的目标。GJB 5000A关于测量与分析的目的描述是:测量与分析的目的是开发和保持测量能力,以支持管理信息的需要[1]。也就是说,应该选择“适用于管理信息需要的”测量项。所谓“适用”,是指能够支撑测量目标的实现,并不是越多越好,超出需要的测量会增加人力成本,甚至会因为对测量数据的理解偏差而导致混乱。
项目管理的三要素是质量、进度、成本[2]。在成熟度二级,选择能监控这三个要素的测量项就可以达到项目的基本要求了。关于项目质量、过程质量的测量项一般有:缺陷数、缺陷分类比率、缺陷密度、不符合项数量、不符合项分类比率等;关于项目进度的测量项一般有:项目阶段进度偏差、项目进度偏差以及与进度偏差项相关联的工作量偏差等;关于成本的测量项有:项目工作量、工作量偏差等。
为了支持组织的过程改进,向更高的成熟度等级迈进,一般还应定义一些组织级测量项,以支撑组织过程改进计划的制定,并作为组织内软件项目策划的基本参数。基本的组织级测量项一般包括:组织的平均生产率、千行代码平均缺陷率、需求变更比率等。
2 对配置管理认识不到位,规程繁琐
配置管理的基本目的是,在合适的时候,管住需要控制的内容。配置管理不是管得越多越好、越细越好,重点是在需要受控的节点上管住应该受控的配置项。
配置管理的关键点是配置项识别、基线的建立与变更、产品库的建立。配置项的识别要做到不多也不少。而现在的情况是经常遗漏配置项,比如外部要求、协议、驱动程序、开发环境等。基线是后续开发的基础,产品库则是用于发布和交付的最终开发物,一定要从严控制。其它配置项,则要根据其重要程度,确定控制级别。一切从严的管理办法既难以操作,也毫无必要。
配置管理是与工程开发紧密结合的过程活动,是在GJB 5000A二级改进过程中最容易见到成效的过程活动。实际上,配置管理活动还可以在一定程度上起到项目监控的作用:配置管理人员“按图索骥”,按配置管理计划检查受控配置项以及数据,可以对项目的推进起到监控、促进作用。
3 体系建设要立足长远,不能只顾眼前
体系文件是组织过程改进的重要基础,是软件项目开发过程中遵循的内部标准,一套好的体系文件,不但要符合GJB 5000A要求,更要有利于项目的开发以及组织的软件过程改进。
从现状看,各军工单位直接与科研生产有关的体系主要有:质量管理体系、安全保密体系、安全生产与职业健康体系等。此外,还有档案管理、人事管理、财务管理等体系。这么多的体系要求,往往让身在其中的人无所适从。因此,新增加的软件过程改进体系一定要最大限度地与现有体系相适应,要“顺”。所谓“顺”,就是新体系要在已有的体系基础上进行细化和优化,对照GJB 5000A要求查漏补缺,而不是另起炉灶。
另外,大多数单位软件过程改进的目标一般不会停留在二级上,而是有着持续改进、逐级提升的要求,因此,在制定二级体系文件时,一定要兼顾未来升级的要求,不能升级一次,体系推倒重来一次。实际上,GJB 5000A标准中,三级的许多过程要求,在二级中已有描述,比如三级的“组织培训”过程域要求,在二级的公用实践“培训人员”中已有体现;三级的“风险管理”过程域要求,在二级的“项目策划”过程域的“SP2.2标识项目风险”和“项目监控”过程域的“SP1.3监督项目风险”中已有所要求。因此,在制定二级体系文件时,也要瞄准三级要求。可行的做法是在二级时指定一些与三级过程域关联的规程,到三级时进行扩充、细化,保证二级到三级的平稳过渡。“在二级生根,在三级发芽、成长”,是一种切实可行的做法。
4 没有技术提升,软件开发人员失去热情
GJB 5000A二级是要达到项目已策划、受管理、可控制。因此,二级过程改进的重点是管理。但从根本上来说,管理的提升是组织层面的目标,对于软件开发人员个体来说,技术的提升更是其兴趣所在。如果在二级过程改进时,仅仅是按标准要求,制订了一堆规程和表单,开发人员很可能把其视作约束,认为GJB 5000A徒然增加了许多工作量,对软件技术的提高和项目的开发无益,进而在推进过程中产生抵触情绪,降低改进效果。
从具体实践来看,试点项目顺次启动并拉开时间梯次、建立组织资源库,可以比较好的解决这一问题。第一个试点项目启动时,几乎全部EPG参与辅导,并全程参与技术类文档、管理类文档的编制、评审;第二个试点项目在第一个项目两个阶段后启动,全面参考第一个项目,EPG退出,但在阶段点进行重点监控,随时解决问题;从第一、第二个项目中选取比较完善的工作产品,纳入组织资源库;后续启动的项目利用组织资源库中的资源,实施就比较顺利了。
组织资源库建设,是GJB 5000A三级的要求,但在二级时建立,可以让各项目参加人员提前享受软件过程改进的成果,提高其参与改进的动力。
5 项目计划不合理
刚开始过程改进的组织,往往对工作量和风险估计不足,或者仅有感性上的认识,导致在制定计划以及WBS时,往往会认为所有的工作都已经考虑到了,所有的工作量都已经体现在WBS中,没有考虑到风险识别不到位、体系文件存在缺陷或培训不到位、在执行过程中会走很多弯路、增加较多的计划外工作量等情况,使得实际进度与计划存在较大偏差。因此,在试点阶段,项目计划应留有一定余量,防止过多的修改计划导致项目不能按期交付。
软件开发,“唯一不变的是变更”[3]。在软件开发过程中,最有可能出现的非计划任务是变更。大多数软件开发项目,都存在变更过程,比如因策划阶段与用户沟通不到位而引起的需求变更,其他如资源因素,需要推迟交付期的计划变更等等。那么,在分解WBS,或制定计划时,怎么考虑变更对计划的影响?
比较可行的方法是:在总的WBS中安排有可能发生的变更工作量(如估计工作量的10%),该工作量不分配到各阶段,但在项目的WBS中为其安排相应工期,计划变更时,就可以使用这部分的工期,但不影响项目最终的交付进度。当然,这个工作量也有可能不发生,在统计阶段工作量时,在哪个阶段发生的变更工作量,就统计在哪个阶段。这样做的另一个好处是:不在阶段预留变更工作量,能如实反映出每个阶段估计工作量和实际工作量的偏差,反映出估计人员进行项目估计应该注意的地方,这样可以为项目及后续项目开发积累数据,可在后续项目中参考此偏差,对每个阶段的工作量进行较为准确的估计。
6 培训不到位
在GJB 5000A二级认证过程中,许多单位因为培训不到位,带来了很多问题,如:各项目组对标准、过程体系的理解五花八门,导致执行的流程南辕北辙;即使制订了文档模板,项目组编制的软件文档也是“你说东,我说西”,条目类似,内容相去甚远;组织热衷于管理过程的宣贯以便获得认证,对具体的软件工程技术不太关心,导致项目组的开发水平提高不大,对过程改进失去兴趣,反过来阻碍成熟度提升。在实际的评价实践中,一般都会把“提高组织培训的有效性”作为一个待改进项。
为什么会有这样的问题呢?据分析,由于组织培训是成熟度三级的过程域,因此,许多单位在实施成熟度二级的过程改进时,不太重视培训,既没有在制度上予以保证,又没有采取有效实践,导致上述问题发生。
由此可以看出,实施GJB 5000A二级认证时,组织培训也是非常重要的方面,必须加以考虑。组织培训虽然是三级必须满足的过程域,但它对二级成熟度的达成具有至关重要的作用,在二级过程改进活动中必须给予足够重视。实施组织培训过程,对二级成熟度的达成能起到很好的保证、支持作用。为了规范化培训活动,可以在二级时就制定一个培训程序,指导单位和项目进行培训,提高体系执行的有效性和一致性。
7 结论
GJB 5000A认证牵涉到管理、支持、工程的多个方面,是一个规范化的过程改进活动,认证过程中必然会遇到各种各样的问题。总的来说,不应该以过级为目的,僵化地按成熟度等级来实施过程改进,而应该以实实在在地提升单位的软件工程化水平为目的。本文就实际实施过程中碰到的一些具体问题进行了探讨,并给出了一些解决措施,希望能对GJB 5000A二级认证征途上的同行有一些助益。
[1]GJB 5000A-2008.军用软件研制能力成熟度模型[S].2008.
[2]美国项目管理协会.项目管理知识体系指南[M].北京: 电子工业出版社, 2009.
[3]Roger S.Pressman著.软件工程实践者的研究方法[M].郑人杰, 马素霞, 白晓颖, 译.北京: 机械工业出版社, 2011.
Some Problems of Concern in Process Improvement of GJB 5000A
Tong Weidong
(No.723 Research Institute of CSIC, Jiangsu Yangzhou 225001, China)
The paper studies the problems of concern in the process improvement of GJB 5000A.It analyzes the causation of the problems and puts forward the way to resolve the problems in the practice of the secondary maturity improvement.
GJB 5000A; maturity certification; solution
C936
A
10.14141/j.31-1981.2017.01.002
童卫东(1969—),男,高级工程师,研究方向:软件开发及软件工程化管理。