OEM:与软件供应商合作的六个经验总结

汽车电子与软件 2021-09-16 21:25
OEM在与软件供应商合作时,总会遇到一些挑战。这里从实际工作中总结了六条经验。
汽车上的软件开发会需要多家供应商为车辆的不同功能提供软件。成功地从所有供应商那及时获得高质量的软件是一个巨大的挑战。为了应对这一挑战,汽车公司通过国际标准、企业标准、功能规范和工程合同等来规范供应商的工作。但是在日常工作中,如何处理与软件供应商的合作,使其达到想要的结果呢?
我在软件开发项目中担任过两年的软件质量工程师,接触过七家供应商。我的工作是为DRE提供技术和计划支持,他们则监督供应商的软件开发,使项目的成功执行。这种支持涵盖了合同管理、项目规划、需求工程、设计、实施、供应商和内部测试、可追溯管理、过程改进、质量保证、符合标准、风险和机会管理、处理器和内存负载监控、和产品交付。
我经常与供应商进行沟通,并不断协商我们在这些领域的责任。此外,在一个项目的生命周期内,我们会与供应商进行了几次联合审查,这意味着亲自前往供应商现场,并在2 - 3天的联合会议中审查他们的过程和工作产品。这项工作让我对软件开发有了一个整体的看法,从而产生了一系列后续行动,让双方能够克服项目瓶颈。这些都是我的工作,除此之外,我还观察和记录总结了这个过程中最重要的经验,这些经验对项目执行的成功有明显的影响。

经验一:果需要与供应商进行长期的合作并且有密集的功能开发需求,那就建立一个敏捷合同

 OEM外包软件开发的常见操作之一是为每个软件增量向供应商付款。如果供应商负责开发一个比较大的软件,那么总是有功能增量的需求。在这种情况下,双方通常建立功能开发或变更计划,这里每个功能开发的周期设置为十周,但在不同的实践中会有所不同。

在这十周的开始,供应商会收到需求或者变更请求,即一些新功能和旧功能的变更。供应商工程师设计变更,并估算开发需要的时间。然后供应商管理层进行审查和批准。接下来OEM也会对其进行审查和批准。最后就按照这个计划开发。图1(a)显示了十周时间段内所述活动的简化图。

图1 a 传统的开发计划 b 敏捷开发计划
这种合作模式的一个缺点是开发组织必须详细估算开发时间,并等待管理层批准。另一个缺点是一个开发周期必须足够长,这样在减去前期评估和审批的时间,仍然有足够的时间进行开发,结果就是开发周期变长。
对于一个大型ECU开发,一年中花在前期评审和审批的时间高达13-17周,这种方式阻碍了在双方之间构建快速反馈和缺陷解决的持续集成链。
这种浪费可以通过开发敏捷模式来消除。该模式的本质是,OEM不仅要为劳动力付费,还要为开发的功能付费。这意味着OEM应该从供应商那里雇佣敏捷团队。由于该团队位于供应商处,一个好的程序是有专门的产品负责人,一个来自供应商,一个来自OEM。然后任何更改请求都会发送给产品负责人,他们一起分析并决定即将到来的开发时间段的下一项工作。
OEM产品负责人关心的是根据需求的紧急程度和开发工作对变更请求进行优先级排序。当然,供应商产品负责人也会评估方案的可行性和开发团队的工作量。这种方式审批浪费的时间被消除了,所以开发的时间可以减少,从而使快速反馈和对供应商的响应变得有效。

经验2:尽管有工程合同,但要注重积极的联合审查                   

 汽车开发的惯例是,OEM会有一份全面的书面工程合同,详细说明供应商应该遵守的每一个实践和供应商应该达到的每一个指标。一个常见的惯性思维是,只要制定好了,项目就能成功。

但是这其中有两个问题:第一,大多数实践和指标在持续应用时是有价值的。例如,如果不遵从MISRA编码规范,修复缺陷会引发创建新缺陷的高风险。这几乎适用于所有领域,如复杂性管理、内存优化、处理器负载度量、风险管理等等。当OEM不积极地去审查供应商的交付物以及开发过程时,为了满足合同上的条款,供应商经常发送指标报告,而没有后续动作。

第二,有一种说法是,如果项目失败了,供应商将承担后果(如合同中所示)。但事实并非如此。即使供应商可能会因为有缺陷的产品而支付罚款,或者可能会因为项目失败而得不到付款,但对OEM的影响是巨大的。OEM无法提供承诺的功能,失去信誉。
在实践中,合同是OEM和供应商的工程师组织协作的法律、道德和实践框架。这种协作越系统化,项目进行的就越无缝。这样的合作主要通过联合审查的方式进行,双方可以陈述他们的关注点、困难、需求、需要的支持、变更请求等。他们还会就合同范围之外的小问题进行谈判,并庆祝进展中的小成功。系统化和详尽的联合评审对产品的成功至关重要。正是在这些审查过程中,看似业余的问题可能可以识别到关键的问题和风险。也正是在这些评审期间,工程师们为了一个共同的有意义的目标团结在一起,并为长期合作建立前提。

