基于Scrum的汽车电子控制器开发的应用研究
2020-02-03郭昱慧
郭昱慧
(威马汽车科技集团有限公司成都研究院 四川省成都市 610000)
近几年来随着节能、数字化等话题不断的强化;电动机逐步崛起,传统内燃机逐渐淘汰;5G 逐步落地,自动驾驶迅速发展。全球汽车产业不断变革,并逐步走向“新四化”维度——电动化、网联化、智能化、共享化。伴随着“新四化”的深入发展,软件和整车电子架构正在重新定义汽车行业。2019年中国汽车工程学会年会,汇集了来自汽车领域的专家们在大会上深度探讨5G、人工智能、智能网联、汽车轻量化、新能源、安全与检测等热点话题。预言未来的汽车将成为搭载全新差异化元素的平台。[1]这种差异化元素可能包括最新的车载娱乐系统、自动驾驶和智能安全等以“高容错性”为根本的功能。[1]软件将通过智能传感器与硬件整合,进一步深入数字堆栈。[1]
在需求多样化和技术复杂化的时代,项目的成功率将成为各大企业的决胜因素。Stacey Matrix 是Ralph Douglas Stacey 为了整合主流管理理论与复杂自适应系统,提出的一个图表。该图表说明了决策和控制的适当形式取决于所面临的变化情况的性质。如图1 所示是Zimmerman 改良版的Stacey Matrix。横坐标是确定性程度与确定或定义原因和影响之间的联系有关度,即技术层面的复杂度;纵坐标是团队与团队,团队与组织之间就问题或决策达成一致的程度,即需求层面的复杂度。随着技术和需求的复杂性不断提高,人们利用过去的经验来计划未来的行动并达到预期效果的思路将越来越模糊甚至混乱。为了降低复杂度并提高产品的成功率,定义过程(传统)和经验过程(敏捷)已成为各大企业的不二选择。但当定义过程的复杂度过高的时候,采用经验过程将更为合适。表1 所示定义过程与经验过程的原则对比。
本文将传统汽车电子元器件开发实现过程与敏捷思想(Scrum)相结合,提出一种基于Scrum 的汽车电子元器件开发实现过程,旨在加快产品交付速度、保证产品软硬件质量以及产品稳定可靠,为工程实践过程中敏捷开发部分提供参考。
1 Scrum
1.1 Scrum定义
Scrum 是目前应用最广泛和最受人欢迎的敏捷思想,它包括一系列实用原则、组织价值观和复杂工作管理方案。Scrum 是scrummage 的缩写,源自英式橄榄球的一种打法:两组前锋面对面排成紧凑的队形,试图将被扔在他们之间的球踢回给队友。1986年作者Hirotaka Takeuchi 和 Ikujiro Nonaka 在《哈佛商业评论》里的一篇文章中,将高绩效、跨职能的团队与橄榄球队使用的Scrum形式进行了类比。
尽管Scrum 源自于软件开发,但现如今它作为一种轻量级的框架,运用于各行各业来交付复杂、创造性的产品和服务。Scrum 主要帮助人们解决复杂的适应性问题,重点关注短期创造性的交付可能具有最高价值的商业价值。虽然Scrum 容易理解,但却很难掌握。
1.2 Scrum 原理
Scrum 依赖于经验过程控制理论。经验主义认为:知识源自经验,决定基于已知的事物。它采用迭代、增量的方法来优化可预测性和控制风险。实施经验过程控制的三大支柱是透明、审视和适应。
透明:要求所有定义的方面都必须有一个共同的准则(标准),以至于检视者对于他们所看到的事物有一个共同的理解。
表1:定义过程与经验过程
表2:Scrum 事件
表3:Scrum 工件
图1:Zimmerman 改良版Stacey Matrix
审视:为了防止偏离期望的过程或者最终产品,需要人们定期检查。审视工作应分时间段进行,但不能过度频繁以至于妨碍正常的工作开展。
适应:当监测者发现在工作实施过程中有一项或者多项目标超出了可接受的范围,或者产品结果不可接受时,实施过程或者资源必须要进行优化调整。
图2:ASPICE 实现引擎
图3:基于Scrum 的汽车电子元部件开发过程
1.2.1 Scrum 价值观
承诺、勇气、专注、开放、尊重是Scrum 团队的价值观。只有当五大价值观全面融于整个团队及组织的时候,经验过程三大支柱才能被赋予生命并创建团队成员之间的信任。
承诺:Scrum 团队只需要承诺他们估算能完成的内容。
勇气:Scrum 团队需要有勇气去面对阻碍他们成功的问题,勇敢的说不并寻求帮助,或者尝试新的事物。
专注:Scrum 团队无论开始什么,他们都必须专注这项内容并完成。
开放:Scrum 团队要持续寻找新思想和学习的机会,当团队需要帮助的时候应表现出需求。
尊重:Scrum 团队成员需相互尊重,尊重彼此的想法,认可彼此的成就,偶尔允许对方度过糟糕的一天。
1.2.2 Scrum 团队
Scrum 团队由一位产品负责人(Product Owner)、开发团队(Development Team)和Scrum Master 三部分共同组成。Scrum 团队是自组织和跨职能的。Scrum 团队模型旨在优化灵活性、创造性及生产力。
产品负责人:负责从开发团队工作产品中最大化产品价值,且必须是一个人。
开发团队:由专业人员组成,负责每个冲刺结束时,交付潜在可发布的“已完成”的产品增量。
Scrum Master: 负责推进和支持Scrum 定义的工作事务,帮助团队中每个成员理解Scrum 理论,实践,规则和价值观。
1.2.3 Scrum 事件
Scrum 中使用规定的事件来创建规则,并最小化对Scrum 中未定义的会议需求。Scrum 中定义了四个事件:冲刺计划、每日站立会、冲刺评审、冲刺回顾。如表2 所示。
1.2.4 Scrum 工件
Scrum 工件代表着团队工作或者价值,赋予审视和适应两大支柱一个透明的机会。工件包括产品积件(Product Backlog)、冲刺积件(Sprint Backlog)、产品增量(Increment)。如表3 所示。
1.2.5 冲刺
图4:Scrum 团队单次冲刺过程
冲刺(Sprint)是Scrum 的核心,也是Scrum 团队工作的一个工作时间盒,每次冲刺都应保持在1 周到一个月之间。冲刺必须是连续的,一个接一个的,从而保证一个稳定的、固定的项目节奏。每次冲刺都以开发计划为起点,以评审已完成的工作和额外的评审团队协作的方式为终点。每次冲刺都由整个Scrum 团队共同完成整个产品或项目的一个或多个增量。每个完成的增量必须是潜在可释放的,也就是每一个增量必须是在冲刺结束后经过充分测试和充分认可的。
2 电子元器件开发过程
质量专家戴明博士说过:“如果你不能描述做事情的过程,那么你就不知道你在做什么”。过程是产品开发过程中有能力的工程师和先进的技术结合的纽带,因此产品开发过程直接决定了产品的质量和研发。
2.1 ASPICE
ASPICE(Automotive software process improvement and capacity determination) 兴起于欧洲,于2005 年由AutoSIG 发布,是SPICE(ISO/IEC15504)在汽车行业的衍生标准,作为一种用于改进和评估机电系统开发过程的标准,从安全及安保的角度支持关键产品的设计制造,主要关注汽车行业的软件改进和能力测定。广泛用于整车厂和供应企业自身的过程能力改进,以及对供应商的风险评估。
ASPICE 的管控过程分为3 类:主要生命周期过程、组织生命周期过程和支持生命周期过程。随着需求和应用场景的多样化,机械及电子元器件部分越来越受各大厂家的关注,图2 是Automotive SPICE 第三版的“插件概念”阶段的过程。整个阶段贯穿项目管理(MAN.3)、风险管理(MAN.5)、重用项目管理(REU.2)、供应商监管(ACQ.4)、质量保证(SUP.1)、文档管理(SUP.7)、配置管理(SUP.8)、问题解决管理(SUP.9)、变更需求管理(SUP.10)。左上角是硬件设计V 模型,右上角是软件设计V 模型,正下方分别是机械设计V模型、机械系统设计V 模型以及系统设计V 模型。最中间的三个V 模型组成的是组件及单元级别的设计实现过程,中间靠外侧的是域子系统级别的设计实现过程,最外侧的是系统级别的设计实现过程。其中每一个V 模型中都包含需求分析阶段、架构设计阶段、单元及集成测试阶段、质量测试阶段。
2.2 基于Scrum的电子元器件开发过程
在Scrum 理论及事件的基础上,借鉴ASPICE 的过程控制方案,构造出一种基于Scrum 的汽车电子控制器开发过程,如图3 所示。在整个控制器开发实现过程中,传统的开发过程是以整个项目计划为基线对产品进行审视、监控及产品输出反馈;而Scrum 则是以冲刺为单位,将整个项目根据商业价值拆分为多个子计划,采用固定的时间、固定的方式对产品迭代产出,并由多个冲刺连续拼接出最终的整个项目计划,即增加了项目的审视和监控过程的次数,缩短整个产品反馈时间间隔,保证项目计划实时动态调整。
每个冲刺都要经历冲刺计划会、每日站立会、冲刺评审会及冲刺回顾会四个正式的会议。为了保证需求更加明确以及计划规划的更为合理,Scrum 启动了一项非正式会议——产品积件精化会议,该会议由产品负责人和团队成员采用私下的碎片时间进行产品积件的细化沟通。每个正式的会议都需要按顺序、持续连贯的开展,从计划到每日队员自省和团队同步,再到产品增量验收,最后团队回顾反思优化。整个冲刺过程给团队提供了一个全员跨职能和自管理的机会,引导产品及团队呈现一种螺旋上升的趋势。
传统的开发流程采用多职能部门分工项目的瀑布式开发方式,往往在同一个产品层面无法打破“部门墙”,并充分的调动各个开发实现环节的资源。而Scrum 采用自组织和跨职能团队,即每一个开发团队所具备的职能必须要包括完成该产品增量所具备的所有技能。因此轻而易举的解决了资源固定,难以流动的问题。为了确保团队的灵活性和生产力,Scrum 要求开发团队人数控制在3 到9 人。然而,在实际项目中,一个项目往往需要多个Scrum 团队共同完成。
每个Scrum 团队在单次冲刺过程中,将ASPICE 中提及的电子元器件部分的开发过程与Scrum 的工件相结合。如图4 所示。与传统的瀑布式开发V 模型不同,Scrum 要求所有职能人员同步开发制造产品增量,即形成一个洋葱式的同步开发方式。以此来缩短各个职能工作之间的交互等待时间,给各个职能部分提供一个持续高效沟通空间。
3 结论
本文阐述了Scrum 思想下的价值观、团队、工件、事件,及ASPICE 提出的电子元器件部分的管控过程。提出了一种基于Scrum 的敏捷思想的电子控制器的开发流程,解决汽车电子控制器研制过程中产品需求多样化、开发周期短等问题,在保证电子控制器的研制效率和快速并高满意度的满足客户需求的同时,缩减不必要的资源开支及流程,帮助企业更好更快的占领市场。
汽车电子控制器研制项目开展过程中可根据软件工程中的相关实际情形,形成适用于具体情况的本地化敏捷开发规则,并在工程实践中有效、充分的实施,对提高我国汽车电子控制器的研制效率有着重要的意义。该敏捷思想已经在全球的汽车整车厂及零部件厂商的电子控制器研制过程中广泛推广和实施。