魏钜熔
(江西联创精密机电有限公司 江西省南昌市 330096)
软件是信息化装备的重要组成部分,信息化装备对软件的功能和性能等要求正在逐步增加,对装备软件化的程度要求也在不断提升,软件的规模和复杂度日渐提高,软件的重要性日益凸显,软件质量严重影响信息化装备的质量。因此加强软件质量管理已经迫在眉睫,而软件研制过程质量控制作为软件质量管理的重要阶段,加强软件研制过程的质量控制的重要性尤为突出。
当前,基于GJB5000A-2008《军用软件研制能力成熟度模型》标准的军用软件研制能力评价工作,正在各类军工单位中如火如荼地开展,已有不少单位通过了二级或三级评价,也有部分单位正在试点四级的管理。不论是二级评价还是三级评价,在试点实施过程中,或多或少有一些共性的或容易被忽视的方面,将会对缺乏实施经验的软件过程改进组织带来困惑甚至产生问题。
GJB5000A 将组织软件研制能力成熟度分为五个等级[1],其中1 级(或ML1)称为初始级,2 级(或ML2)称为已管理级,3 级(或ML3)称为已定义级,4 级(或ML4)为已定量管理级,5 级(或ML5)称为优化级,如图1 所示。
GJB5000A 二级(已管理级)包括需求管理(ReqM)、项目策划(PP)、项目监控(PMC)、配置管理(CM)、测量与分析(MA)、过程和产品质量保证(PPQA)、供方协议管理(SAM)共7 个过程域[1]。
(1)需求管理(ReqM):二级中唯一的工程类过程域,是针对工程活动、面向产品的要求。主要活动包括需求提供者和接收者一起对需求进行分析、讨论,按照相应准则对需求含义达成共识;需求基线必须纳入配置管理,并得到控制和维护;同时,建立需求和其他工作产品的双向可追溯性,正向跟踪确保需求没有遗漏、反向跟踪确保需求没有多余,需求变更没有遗漏,总结为“不多不少、变更不落”。
(2)项目策划(PP):是在软件项目启动后,对项目进行科学合理的策划,制定项目计划,是软件项目管理的一个重要过程。主要活动包括确定软件生命周期模型、建立工作分解结构(WBS)、进行软件项目估计、估计软件项目工作量及估算项目资源等。同时,对可能存在的风险进行分析和识别,并按优先级排序。以此制定详细的软件项目计划,作为项目监控的依据。
(3)项目监控(PMC):是在项目计划制定后,按照项目计划定期监督实际绩效和进展。主要包括项目过程数据的日常收集、项目执行情况的定期监督、项目任务活动的再细化和调整,纠正措施的跟踪管理以及风险跟踪等活动。当实际绩效和结果显著偏离计划时,需纳入软件问题跟踪表,对软件问题进行分析和处理,直至结束。
图1:军用软件研制能力成熟度的五个等级
(4)配置管理(CM):是软件技术状态管理过程,主要活动包括建立配置库结构及规定访问权限;标识、建立配置项和基线,控制对配置项、基线的变更及维护维护基线完整性等。首先是建立配置库包括开发库、受控库和产品库,并按要求对“三库”实行管理;其次是基线的建立、管理和维护过程,含标识配置项,在不同阶段建立和发布基线并将基线纳入受控库中进行管理,建立配置管理记录、执行配置审核、维护基线的完整性并对配置项和基线进行跟踪和更改控制。
(5)测量与分析(MA):是对软件项目管理和技术活动中产生的数据进行测量和分析,提供管理决策以支持管理和技术活动的改进。根据组织的方针,制定项目测量目标,明确测量项的采集时机、分析时机、报告时机和存储规程等,明确如何对测量数据进行分析和报告。测量分析结果在相应节点与利益相关方进行交流。
(6)过程和产品质量保证活动(PPQA):贯穿整个软件生命周期,客观评价是质量保证活动的准则,其要求客观地评价所实施的过程活动、工作产品对适用的过程要求、标准和规程的符合性。软件质量师(QA)根据质量保证计划对所实施的过程活动及形成的文档、源代码等工作产品进行审核并保存相关记录。同时,质量保证组组长对QA 工作进行审核。
(7)供方协议管理(SAM):是约束、管理和控制供方产品及过程的活动。与GJB9000 标准的供方管理相类似,评价供方的能力,选择供方,通过与供方建立协议,明确获取产品的方式,执行供方协议,监督供方的过程,评价供方提供的产品并接收产品。
综述:目的是确保软件项目的过程得到策划和执行,以此来监督、控制软件项目研制进度,使软件研制过程具体化、可视化、精细化,解决软件开发的抽象性、不可控性等问题[2]。
3.1.1 领导“真重视”
软件过程改进是一个系统工程,是跨部门的组织活动,有其特有的软件工程要求和管理特点。首次建立软件过程改进组织、试点实施软件工程化体系,在组织体系上需要一个有力的领导来组织,并将一定的压力向各个业务部门传导才能够保证有效落实。
在软件过程改进实施过程中会占据大量人力、物力等资源,有时可能会出现与型号项目相冲突,不能完全保证人员和资源到位。在试点实施初期,由于实施人员对标准和体系的理解不透彻,许多工作达不到要求会返工重做,工作效率甚至会降低等一系列问题。如果高层领导不重视、认识不到位,则资源和监管等都得不到保证,这就使体系推进缓慢,甚至无法运行步履维艰;如果高层领导思想观念不转变、仍以GJB9000 质量管理体系要求推进工作,做的不够细致、不够充分,软件过程改进工作也将屡屡碰壁。
3.1.2 一线有“明白人”
实施中需要有一定的软件工程和项目经验的人员作为EPG 成员,即一线要有“明白人”,否则,软件工程体系文件将频繁修改,项目实施经常性返工和重做。在试点实施初期,烦琐的过程控制要求会降低软件研发效率,体系的不确定性会引起项目组的抵触情绪和行为,阻碍软件过程改进实施。
如果组织内有“明白人”,过程实施工作将事半功倍,否则实施工作难度将加大、周期变长,且实施效果可能不尽人意。“明白人”的要求最好是具备以下全部或部分能力:一是熟悉软件相关的国军标(如GJB2786A、GJB438B、GJB5000A 等)、熟悉调整后的评价流程;二是具有一定的软件工程化知识、最好是编写过相关的军用软件文档、熟悉行业内软件研制程序及所用的开发模型;三是熟悉企业内部组织结构、深得领导和同事的信任;四是要有较高的情商、沟通表达能力较好,有一定的号召力;五是对软件工程化有兴趣,能坚持、有耐心、不怕繁琐。
3.1.3 充分的资源保障
软件过程改进涉及研发、质量、管理等多个部门,在人员安排和跨部门协调有时会存在一些困难,特别是中小军工单位,在人手不够、项目较多情况下会面临项目叠加和人员工作冲突等矛盾。此时更需要公司领导和部门主管的鼎力支持,合理规划,并提供人员、物力和财力等各类资源保障。特别是财力保障,因为绩效激励是有效的润滑剂,可促使项目组成员在烦琐的事务中持续地工作。
项目实施期间会产生大量的管理文件和记录,同时需收集各类信息和数据,人工采集和编制会占用大量时间、耗费大量精力,而且数据会出错甚至可能错漏百出,建议选择适宜的项目管理工具或辅助研发工具进行文件和记录等证据的管理,这样可以减轻实施人员的工作量,也可降低数据的错误,提升工作效率。
实施GJB5000A 二级过程中难免存在问题和疑惑,主要体现在对军标理解不透彻、体系理解不到位、项目实施不彻底等三个方面。但通过共同努力实践,所有问题均会得到有效解决。
3.2.1 军标理解不透彻
GJB5000A 标准不好理解,很难读懂。GJB5000A 来源于CMMI 并略有删减,为了更好地理解军标,可以从软件工程化角度思考软件研制过程。从某个角度来描述如何更好地将软件开发和维护进行过程监控和研究,将软件开发的抽象性、不可见与不可控等变得具体、可见与可控,使软件过程得到清晰的定义、管理、测量、控制和有效。将软件研制能力分级,每级含一定数量的过程域,每个过程域中具有一定的目标,以及为了达到这些目标必须要做到的行动步骤,即最佳实践。为了更好地理解军标,建议多看、多思考、多总结,参加新时代认证中心组织的学习班,在体系运行过程中再回头看。同时,也可加强与同行专家的交流,多向专家请教、不耻下问。
3.2.2 体系理解不到位
体系文件是软件过程改进的约束性文件,是项目实施的根本依据。体系文件依据国军标编制,是结合本单位的项目特点和软件管理情况的本地化文件,所以不能图快图省事,从其他单位或咨询公司拿来就用。但可通过调研学习其它单位在实施GJB5000A 二级过程中积累的经验和注意事项,找出本单位在软件工程化方面的薄弱环节和差距,并提出改进建议,以此构建本单位的软件工程体系。在构建体系文件时期,研发、质量、管理、测试等各类人员充分沟通多交流,确定初版后,找一两个试点项目运行找出其中的问题,以确定基本可行的版本。
体系文件的理解不会一蹴而就,是一个循序渐进的过程。在此次期间可以针对性地增加体系文件的培训、学习交流讨论会等活动。另外也存在体系文件描述不够清晰、详尽,造成项目组对体系文件理解不够透彻、不到位,而且相同问题会在不同项目组中反复发生。这就需要加强体系文件培训,先系统层面后按过程域或按角色开展。
3.2.3 项目实施不彻底
项目实施不彻底的原因就来自上述两类情况,特别会表现在之前接触较少的方面,如测量与分析和配置管理过程域。测量与分析中测量项不准确、有遗漏,测量采集时机、分析方法不完整等。测量项是项目监控的数据来源,测量项若有遗漏如项目平均生产率、不符合项分布等,会失去测量和监控的意义,无法支撑和促进后续的改进。在选择测量项时需结合组织特点,测量数据要有一定的意义,统计和促进哪个方面的改进和完善。
配置管理是控制软件技术状态的过程,若配置控制出现问题,则整个研制过程和软件状态会出现不可控情况,所以配置控制显得尤为重要。在实施中出现过“三库”职责和权限不清晰,出入受控库和产品库时机不明确等常见问题,在仔细研究相关国军标或咨询同行专家的情况下,结合GJB9000 质量体系中对软件“三库”及配置管理的要求进行融合,制定确实可行的配置管理程序。
GJB 5000A 二级实施过程中会遇到各种各样的困难和问题,但通过反复实践所有困难和问题终会迎刃而解,试点前的疑虑和困扰将云散月明、拨云见日。且在实施之初不能以过级为目的,而应该是实实在在地想提升软件工程化水平为目标,那么在评价通过后也不会出现“两张皮”的现象。本文就实践过程中遇到的问题和过程情况进行了总结,概述了GJB5000A 二级各过程域主要活动内容、实施要点,常见问题与处理措施,希望对中小军工企业在软件过程改进实施过程中有一定的提示和参考作用,尽量少走弯路。