经验三:监督供应商与二级供应商的关系                               

 在某些情况下,软件供应商有自己的供应商。例如,如果一个供应商承担了一个节点的主要功能的开发,他们可能会从另一个供应商那里购买该节点的操作系统,而后者则是OEM的二级供应商。与工程合同规范OEM和供应商合作的方式一样,它们也规范供应商和二级供应商的合作。一方面,OEM不能强制二级供应商遵守工程合同,因为合同不是直接在他们之间签订的。另一方面,迫使供应商要求二级供应商遵守合同是具有挑战性的。
虽然这个问题在合作中似乎是次要的,但如果不从一开始就仔细考虑,它可能会成为一个棘手的问题。假设由于一些法律和实际原因,工程合同要求供应商在OEM需求和供应商测试用例之间显示完整的可追溯性。同样,假设供应商和二级供应商在二级供应商只开发和交付工作功能而没有测试用例的条件下合作了很多年。这个问题可能在一开始就不明确,因为供应商可能认为购买的功能符合工程合同,而OEM可能不这么认为。之后,在项目文件交付过程中发现问题,出于法律原因,解决方案不会很明显,强调三方的关系。
另一个相关问题是,供应商专注于自己的工作以遵守工程合同,但在没有适当沟通的情况下将合同转让给二级供应商。这种情况下,供应商可以展示其开发部分的合规性,但无法展示二级供应商开发部分的合规性。至关重要的是,二级供应商的开发可能占整个软件开发的50%。
解决这些问题需要大量的时间和精力,甚至涉及到更高的管理层。建议OEM质量工程师和项目经理要求二级供应商的关键工程师参与合同的制定过程。他们应讨论并商定在项目开始时,合同合规性的可接受范围。达成这样的协议通常需要付出出乎意料的巨大努力,因为三方之间的工程政策总是存在冲突,但这些协议正在为积极合作奠定坚实基础。
另一个建议是,OEM工程师应该询问供应商与二级供应商的关系如何,双方合作是否存在瓶颈,是否存在可行性问题,交付问题等等。这样的对话通常会发现看似很小的问题,但在项目接近尾声时可能会发展成大问题。但当OEM工程师表现出关注和兴趣时,这些问题就会自动变得重要,并在后续过程中得到解决。

经验四:建立绩效KPI,以管理项目进度的合规性                     

供应商软件管理的一项基本任务是了解供应商何时完成开发。实践中的一个问题是,从业者有时要么不使用任何KPI,要么使用无效的KPI。在这两种情况下,实践者都以一遍又一遍地无用的讨论而告终。

常见的无效KPI是静态KPI,忽略了时间轴,因此是朝着完成日期发展的趋势。一个例子是饼图,显示60%的需求已经实现。

相反可以构建一个KPI,它可以预测完成日期。图2显示了两个这样的KPI。第一个KPI(图1 a)适用于确定总体需求数量的项目。这是几周内实施需求的趋势(橙色线),旨在在目标周内达到需求总数(蓝色线)。例如知道目标是第26周,从业者可以预测开发将延迟2-3周。

在实践中,用图1(a)构建另外两个趋势可以更全面地概述发展趋势:
1、分解的OEM需求(有多少原始要求分解为供应商的内部设计要求);
2、已实施的OEM需求;
3、经测试的OEM需求;
监控这三种趋势将有助于确定开发中哪些主要活动是滞后的,因此可以在各自的活动中增加更多的资源,或者重新确定需求的优先级。

图2 a已定义产品需求集发展趋势的KPI
第二个KPI(图1 b)适用于只定义了即将到来的待定项的功能的项目。因此燃尽和堆积趋势对于监控进度遵从性是有效的。趋势(图2 b)显示了一个为期四周的敏捷迭代,团队在27天内烧掉了40个故事点(绿线)。同时,新的故事点在开发期间堆积在现有的待定项之上(橙色线),提高了实际趋势(黑色线)。在第17天,如果添加了更多的描述点,那么团队有按时发布产品增量的风险。

图2 b 未定义产品需求集发展趋势的KPI

经验五:建立质量KPI,以管理质量合规性                             

供应商软件管理中的另一项基本任务是了解所开发软件的质量。软件KPI是监控质量和指导改进活动的有力手段。同样,关键是选择有效的KPI并持续使用,并采取后续行动。

然而,一个大问题是供应商只是偶尔进行衡量,并将结果发送给OEM,而不采取后续行动。因此,OEM负责人应要求KPI报告,以证明持续改进,如每周或每两周。这种态度建立了基于客观和准确度量的软件质量密切协作和讨论。双方的实践者在讨论质量时使用相同的语言。供应商了解到,遵循KPI并提高质量不是一项独立的活动,而是开发过程中的一个自然部分。

