实施5000能提高软件质量吗?(续)
却又缘何遭质疑
某个具备GJB5000三级资质的单位,在参加大型试验的时候,软件不断暴露问题,软件的质量水平甚至不如一些GJB5000二级资质的单位。
那么,这是不是代表GJB5000这套标准根本不好用,不能有效的提高软件质量呢?
在我们给出这套标准好用或不好用的结论之前,我们首先应该审视一下组织有没有真正理解GJB5000的内涵,会不会使用GJB5000标准,给这套标准提供落地、生根、成长的环境。
很多组织虽然具备了GJB5000资质,但是并没有对基于GJB5000标准的软件过程管理体系足够重视。具备资质万事休,通过了正评,具备了资质,就把这套体系弃之一边,软件开发依然我行我素的组织大有人在。
在这样的组织环境之下,组织的管理经常会对软件过程管理体系进行各种选择性遗忘。
建立制度时的选择性遗忘
组织在建立质量管理制度时大多是以iso9000为基本框架。在组织的质量体系中会要求各个专业都要对其研发过程给出详细的质量要求。但是,对于软件研发过程的质量要求,经常被遗忘。如果没有成立软件专业室,那么讨论质量管理制度时就根本没有软件发声的机会;即使有了软件专业室,有人为软件发声,但是,由于软件在领导眼里的重视程度,他的发声也常常被忽略。
设立岗位时的选择性遗忘
在《软件工程最佳实践》一书中,曾经罗列了115种软件专家的岗位,但同时它也指出了在现实当中很多组织都只会给软件专业设定通用的职位,比如“技术人员”、“工程师”之类,软件的专业岗位几乎没有。像软件项目经理、软件质量保证人员、软件配置管理人员……这些管理岗位,在组织当中从来不可见。同样的,像软件系统分析师、软件架构设计师……这样的技术岗位,也同样不可见。这些岗位的缺失,使得软件过程管理体系的一些要求,就难以落到实处。
质量监督时的选择性遗忘
由于在建立质量管理制度的时候就选择性遗忘了软件,所以在进行质量监督的时候,软件也同样会被选择性遗忘。比如,在一些项目的阶段总结会上,会进行组件级别的研制总结的审查,但很少会对软件的研制总结进行专业的审查;在一些项目的出厂质量评审会上,也同样的只关注组件的技术状态和质量问题,很少会关注软件。即使要求软件技术人员到场,也不会给他什么表现的机会。
专业发展的选择性遗忘
那些领导重视的专业,它的专业发展,领导也会关心。比如,争取一些国家级资助的科研项目,参加一些国内国际顶尖的学术交流等等,不用这些专业的技术人员自己去想,领导都会先给考虑到了。
但是对于不被重视的软件来说,在专业发展上,领导是不会多加考虑的,这其中包括资源的配置,人才的培养。比如,软件专业要配置一些先进的开发、测试工具,想要获得领导审批通过,那是千难万难;要实施软件工程,需要设计、编码、测试分开,要有从事管理工作的人员,要有专业的测试人员,要摆脱以往那种一个人干几个软件的情况,需要引进大量的软件专业人员,这也得不到领导的支持。
所以,GJB5000没有提高软件质量,并不是标准自身的问题,而是使用标准的人的问题。
我辈仍需多努力
要通过实施GJB5000提高软件质量水平,并不是只靠空想就能实现的,而是脚踏实地,不断努力干出来的。
领导重视
基于GJB5000的软件过程管理体系,和基于GJB9001的质量管理体系一样,都是一把手工程。没有领导的重视,管理体系根本发挥不了作用。
领导重视,不是口头上支持,要人给人,要钱给钱,而是要了解体系对组织的意义,要关注体系的运行情况,要指导体系对产品质量产生积极的促进作用。领导不能因为软件只是型号系统中的一个很小的组成部分,就不像关注质量管理体系那样关注软件过程管理体系。实际上,软件过程管理体系正是质量管理体系的一部分,领导应当同等重视,不能厚此薄彼。
持续改进
要让基于GJB5000的软件过程管理体系发挥出提升软件质量水平的作用,还需要对软件过程管理体系进行持续改进。
软件过程管理体系的改进,可以分为“守”“破”“离”三个层次。
实施GJB5000标准,建立软件过程管理体系之初,因为囿于对标准粗浅的理解,缺乏实施经验,这时的体系可能会更多地考虑标准的符合性,比较僵化,照本宣科,对软件开发只能起到规范的作用,对软件质量水平提升的效果有限。
这是“守”的层次。
在组织获得GJB5000资质之后,随着面向组织所有军用软件项目持续推广基于GJB5000的软件过程管理体系,我们会发现体系的诸多不便、不足之处,为了解决这些问题,我们会从RUP、敏捷、精益,以及业界在软件工程方面的诸多优秀实践中汲取经验和教训,不断实验,不断总结,不断完善自己的软件过程管理体系,使之对软件开发效率和软件质量水平提升提供帮助。
这是“破”的层次。
当我们持续推广和改进,工程经验足够多的时候,我们已经明了每条实践的意义,明了我们自身的问题所在,我们对于如何解决自身的问题,解决方案可以信手拈来,不再囿于别人的做法,创造出属于自己的、独一无二的,但仍然满足GJB5000标准要求的,能够提升软件质量水平的软件过程管理体系。
这就是“离”的层次。
只有对软件过程管理体系的持续改进,才能使之对提升软件质量发挥出巨大作用。
小结
实施GJB5000能够提高软件质量水平,这是毋庸置疑的。这可以从诸多实施CMMI/GJB5000标准的组织实践得到证实。只是,要使得基于GJB5000的软件过程管理体系发挥作用,它不是简单的“拿来主义”就能够见效的,而是需要组织根据自己的实际情况,不断地对体系进行持续改进才能达到的。