我们耳边常会想起不同的质量标准、体系的名字,比如ISO,ISO9000,ISO9001,IATF16949,ISO9000-3,CMMI,ISO15504,ASPICE......
各自有什么关系呢,内在的逻辑链条到底时怎么样的?
国际标准化组织(International Organization for Standardization,简称为ISO)是标准化领域中的一个国际性非政府组织,是全球最大最权威的国际标准化组织,负责当今世界上绝大多数领域的标准化活动。一句话,就是“标准”里的“最”。
而其中的ISO9000,又是“ISO”里的“最”。ISO9000其实可以有两个理解,既是一组标准的统称,即ISO9000族(根据ISO9000-1的定义:“ISO9000族是由ISO/TC176制定的所有国际标准”。TC76是指ISO中第176个技术委员会:质量管理和质量保证技术委员会。),也是ISO9000质量管理体系:基础和术语这个特定的子标准,当然,大家提到ISO9000的普遍理解还是倾向于标准族。ISO9000族是ISO标准中最畅销、最普遍的标准,也是最知名的质量管理标准。打开ISO主页,进入Standard里的Popular Standards,我们也可以看到ISO9000族排在第一位,所谓“最”,也算是实至名归。
另外,ISO9001是ISO9000标准族里的《质量管理体系:要求》,我们常说的ISO9001认证就是基于该标准进行的。
ISO9000或ISO9001有如此大的普适性,必然会让其针对性有所缺失,所以会有针对不同领域的特定性标准。
在汽车圈里的人,几乎都知道16949这串数字,待得略久的人还知道以前都叫TS16949(ISO/TS16949),2016年改名为IATF16949,这就是ISO标准下的特定汽车行业标准。那么,背景大概是怎么样子的呢?
IATF(International Automotive Task Force国际汽车工作组)是世界上主要的汽车制造商(BMW,GM,Ford,VW...)及协会(ISO/TC76,ANFIA,CCFA,FIEV,VDA...)于1996年成立的一个专门机构,IATF对3个欧洲规范VDA6.1(德国)、AVSQ(意大利)、EAQF(法国)和QS-9000(北美)进行了协调,在和ISO9001标准结合的基础上,制定出了ISO/TS16949这个适用于汽车行业的规范。从那时起,它已成为使用最广泛的汽车行业国际标准,该标准旨在协调全球汽车供应链中不同的评估和认证体系。
2016年,IATF16949:2016由IATF发布,并取代和替换最新的ISO/TS16949,重新定义了对汽车行业供应链中组织的质量管理体系要求。值得注意的是,16949并不是一个很单独的体系,它强依赖和相关于ISO9001,只是对汽车行业的特点更有针对性。
同样的,ISO9001也可以应用在软件行业,但考虑到软件行业的特殊性,ISO专门开发了一个实施指南,也就是ISO9000-3,用于ISO9001应用的辅助配合,但并不作为认证准则。或许是太过大而全,ISO9000支的软件标准在软件工程领域并未被普遍适用和实用起来,后文我们还会提到。
看到这里,或许会有疑问,汽车行业的软件呢?我们有大的质量体系IATF16949,也有针对软件的ISO9000-3,业内如何融合和操作?
实际上,早期的16949并没有和软件相关的要求,2016年才首次增加嵌入式软件要求,并在附录B中提到软件过程评估:能力成熟度模型集成(CMMI)和汽车SPICE(软件过程改进和能力测定)。也就是说,由于传统汽车领域的软件部分着实不多,体系并未特别关注,软件也没有吸引汽车人的视线。如今,随着软件的全面进入传统汽车,倒逼IATF16949开始关注软件,但ISO9000系列似乎并不够用,所以在关于软件的部分引入了CMMI/ASPICE。
接下来,我们就切入到CMMI和ASPICE的部分。
总的来说,CMM、CMMI、ISO15504、SPICE和ASPICE是一脉相承的,但在发展过程中,逐渐整合或分列,各有侧重。
先看CMM,其英文全称为Capability Maturity Model,它是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。CMM的核心是把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和研究,从而用于评价软件供应商能力并帮助其改善软件质量,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。它是卡内基梅隆大学软件工程研究所(SEI)1987年研制成功的,是国际上最流行的软件过程成熟度认证标准。
凡事可探究下其背后的原因,CMM为何会兴起?
上世纪70年代,美国国防部专门研究了软件项目总是做不好的原因,发现多数软件项目问题是因为管理不善而导致的,而非技术实力不够,进而得出管理是影响软件项目的主要因素,这是因为软件属于抽象型的知识型产品,其复杂程度和特殊性与机械产品完全不可同日而语。
当然,CMM告诉人们What to do,却没有告诉人们How to do,所以CMM能否成功与人的关系密不可分,个体软件过程PSP(Personal Software Process)和团队软件过程TSP(Team Software Process)应运而生。
无论如何,CMM取得了不错的成功,人们开始将其扩展到其他领域,比如系统工程、集成化产品、供应商管理、人力资源管理等,从不同的视角开发出的模型,自然会有不兼容、冲突甚至矛盾的地方。当企业比较大,多模型的执行会带来额外的负担。再加上工程环境越来越动态、人员越来越多、范围越来越广及多学科多领域交织越来越复杂,人们意识到有必要将多种CMM模型整合起来,以便更系统、更高效地推进工作,CMMI(CMM Integration)就开始被创立出来。
顾名思义,CMMI和CMM的主要区别在于CMM主要是指SW-CMM,而CMMI覆盖了多个领域,如SW-CMM(软件工程), SE-CMM(系统工程),IPPD-CMM(集成的产品和过程开发)和SS-CMM(供应商采购)。此外,表示方法上,CMMI既有和CMM一样的分5级的阶段式表现方法,也有按照按照过程管理、项目管理、工程及支持4个过程域表示的连续式模式。
谈到标准,总是少不了ISO的身影,ISO/IEC(ISO和IEC联合组建的技术委员会)也注意到软件过程改进和评估标准和模型的多样性(不仅有CMM系列,还有TickIT,IEEE软件工程标准,ISO12207……)给软件行业带来的困境,着手指定的ISO/IEC15504(即SPICE)。同样的,考虑到汽车行业更好的针对性等,Automotive SPICE从ISO体系中独立出来,并由德国汽车工业联合会(VDA)的质量管理中心(QMC)运营发展,也就是如今热火朝天的ASPICE。
写到这里,基本上从浅层次链接了各个标准的逻辑关系,供构建宏观视角参考理解。
对于汽车软件从业者而言,浮于这么浅的表面显然不够,可深入研究ASPICE、CMMI、ISO26262以及新颁布的ISO/SAE 21434这几个相互交融的体系标准之间的异同。