质量KPI的另一个大问题是,从业人员被许多众所周知的KPI弄糊涂了,这些KPI不准确,因此最终对任何质量改进活动都是无用的。例如计算代码行数或众所周知的复杂度数,如圈复杂度、Halstead度量等。测试中类似的例子是决策和条件覆盖率的计数。这里我列出了一些KPI,它们明显地帮助显著提高了软件质量。

1、OEM需求测试的覆盖范围

2、严重违反MISRA的数量

3、高度嵌套的源函数数量

4、未跟踪的需求/测试/代码的数量

第一个KPI的目标值为100%;在交付给OEM之前,应在供应商现场对所有OEM要求进行功能测试。这样的测试最好与开发同时进行。第二个KPI的目标值为0;所有严重违反MISRA的行为都应该在引入这些行为后“及时”得到解决。第三个KPI的目标值为0;所有超过最大嵌套级别4(最大嵌套<5)的源函数都应该在引入它们时“及时”进行重构。第四个KPI的目标值为0;所有客户需求都应与内部供应商设计需求、源功能和测试用例有明确的跟踪链接。
有更多的KPI可以用于提高软件质量:例如MC/DC覆盖范围,应具有基于软件关键性级别的目标值;处理器和内存负载趋势,应像上一节中的实现趋势一样进行监控。

在软件开发中持续使用这种有效的KPI,并要求供应商及时解决问题,可以获得以下三个大的好处:

1、在整个开发过程中,所开发的软件功能始终符合OEM的要求;

2、许多缺陷都是在供应商方面提前发现的,不会浪费系统测试的时间,也不会占用测试设备;

3、源代码保持可维护性,以便更快地添加新功能和修复缺陷,尤其是在项目完成后很长时间。

经验六:考虑让你的供应商参与后续项目,即使有更便宜的替代方案   

在持续的大型产品开发中,新项目通常是一个带有一些附加功能的旧项目的后续。新项目与前一个项目有很多功能重叠,可能会外包给不同的供应商。在这种情况下,功能的设计是围绕OEM之前指定的一组需求发展的。同时,在新供应商现场重新开发新的项目代码。

因此,这两个连续的项目有不同的预算、负责人,而且往往有不同的供应商,即使它们的功能重叠。每次启动新的后续项目时,都应选择供应商。本次选择考虑了两个主要方面:成本和能力。选择了一个具有合理价格和较高软件开发能力的供应商。

但是,如果旧供应商已经拥有为新项目开发的大部分功能,是否有机会选择新供应商?现实情况是,新供应商通常给其他OEM开发类似的功能,这些OEM与当前OEM有很大的功能重叠。因此,供应商之间的竞争是真实的,因为他们都有一些已经开发的功能。

然而,供应商评估中经常忽略的一个微妙的考虑是,即使开发的功能相似,新供应商的代码也不同:首先,功能相似性仍然包含不同汽车之间细微的行为差异,这些差异表现为代码中某些变量的不同范围和初始值。其次,代码的内部设计和结构不同,因为它们取决于公司的开发人员和编码实践。

然而,这两个细微的差异在实践中产生了重大问题。首先,供应商应了解所有产品要求,尽管已经开发了大部分功能;这需要大量的详细需求评审工作,以确保产品符合需求。其次,供应商应确保软件与硬件的集成:软件兼容性、信号交换技术以及硬件处理器和内存负载要求。第三,更改现有代码中某些变量的初始值和范围以符合OEM要求可能会触发一系列软件缺陷、更正和更新,这些缺陷、更正和更新只会随着时间的推移而消退。如果变更或缺陷很多,可能会影响生产。

如果供应商在软件开发方面有很强的能力,那么上述问题就会得到缓解。但是高能力只能解决部分问题。另一部分在于软件的性质;如果在开发中有足够多的更改,那么软件缺陷肯定会出现。软件是一个复杂的工件。预计变化的后果是不可能的。时间是一个独立的参数,它允许软件的成熟和缺陷的消退。因此,每次OEM考虑为后续项目更换供应商时,都应该考虑到新供应商需要更长的时间来实现软件的成熟和适应。


申明:整理自外文文档,侵删


END
投稿合作:18918250345
汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 119浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 100浏览
  • 自动化已成为现代制造业的基石,而驱动隔离器作为关键组件,在提升效率、精度和可靠性方面起到了不可或缺的作用。随着工业技术不断革新,驱动隔离器正助力自动化生产设备适应新兴趋势,并推动行业未来的发展。本文将探讨自动化的核心趋势及驱动隔离器在其中的重要角色。自动化领域的新兴趋势智能工厂的崛起智能工厂已成为自动化生产的新标杆。通过结合物联网(IoT)、人工智能(AI)和机器学习(ML),智能工厂实现了实时监控和动态决策。驱动隔离器在其中至关重要,它确保了传感器、执行器和控制单元之间的信号完整性,同时提供高
    腾恩科技-彭工 2025-01-03 16:28 170浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 45浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 85浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 71浏览
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 75浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 173浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 104浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 145浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 127浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 80浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