第四章 ASPICE基础:历史、模型与能力等级详解
各位同学,今天我们聊聊ASPICE的基础。说实话,这个标准在汽车圈里已经成了“硬通货”。你出去跟OEM谈项目,人家第一句话可能就是“你们ASPICE过了几级?”
我最早接触ASPICE是在2015年,那时候国内还没多少人懂。我记得第一次做评估,被评估师问得满头大汗——不是因为技术不行,而是根本不知道“过程”这个词在ASPICE里意味着什么。好,我们从头捋一遍。
4.1 ASPICE的历史与背景
ASPICE的全称是“Automotive SPICE”。它脱胎于软件行业的SPICE标准(ISO/IEC 15504),后来被汽车工业专门化。
为什么会诞生这个东西?说白了,汽车里的软件越来越多。2000年左右,一辆车只有几十万行代码。现在呢?高端车型轻松上亿行。代码多了,出问题的概率就大了。你想想看,刹车系统的软件要是出了bug,那是要命的事。
所以,OEM们坐不住了。他们需要一个标准,来评估供应商的开发能力。于是,在2005年,ASPICE正式发布。后来经过几次修订,现在主流用的是ASPICE 3.1版本(2017年发布)。
核心要点:ASPICE不是教你怎么写代码的,它是教你怎么管理开发过程的。过程好了,产品质量自然有保障。
我个人习惯把ASPICE理解成“汽车软件开发的ISO 9001”。它不关心你用了什么技术栈,只关心你有没有把该做的事情做到位。
4.2 过程参考模型(PRM)
PRM,全称Process Reference Model。它定义了ASPICE里有哪些过程,以及这些过程之间的关系。
PRM把过程分成了三大类:
- 主要生命周期过程(Primary Life Cycle Processes):包括需求获取、系统设计、软件设计、编码、测试等。说白了,就是直接产出产品的那些活儿。
- 支持生命周期过程(Supporting Life Cycle Processes):包括配置管理、质量保证、问题解决等。这些过程不直接产出产品,但保证产品做得靠谱。
- 组织生命周期过程(Organizational Life Cycle Processes):包括项目管理、过程改进等。这是管理层的事。
我举个例子。你在做软件单元测试,这属于“主要生命周期过程”里的“软件测试”过程。但你测试时发现的bug怎么记录、怎么跟踪?这就涉及到“支持生命周期过程”里的“问题解决管理”过程。
我的经验:很多团队只关注主要过程,忽略了支持过程。结果就是代码写得飞快,但bug管理一塌糊涂。我曾经见过一个项目,测试人员发现了一个严重bug,但因为没有规范的问题跟踪流程,这个bug在系统里躺了三个月没人管。最后在客户现场炸了。
PRM里一共定义了40多个过程。别怕,你不需要全部记住。实际项目中,最常用的是那些与软件开发直接相关的过程,比如:
| 过程ID | 过程名称 | 简要说明 |
|---|---|---|
| SYS.1 | 需求获取 | 从客户那里拿到需求,并理解它 |
| SYS.2 | 系统需求分析 | 把客户需求转化成系统级的技术需求 |
| SWE.1 | 软件需求分析 | 从系统需求里提取出软件要做什么 |
| SWE.6 | 软件测试 | 验证软件是否满足需求 |
| MAN.3 | 项目管理 | 计划、跟踪、控制项目 |
4.3 过程评估模型(PAM)
PAM,全称Process Assessment Model。它告诉你:怎么去评估一个过程做得好不好。
PAM里有两个核心概念:
- 过程能力(Process Capability):一个过程能达到什么水平。比如,你的需求分析过程是“能干活”还是“能稳定地干活”。
- 过程属性(Process Attributes):用来衡量过程能力的指标。每个能力等级对应一组过程属性。
举个例子。你要评估“软件测试”这个过程。PAM会问你:
- 你们有没有测试计划?(过程属性PA1.1)
- 测试计划有没有被执行?(过程属性PA1.2)
- 测试结果有没有被记录?(过程属性PA2.1)
- 等等。
每个过程属性都有一个评分:N(未实现)、P(部分实现)、L(大部分实现)、F(完全实现)。
注意:PAM不是让你“做样子”的。我见过有些团队,为了应付评估,临时补了一堆文档。结果评估师一问细节,漏洞百出。评估师都是老江湖,你骗不了他们的。
4.4 能力等级(CL1-CL5)详解
能力等级是ASPICE里最“性感”的部分。它把过程能力分成了6个等级(从0到5)。
我直接说人话:
- CL0(不完整级):过程没做,或者做了但没证据。说白了,就是“一团糟”。
- CL1(已执行级):过程被执行了。你能证明你做了这件事。比如,你写了测试用例,也跑了测试。
- CL2(已管理级):过程被管理了。你有计划、有资源、有监控。比如,测试有测试计划,测试结果有评审。
- CL3(已建立级):过程被标准化了。你有一套标准流程,整个组织都在用。比如,公司有统一的测试流程规范。
- CL4(可预测级):过程被量化了。你能用数据预测过程表现。比如,你能根据历史数据预测测试需要多少天。
- CL5(优化级):过程被持续优化了。你能主动改进过程。比如,你发现测试效率低,主动引入自动化测试工具。
我给大家一个直观的感受。大部分汽车供应商的目标是CL2或CL3。CL4和CL5,说实话,能做到的企业凤毛麟角。为什么?因为量化需要大量的数据积累,优化需要组织文化的支撑。
避坑指南:我曾经见过一个团队,非要冲CL3。他们花了大半年时间写流程文档,结果项目进度严重滞后。最后评估没过,项目也黄了。我的建议是:先做到CL2,把基础打牢。CL3是水到渠成的事,不是硬冲出来的。
每个等级都有对应的过程属性。我列个表,方便你对照:
| 能力等级 | 过程属性 | 含义 |
|---|---|---|
| CL1 | PA1.1 过程执行 | 过程被执行,产出工作产品 |
| CL2 | PA2.1 执行管理 PA2.2 工作产品管理 |
过程有计划、有监控;工作产品被管理 |
| CL3 | PA3.1 过程定义 PA3.2 过程部署 |
过程被标准化,并在组织内推广 |
| CL4 | PA4.1 过程测量 PA4.2 过程控制 |
过程被量化,用数据说话 |
| CL5 | PA5.1 过程创新 PA5.2 过程优化 |
过程被持续改进 |
嗯,这里要注意。能力等级是“累积”的。你要达到CL3,必须先满足CL1和CL2的所有要求。不能跳级。
最后,我分享一个心得。ASPICE不是目的,而是手段。它的最终目标是帮你做出高质量的软件。如果你只是为了拿证书而做ASPICE,那你的团队会很痛苦。如果你是为了提升能力而做ASPICE,你会发现它其实是一套很好的管理方法论。
好,这一章就到这里。下一章我们讲ASPICE的评估流程,包括怎么准备评估、评估师会问什么问题、怎么应对。到时候我会分享一些实战中的“骚操作”,敬请期待。