实施5000能提高软件质量吗?

自2003年,GJB5000颁布以来,GJB5000在军工单位推进已经18个年头了。这些年来,不仅对GJB5000如何实施和评价有过争论,而且对实施GJB5000的效果也有过质疑。

那么,实施GJB5000能够提高军用软件质量吗?

这个答案是肯定的。

  • 模型出世破危局

首先,我们想想GJB5000为什么会出世,国家为什么要不遗余力地推行GJB5000。

早在20世纪60年代末,美国国防部的军用软件出现了危机:国防部支付了大笔预算的软件采购项目,迟迟不能交付;或者即使交付了,也会出现这样或那样的问题。这不仅是软件交付的时间推迟,同时也会使得美军的作战能力大打折扣。

美国国防部为了解决软件问题,面向社会征求解决办法。最终由卡内基梅隆大学软件工程研究所(SEI)提出的一套理论解决了美国国防部的软件问题。这套理论就是CMM(Capability Maturity Model),是SEI聚集了学术界、研究界和工业界的代表,在其各自实践的基础上进行总结和提升,形成了被证明行之有效的方法。

CMM的横空出世,使得软件危机得到一定程度的缓解。可是,很多软件项目并不是纯软件,还涉及到硬件,CMM的一些优秀实践对于非纯软件的情况并不那么适应。所以,SEI又制定了系统工程CMM,集成产品开发CMM,最终合并成CMMI(Capability Maturity Model Integration)。CMMI更适合那些含软件的装备研制的场景,它继续在装备软件的质量控制中发挥巨大作用。

我国的军用软件研制也存在类似的问题。所以,随着CMM的迅猛发展及其所起到的成效,我们国内也开始引进CMM和CMMI,形成GJB5000和GJB5000A标准。引进CMM,推进GJB5000,就是因为这个标准是软件业界优秀实践的集大成者,应用这些优秀实践能够解决软件迟迟不能交付的问题,能够解决各种软件质量问题。

这就是我们推行GJB5000的原因。

  • 个中原理很清晰

实施GJB5000可以提高软件的质量,其实其中的道理是很清楚的。

  1. 无序到有序

实施GJB5000,建立并维护一套基于GJB5000的软件过程管理体系,依据这个体系来管理软件开发过程,这使得软件开发从混乱无序的状态转变成有计划,有监督,可管理的有序的状态,软件项目严重滞后的现象大有改善。

  1. 个人到集体

实施GJB5000之前,软件开发更多的该软件负责人的个人行为,软件质量如何,只有软件加入到系统联试的时候才被外人所知。实施GJB5000之后,软件开发会集中更多人的智慧,有QA对工作产品进行审查,有同行专家对工作产品进行评审,有配置管理员对工作产品版本进行控制,有专业的测试人员对软件进行测试,这些使得软件的质量更早地被人所知,及时得到改善。

  1. 优秀实践集

GJB5000本身就是软件业界优秀实践的集合。实施GJB5000,就相当于我们的军用软件开发的相关方站在了巨人的肩膀之上。我们可以直接应用这些优秀实践,也可以触类旁通,在这些优秀实践的基础之上形成更适合自己实情的本地化的优秀实践。这些优秀实践注定会帮助我们更好地完成软件开发工作。

  1. 过程看得见

GJB5000将软件开发过程划分为过程管理类、项目管理类、工程类和支持类这4个大类,20多个过程,将软件开发的组织、改进、开发、管理等活动分门别类描述的清清楚楚、明明白白。通过对这些过程的管理,使得软件开发的过程不再是一团混沌,而是“可见”、可控的。

  1. 优化可持续

与其他的管理体系一样,GJB5000也是支持持续改进的。我们可以通过内部评估和外部评价来找出体系中的薄弱环节,也可以通过引入其他组织的优秀实践,业界的成果,新的技术和工具来不断地优化软件过程管理体系,使之更适合我们的实际,更好地为软件开发服务。

(未完待续)


作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。
(0)

相关推荐