近波音737MAX空难也让美国联邦航空局(FAA)遇到了的麻烦,因为用于航空飞行控制的软件都要通过FAA的标准认证流程, 如DO-178C (点击下图,阅读原文)。许多开始质疑FAA的认证过程存在问题,他们对FAA审核没有发现737 MAX升级软件的潜在问题感到不解。严格的软件认证过程真能发现所有质量隐患吗?如果了解软件特点,我们知道答案是否定的。否则不会有飞机失事、核电站泄漏、火箭实效等问题了。这些安全关键软件评估认证的过程比CMMI要严格10倍,也起到了重要的作用,但通过认证绝不是0缺陷的。
做完CMMI3评估,你会发现公司的软件开发过程基本实现以下特点:
1)明确规定了需求开发、设计、编码、测试、集成等软件开发各过程的要求。
2)对项目管理提出了更高的要求,要利用组织级的数据来管理项目。
3)出现了针对组织级的PA,要求有的组织来负责过程改进的工作。
4)提供了一个做出佳决策的指导,而这个方法可以用于软件工程,也可以用于组织级过程改进。
管理方面:
1) 领导支持力度不够:不能提供足够的资源
2) 缺乏有能力的人员:EPG和度量分析人员水平太差,对新知识的领悟和理解能力很差
3) 项目组不配合,很多数据无法收集:项目人员本身对CMMI高成熟度的要求不理解,反感记录和提供数据,或者记录和提供的数据不准确
4) 没有建立量化的质量文化:对数据不敏感,主要靠经验决策,对收集的数据可靠性没有信心
基于以上难点,实施CMMI-4&5级难度很大,但是也不是说不能实施,只要企业能够实实在在的实施CMMI-3级,并注意过程度量数据的收集,有了这些过程数据作为基础,在加上公司能够在资源上大力支持,那么实施CMMI-4&5级还是不算难的。