1. Overview
可以写出来的,才是自己掌握的
近来,工作中接触ASPCIE CL2机会较多,有些收获与心得。
本文尝试总结一下目前自己对于ASPICE CL2的认识,如有不妥之处,欢迎交流。
本文尝试回答以下问题:
- ASPICE CL2,是什么?
- ASPICE CL2,Why?
- ASPICE CL2的要求是什么?
- How,举个实例
- Summary
2. ASPICE CL2是什么?
首先我们来看下标准(ASPICE V3.1)中的定义:
The previously described performed process is now implemented in a managed fashion(Planned, monitored and adjusted) and its work products are appropriately established, controlled and maintained.
CL 2(CL, Capacity Level) 表示"Managed Process", 适用于ASPICE中的各个过程。
简言之,要点有二:
-
Performed Process(CL1) + Managed fashion(Planned, Monitored, adjusted)
-
Work product + Managed(Established, controlled, maintained)
总而言之: Managed(可控)
即流程要以“Managed”的方式执行,同时,此流程中产生的Work product也要可控(Managed),从而实现整个过程,或者产品的可控(Managed)。
也就是在预算内,按照客户既定计划与流程,完成产品的研发,测试。
resource, effort, schedule, work product
3. ASPICE CL2,Why ?
项目研发过程,为什么需要通过ASPICE CL2评审?也就是通过ASPICE CL2的意义在于哪里?
按照ASPICE标准的解释,ASPICE CL2的核心在于”Managed“,过程可控,每个过程输出的产品(Work product)可控。这样一来,项目就可以在计划内,预算内执行,完成对客户的交付,同时保证交付的质量。
项目的一切活动都在 ”可控“ 的状态下执行。所”说“即所得。
项目经理和客户的承诺是有效的,不是临近交付要推迟,或者交付的质量不可靠,按住葫芦起来瓢,每次交付都不知道产品的质量到底如何?漫天飞的都是bug的场景,实在是愁煞人人!
项目成员内部之间的承诺或者计划,也是有效的。如系统开发团队(系统工程师,系统架构师)对下游,也就是软件开发团队的承诺(或者计划)是有效的,即可以按照系统开发计划,在既定时间内,按照既定产品(work product)的要求,向软件团队交付合格的输入(系统需求,系统架构),以供其开发软件需求,软件架构等。同时,也向系统测试团队提供合格输入(系统需求,系统架构),以进行系统集成测试,系统测试。
每一个过程都要对自己过程定下的目标负责,按照既定目标完成工作,也就是对其他与之相关的过程负责。
每个过程都完成自己的目标,组合起来,也就完成了项目的目标,即在预算内,按时按质完成对客户的交付。
4. ASPICE CL2的要求是什么?
4.1 ASPICE CL2评估标准是什么?
首先,ASPCIE 要求每个过程中的BP的评分为F(85%以上);
其次,CL2 相关的过程属性PA 2.1/PA2.2 评分至少要达到L。
PA 2.1 要达到 L,也就意味着GP 2.1.1 ~ GP 2.1.7 组合得分要达到L(50%,85];
PA 2.2 要达到 L,也就意味着GP 2.2.1 ~ GP 2.2.4 组合得分要达到L(50%,85]。
上述GP具体要求,可参考ASPICE V3.1的标准
4.2 ASPICE CL2 评估内容是什么?
4.2.1 过程绩效管理
PA 2.1 着眼于过程绩效管理。
过程绩效目标(Objective for Process performance)
根据项目目标,分解为各个过程的绩效目标,包括预算(resource, effort),时间节点,过程输出产品的质量要求等
根据过程绩效目标,分解过程活动,并制定计划
根据过程活动,识别此过程中需要的角色,职责,权限,以及执行相应活动所需要的技能,或者经验。
根据角色技能要求,以及计划,安排响应资源(人力+工具),并进行评估,若工程师技能与需求有差距,安排计划,确保执行计划所需的工程师技能的有效性
接口
定义好此过程涉及到的上游,下游,或者与研发管理的沟通接口,如沟通形式(在线会议),触发条件,参加人员,讨论内容,相应输出内容(会议纪要,或者Review记录)
4.2.2 过程产品管理
PA 2.2 着眼于过程输出产品管理,
- 预先定义要求
- 过程产品需求,产品审核标准;
定义过程输出产品内容需求,如文档框架或排版格式,项目信息,技术内容等内容的要求
定义过程输出产品审核的标准,以方便审核文档内容,确认文档内容。
- 产品管控流程
定义过程输出产品控制流程,包括文档生命周期,各个状态之间变换的条件,版本变更的要求,使文档受控。
- 执行
然后监控执行层面,是否按照既定要求与流程执行。
5. How, 举个实例
如何做,才能满足ASPICE CL2的要求?话题比较大,会在其他文章中详细描述。本文暂不展开讨论。
6. Summary
制定本过程的绩效目标
在预算范围内,根据项目时间节点与计划,本过程输出什么过程产品(明确产品质量标准),并明确遵循什么过程标准?
计划,监控,调整
目标定义好了之后,分解本过程的活动,制定本过程的计划,并监控其执行情况,若有变化,及时调整计划,确保完成绩效目标
执行
制定好计划,关键在于执行,执行的关键在于人,也就是执行本过程活动的工程师。
如何找到合适工程师?
首先,在于确定选择工程师的标准,也就是定义执行本过程所需工程师角色的职责(要干什么?),授权(谁授权你干),技能或者经验;也包括审核过程产品所需要的技能,权限
其次,根据上述定义,识别并准备有效资源(工程师,工具),根据上述识别到角色技能,安排相应的资源(人力,工具等);若技能上有差距,采取措施,保证工程师可以上手工作。
管理好沟通接口
有分工,就会有协作,协作就需要有效的沟通。
首先, 要明确此过程涉及到的相关角色,各个角色的职责,分工明确之后,才能更好的合作,以免扯皮,推诿,影响合作。
其次,定义好各个角色之间沟通接口,包括触发条件,沟通方式,沟通主题,沟通之后的记录等。
最后,在沟通执行层面,按照上述既定策略执行,保证及时沟通,且沟通有效。
管理好过程输出产品
管理好产品内容,先要定义好过程输出产品需求,再按照需求来开发产品。
管理好产品,先要定义好策略,包括版本,命名,存储等,并保证按策略执行。
7. 一点心得
多说一点,分而治之(Divide and Conquer),这个策略贯穿了ASPICE模型。
即对系统开发过程建模,将其分解为系统开发过程(SYS.1 ~ SYS.5),软件开发(SWE.1~SWE.6),支持过程(SUP 1,8,9,10),管理过程(MAN.3),每个过程围绕一个主题展开(类似于软件开发中的对象单一职责原则),分工明确之后,再进行协作,最后完成整个系统开发过程,交付给客户有质量保证的产品。