PDF下载
软件能力成熟度模型实践研究

赵立怡 郑海燕 李思奕

中航西安飞机工业集团股份有限公司

摘要: 本文针对中小型企业软件开发项目实施的特点和背景,探索基于GJB5000B模型在体系推进实施过程中存在的难点,提出了对GJB5000B进行本地化裁剪,同时,引入软件敏捷开发过程,形成基于敏捷开发的GJB5000B软件开发模型,提升软件开发效率。
关键词: GJB5000B;多体系融合;过程改进
DOI:10.12721/ccn.2024.157058
基金资助:
文章地址:

1 引言

随着武器装备的信息化和数字化程度越来越高,软件在高新武器系统中的核心地位和灵魂作用越来越大。近年来,各级装备主管部门非常重视软件研制工作,为了有效提高军用软件研制质量,先后颁发了一系列软件研制工作规定,要求研制单位必须深入贯彻软件工程思想,开展软件研制能力成熟度模型(GJB5000B-2021)体系构建和认证评价,全面提升软件研制能力,确保软件产品的质量。 

因此,开展软件研制能力成熟度模型(GJB5000B-2021)体系构建和认证评价工作,是形势所迫、大势所趋,也是产品转型和企业生存的需要。然而,GJB5000A的实践经验证明,在人员只有15人,甚至更少的小型软件企业中,实施庞大的GJB5000B体系模型存在难以全面适应的困难。利用该模型进行软件过程改进,效果不尽人意。但这并不意味着GJB5000B的过程改进只是那些拥有大量资本的大型软件开发组织的特权,我们要考虑小型软件项目团队人员较少、行动灵活、反应快速和具有良好沟通能力的优点,所以能够容易推行持续改进,正视自己开发资源不足的现实,采用合适的软件开发方式,使其适应软件开发团队(小型软件开发企业、项目)的实际情况。

2 软件研制成熟度模型推进难点

在小型软件开发企业GJB5000B推广的过程中,存在推进难点如下:

1)GJB5000B体系庞大繁杂,中小型企业照搬标准,未与公司研制实际进行本地化,使得实施庞大的GJB5000B体系模型存在难以全面适应的困难;

2)项目管理成本增加,软件工作产品质量改善不明显。大量的文档,繁重精细的任务分工,大量的人员角色,频繁的培训、评审、会议等一系列问题,严重浪费为数不多开发人员的时间精力,同时,大量的文档,冗余的管理、重复的培训也淹没了软件过程改进的本质;

3)硬件研制思维意识根深蒂固,当前,公司软件产品随硬件交付,按照传统的硬件开发模式主导软件研制工作,软件开发模型概念意识不强。同时,GJB5000B推进效果未在项目实施层面产生正面积极影响,导致GJB5000B推广难度较大,“两张皮”现象严重。

3 软件研制过程管理体系推进措施探索

为了使GJB5000B在中小型企业中顺利推广,达到预期的目标,将GJB5000B推广难点与单位实际相结合,探索体系裁剪、转化,多体系融合等模式,实现体系文件本地化。

3.1  GJB5000B-2008模型优化裁剪

GJB5000B裁剪过程的目的在于考虑小型软件开发组织的特点,对GJB5000B模型中的文档、管理、评审和培训等部分实践进行优化裁剪。

3.1.1  文档裁剪

  GJB5000B模型中含有大量的战略、计划、标准、规程、报告和表格等文档。以当前的实践经验来看,如果严格按照GJB5000B实践执行,会导致资源被大量文档所淹没,从而丧失对过程改进的本质把握。所以,我们采用合并或扩充文档的策略,减少因生成文档所带来的负担。XXX软件部分裁剪前总页数为226页,裁剪后文档为140页,节约了38%的工作量。通过文档裁剪合并,避免了大量的重复、无用文档消耗的组织资源,掩盖过程改进实施的本质。

3.1.2  管理裁剪

GJB5000B模型中有非常详细的分工,涉及的角色非常多,但是对于人力资源有限的中小型企业,根本无法对这么多管理任务进行分工。鉴于当前企业实际与GJB5000B的管理结构的要求有很大的差距,因此在实际运行中,对管理角色和管理活动进行适当的裁剪,并遵循以下原则:

1)对关键过程域和管理任务进行分析,整合高层管理冗余现象,由单个负责人行使相关管理职责;

2)合并管理任务,由技术人员或管理人员负责能够担当的工作任务,而不需要单独设置相关负责人职务。

3.1.3  评审裁剪

GJB5000B实践中涉及很多类型的评审活动,所有项目中的关键文档、关键决策及活动几乎都需要进行评审,以建立公共基线。对于小型软件开发企业,如果严格按照GJB5000B模型,实施所有的评审活动,那么评审花费的时间会严重影响开发时间。因此,在保证软件质量的前提下,利用敏捷开发思维,充分利用小型软件项目组内成员交流方便的优势,评审非正式化,组内日常能够解决大概50%的问题,评审会只针对组内不确定问题进行研究讨论,同时,QA审核时对重要产品进行抽查审核,大幅度缩短研发时间。

3.1.4  培训裁剪

GJB5000B模型中,无论是管理还是技术方面都包括很多不同种类的培训,不仅耗费开发人员大量时间精力,而且浪费公司资金。在GJB5000B的培训程序关键过程域中,实际上是允许企业的非全员培训。在实际项目培训裁剪中,应遵循如下原则:(a)具有相关实践或类型领域培训历史的员工可以免除培训;(b)扩展培训实践,消除不必要的内部培训;(c)合并相关活动培训。通过培训的延伸,节约大量的时间和资金成本。

3.2  基于GJB5000B的软件敏捷开发

结合当前GJB5000B实施面临的诸多弊端,将以快速迭代开发为主要特征的敏捷开发与GJB5000B模型融合,实现规范化开发的同时快速响应需求变化,持续强化快速开发的能力,因此,敏捷开发以人为核心、迭代、循序渐进的思维方式可以解决GJB5000B存在的模型冗余、效率低下的问题,提升软件开发效率。

在敏捷开发中,将软件项目分解为若干可以独立实施的子项目,各子项目具备较大的自主性,分别进行测试、集成。确保软件开发团队在GJB5000B框架下能够快速响应,不断创新,持续交付价值。

4  结语

相比于改进前的GJB5000B应用模型,改进后的模型充分考虑了小型软件开发组织的特点,对GJB5000B模型中的文档、管理、评审、资源和培训等无关实践进行优化裁剪,引入敏捷模型至GJB5000B框架,大幅度提高了实施效率,缩短研发周期,减少无关实践的浪费,节约人力成本和资金。

5 引用文件

[1]  Paul E McMahon.CMMI+敏捷整合开发:更快改进性能的案例与实用技术[M].北京: 清华大学出版社,2012

[2]  GJB5000B  软件研制能力成熟度模型[M].北京: 总装备部军标出版发行部,2008.

[3]  朱卫平.基于CMMI的国内中小型软件企业软件过程改进研究[D].长沙: 中南大学,2006.