资源描述
未来汽车研究:代码为王,车企如何掌握 卓越软件开发能力
用数字说话:软件的重要性是如何后来居上的
苦千趋势凸显了汽车软件与日剧增的重要性。第一个趋势与 软件和电气/电子市场的迅速扩张有关,2020年到2030年, 这个市场预计将实现12%的年复合增长率一一比普通汽车 销量的预期增速高出三倍多。有儿个领域增长最为强劲,包 括软件功能(年复 合增长率达11%)以及集成测试(年复合增 长卓为12%) o
复杂度不断升高,但开发效率进步缓慢
无论功能层面还是架构层面,汽车软件的复杂度都在升高,而 开发工作的效率却没有以同等速率跟上。我们的研究显示, 软件复杂度在过去十年已增加到原来的4倍,而软件开发效 率只提升了 1到1.5倍。这个问题在变得日益复杂的大型模 块中最为严重,如信息娱乐系统和高级驾驶辅助系统 (ADAS)O相比传统的深度嵌入式软件,开发这些模块的效 率大约低25%到35%o
管理需求的变更尤为重 要,因为我们的研究显示,对汽车 软件的种 种需求己经变得过于细化,以至于拖慢了开 发进 程。
按照最佳实践,OEM应当基于客户价值对各项需求进行聚 类。第一个层级应当主要 包括面向客户的需求(通常被表 述为用例)。另一个层级主要包括技术或实施方面的需 求 (通常被表述为赋能因素),比如某个特 性所需的内存。
这个方法可以保证OEM着重关注价值创造,并能在软件开 发期间设定 合理的优先事项。随着车企将各种需求划分到 多个层级,以下工作能够起到帮助作用。
将需求与战略和客户价值挂钩。成功的软件开发需要根据 客户反馈对需求进行持续 的调整和修正。虽然企业在初期 就应根据其商业战略和目标定义软件需求,但它们也应根 据客户反馈和开发进度周期性地做出调整。
确保端到端的可追溯性。通过在整条价值链上对需求进行 密切追踪,车企可避免做 无用功,加快开发进程。但是, 只有当车企的开发流程和工具链能够从定义到验收全过 程实现需求的严格可追溯性时,车企才能 做到这一点。这 种明确性有助于车企了解清楚各项需求(客户观点)、需要 的功能(开发者观点),以及各项交付成果(测试 者观点)。 车企必须分四步实现端到端的追踪,这要 么需要用到少数 几种高度集成的工具,要么用到四种专业工具,并搭配相 应的接口。这些步骤是:
(1) 对需求进行追踪,从特性到构件对这些 需求进行细化 和具体说明;
(2) 管理待办清单,这项工作有助于各团队 在软件开发冲 刺时管理好各项需求的覆盖范围(与下一个步骤密切相关);
(3) 追踪代码变更,包括对代办项目的更新;
(4) 通过开展测试案例对需求进行验证,并检查测试案例 的通过■失败状态。
利用工具将各项需求关联起来,用户能够高效地在项目的 每个阶段实施变更,从而满足监管对端到端可追溯性的各 种要求(例如,ASPICE或UNECE5)。利用这个方 法, 我们能迅速弄清楚哪些变更影响到了哪些工作成果。当遵 循敏捷流程开发软件 时,此类需求变更是正常的,也是可 取的(如基于客户反馈的变更),企业应当利用各种流程 和工具对它们予以支持。在软件开发工作的传统瀑布式流 程当中,此类变更是 罕见的,而且通常也预见不到。
避免过度细化,创建明确的需求类别。企业 可以建立一些 最佳实践,对软件需求进行具体说明和分类,并拟定精简 的测试办法。一份优秀的需求说明应当是清晰明确的,而 且 允许测试工作不受其他需求影响。与组合管 理一样,企 业应当对不同类型的需求加以区 分。常见的需求类别包括 法律监管类、安全 类、战略类,以及必要改进、客户价值、 成 本赋能等因素。另外,企业还必须确保,凡 是需求之间 的依存关系都应当是透明的。很 多企业己经将这些规则融 入到自己的软件 开发流程和培训课程之中,以便优化对需 求的处理和评审过程。
开展优先排序,进行持续调整。企业既应根据具体的商业 论证和战略目标,也应根据在整个开发过程中(例如在测 试过程中)获得的客户反馈和和经验对软件需求进行评 估 和优先排序。企业应当定期对需求进行重新评估,并在一 份公开透明的待办清单中对其加以维护。
很多企业任命了产品负责人,这些人拥有宽广的知识面,
可以做出产品功能取舍,组建跨职能团队,
并确保各职能
部门就各项需 求达成共识。根据最佳实践,
产品负责人还
需要负责遵循最佳实践,并对需求和用例的
待办清单进行
维护。
B.在哪里开发软件:组织、地点、人 才与合作伙伴
大部分车企缺乏处理大规模软件开发工作所需的组织基 础。它们面临多重挑战,有的在执行层面极少或没有划分 出明确的职责,有的没有足够的软件工程师和架构师。凭 借明确软件开发工作所需的组织架构、地点和人才策略、 “自研或外包”策略,以及所需 的合作关系生态圈,新的运 营模式将会解决 这些问题。
BL调整组织,建立全球卓越软件中心
在组织层面,大部分车企还没有做好准备,无力应对致使 软件重要性攀升的ACES趋势。例如,OEM就软件问题进 行决策时通常比较缓慢,很多车企对于车载平台的软件、 电 子设备策略,以及相关预算的主要权责尚 无明确的划 分。为了在新形势下保持竞争力,车企必须重新思考其组 织设置。此项工作 的一个主要目标,是要在端到端开发流 程期间减少在架构定义、需求定义以及开发这几项工作之 中的接口。通过增进各团队在各 阶段的共识和协作,车企 可以避免做多余 的工作,并优化各种既有的和全新的能力。
很多车企已成立一个集中化的职能部门,依 靠该部门负责 软件架构设计,并分享己固化 的最佳实践。例如,一家OEM 最近成立了一个中央职能部门,该部门聚集了 5000名软 件 开发人员。然而,大多数情况下,OEM对 软件开发仍采取 较为去中心化的方法。
几种组织类型。尝试改进软件开发工作 时,OEM可以采用 几种常见的组织类型。对于每家企业而言,能反映公司优先 事项 的选项,就是最佳选项,这些优先事项包 括加快决策、 减少接口、明确职责等。更重要的是,企业必须开展专项 工作,以便协 调来自不同组织职能的要求,这些职能包 括 研发、采购、生产、销售和后市场等部门,这是因为这些 职能对软件的需求和生命周期变更可能彼此存在冲突。此 举将确保无 缝的用户接口和高效的开发流程。除了重塑 组 织,车企还必须对弥合软硬件团队文化差距和协调工作流 程进行大量投入以开展相应行动。这些工作需要持续的变 革管理,但它们将有助于车企成为软件开发重镇。
在定义组织架构时,汽车软件开发单位将 对职能角色、产 品或项目,以及技术构建理 想图景。不过,这个组织架构 一般会从前 述的几个维度中选择一个作为核心。
在此可参考一个强调职能角色的组织架构。在这种模式下, 企业将从软件职能组织抽调个体成员,派往针对特定产品 或平台的 项目。产品和技术将通过面向各职能单位 的间 接、“虚线式”的汇报架构得到体现。这种架构为企业赋予 了最大的灵活性,因为它 们不需要为了适应产品/项目和技 术方面的 额外要求而重塑组织。然而,这种架构之下 的开 发效率可能不是最佳的,这会使成立 跨部门职能变得更有 必要,如项目管理、架 构和人员配置部门。
在第二种类型中,组织架构侧重的是项目,诸如针对特定 客户、车系、车型乃至平台的 项目。这种类型可利用“虚线 式”汇报条线和成熟流程将产品和技术这两个维度联系起 来。这种类型使得客户和终端产品成为组 织的首要焦点。
从不利方面来看,它提高了冗余工作的风险,也在不同的 产品或项目团队之间造成了各种障碍,这可能对技术 移交 形成干扰。强大的平台和架构有助于缓解这些风险。
在第三种类型中,组织架构侧重的是技术和专业领域,如 网络、人机界面,或是后端。在这种模式下,企业从技术部 门抽调个体 成员派往具体产品的项目。通过虚线汇报 和成 熟的工作流程,这个方法能实现对技术和职能这两个维度 的聚焦。虽然这个模 式有助于养成深厚的技术和专长领域, 但 它在项目范围、需求、规格方面的灵活性很 差,即使这 几方面在项目期间发生变化时也 是如此。在开发和维护多 种产品时,企业通 常会采用这个类型。
B2.获得并吸引顶尖人才,开展内部能力 建设
虽然车企必须在诸多方面表现优异才能赢得这场软件竞 赛,但吸引和留住顶尖人才很可能才是最重要的维度。
大部分OEM己将软件开发工作大量外包并依赖战略合作 伙伴关系。ACES趋势极大 地提高了软件的重要性,即便软 件开发效率有迎来几番增长的潜力,2030年前对于软件工 程师的需求仍可能增加三到四倍。由于汽车行业正在与科 技企业以及其他行业 正面竞争软件人才,车企需要采取较 为大刀阔斧的举措才能改善顶级开发人员的招募 工作。否 则,不断扩大的人才缺口还将继续 扩大。
汽车软件人才的招聘和挽留计划应当侧重于实现差异化。 根据我们的对标分析结果,相比只具备同质化经验的团队, 具备多样 经验的团队在开发效率方面的绩效要高出 两位 数的百分比。企业可以通过开展以下几 项工作改善人才招 募现状,要加大对全球软件开发人才资源的利用。综合选 址策略有助于企业扩展其软件开发活动、构建相关能力并 提升产能,同时确保 成本可控。而这也有助于企业争夺顶 级人 才。一些创新企业己经在数字人才热点地区 建立了新 的汽车工程中心,例如自动驾驶中心。不过,大多数传统 型企业在很大程度上 还是保留了其历史足迹和硬件中心, 但这可能使其吸引和留住软件人才的努力变得复杂化。如 果这些企业在关键区域的多个地 点开展业务的话,就可以 从附近的大学和 其他教育机构吸纳人才。为加强联系,这 些企业可以与大学合作开展访学实习计划,使其能够接触 到应届毕业生和其他专业技能人才。
尽管全球足迹可带来诸多好处,但也需要 合适的运营模式, 才能避免远程和/或分布式工作的普遍问题。例如,研究表明, 开发 项目每增加一个新站点,软件开发效率平均 会下降约 10%o
使企业对软件人才更具吸引力。我们的研 究表明,薪酬、 职业发展机会、工作类型和企业文化是留住软件工程师的 首要因素。目前,车企在上述这些方面均落后于科技企 业。 为弥合差距,前者必须针对所有重要的影响因素制定独特 且有针对性的雇主价值 主张,不能再简单地固守传统福利, 如就业 保障和企业配车等。
鼓励内部能力建设。一个合理的做法是,尽可能重新培训 目前以硬件为主的员工,让其 在技能升级后承担软件相关 职责。例如,企 业可以培训硬件项目经理来监督软件项目。 但是,只有当企业在软件专业人员和经过再培训的硬件专 家之间保持良好的平衡时,这种做法才行之有效。这个平 衡视具体企 业情况可能有所不同,而且难以量化。不过,根 据经验,许多企业将比例保持在2: 1 (即2位软件专业人 员:1位再培训硬件专家)时,效果最好。要获得最佳结果, 企业应制定有 吸引力的发展计划和在职培训计划,帮助员 工快速学习新的软件语言和方法。此外,还应强调终身学 习。
尽管再培训可能会弥补许多人才缺口,但企业不应忘记, 大多数人都是在工作多年后才 发展出根深蒂固的解决问题 模式。出现意外问题时,硬件背景的软件员工可能采用固 化的问题解决方法,而这些方法可能更偏线性而非敏捷 性。因此,企业应尝试在培训期间 鼓励采用新的思维方式。 若能成功的话,软 件专家和再培训员工之间的差异将迅速 缩 小。相反,忽视这种做法则可能妨碍整个组 织的敏捷转 型。
提供职业路径。与技术企业相比,大多数车 企在明确职业 路径和成长机会方面仍存在 不足。之所以出现这种差距, 是因为专家职 业路径在车企还未广泛普及。此外,OEM也 很少定义职位期望和资历级别。想要继续晋升的专家就只 能担任管理职务,因为没有其他选择。
为了提高留存率,车企可以引入明确的职业 路径,每个级 别都有特定的技能要求。一些路径面向业务专家,另一些 则针对管理人 才。晋升路径可以是纵向的(从初级到高级 开发人员再到团队负责人),或者同样重要的横向轮岗, 持续六个月或以上,侧重培养不同的技能,包括与领导力、 项目管理和软 件开发有关的技能。企业还应制定专门的培 训计划,包括职位和跨学科培训,开放给更 大范围的员工。 明确的职业路径有望提高效 率,因为专家通常比新手效率 更高。
B3.明确清晰的“自研或外包”策略并建立
合作生态圈要保持来之不易的竞争优势并避免成为同质 化的硬件平台开发商,车企必须制定明 确的客户战略,确 定差异化配置和价值主张,创建可以对开发模块进行逻辑性 分解的模块化体系架构。完成这些任务后,车企即可着眼于 三大维度,从而制定明确的“自研或外包策略:
(1) 开发工作所在阶段,例如系统集成或验收测试;
(2) 软件技术栈;
(3) 软件领域或模块,可能涵盖信息娱乐或动力总成等领域。 企业应确定并定义这些维度上的控制点,从而基于其整体策 略(例如针对关键知识产权、质量标准和差异化创新等)确定 “自研或外包”策略。
当然,企业在决策过程中还必须考虑市场采购的难易程度。 其他因素(例如成本)也很面耍但通常不是决定性的。要改善 决策,OEM可基于优先级和市场情况权衡各个因素。
企业决定内部自行开发软件时,必须评估对内部工程能力的 影响,确定现有人员是否且各所有必要的能力,并检视组织 架构和流程。如果企业缺乏合适的能力或能力不足,则应探 索收购或合资机会、从而确保其对关键控制点的把握。
这个日渐扩大的差距可能会影响车企未来的成功。车企需要 投入更多资源开发软件,并在软件生命周期中对其进行维护, 这可能会削弱自身在创新和应对竞争对手方面的能力。访谈 期间,有位企业领导注意到,如果复杂度持续升高,而效率 原地踏步,那么仅软件维护这一项,就会迅速耗尽所有的软 件开发资源,不会给创新留下丝毫余裕。最终,复杂度和效率 之间的差距将削弱成本竞争力,造成严重的财务和商誉问题。
显而易见,软件开发实力排在前25%的企业,相比实力垫底 者,效率高出3倍,产量高出3.5倍,质量好上6倍。因此,如果企业决定外购软件,则必须在扩展评估过程中明确具体 的采购模式,扩展评估涉及开发合作伙伴的筛选和签约工 作。针对复杂软件系统考虑部分外购时,企业最多应签约两到 三家供应商。
图5
企业在进行,•自研或外包”决策时应考虑三大维度
汽车示例
外发过很所处阶股
轼件技米找
・&用租序和助nt ・罹作质此
•段件独隼
・国件和信号々理
结牛和沦理能力
・Ka枝也和工八
•雄虻骨理
・后靖
软件旅城/模块
月关/琳刈 轸知炭系
AOAS/AO1
劫力怕成/威企 本身分追授
/貌源
开发
我们的研究表明,超过这个数量就会导致开发效率下降 65%以上。
在全面的“自研或外包"策略中,企业应采用 标准的开源组 件,因为它们在软件开发过程中可提供巨大的优势。不过, 企业需建立明确的开源模块使用规则和流程,并注意许 可、责任和维护问题。通常,OEM和供应商 需签署正式的 法律协议,才能在产品中使用 开源组件。
最后,车企应发展战略合作伙伴关系,确定 生态圈合作企 业,因为这些联系有助于相互学习,同时加快开发速度并 保持较低成 本。共同开发还可降低较晚进入市场所产生 的 风险。
在“自研或外包”策略中,OEM会将差异化功能的生产留在 内部,而将非关键软件的开发 外包给其他供应商或承包商。 除前述优势外,该方法还将大大减少对软件人才的需求。
C.如何开发软件:敏捷、解耦、测试
传统上,车企一直都更重视硬件,其次才是 软件。现在必 须重新审视这种观点以及开发方法,因为软件现在是产品 开发组合中的一个主要的价值驱动力。这个转变要求车企 实施大规模的敏捷方法,解耦硬件和软件 开发流程,同时 提高测试自动化和持续集 成的水平。
C1.实施大规模敏捷方法
敏捷方法在硬件和软件上得到大规模应用时,可使企业提 高开发效率并快速应对环境变化。通过敏捷转型,各行业 企业都实现了开发效率和实施速度30%的提升,同时 将发 布时的残留缺陷减少了 70%以上。6因 为降低了项目预算、 时间和质量方面的风险,所以敏捷在应对复杂性挑战上发 挥了至关重要的作用。
迄今为止,只有少数车企自始至终地推广敏 捷软件开发的 实践做法。尽管许多企业都在试点,尤其是在高级开发项 目上,但只有 少数真正大规模实施了敏捷方法。
采用率低的原因可能在于汽车行业的应用 有非常具体的要 求,因此很难在整个组织中 实施标准的敏捷方法。此外, 汽车行业使用 的敏捷工具必须能够处理系统复杂性、与硬 件开发之间复杂的相依关系、以及网络安全、车辆安全性 和质量相关的严格法规要求。
与硬件开发的依存关系。要有效管理相依关 系,OEM可将 系统工程与需求管理技术相 结合,采用大规模的敏捷方法。 这些做法可确保流畅的软硬件集成,以及开发时间线的同 步。
涵盖总体架构、集成和测试的经典系统工程实践做法将确 保集成化的产品生命周期 管理,并帮助企业满足法规要求。 企业可利用系统工程实践,明确车辆和领域整体架构。反 过来,这又为敏捷团队提供了高 层输入和边界条件。基于 这些输入,敏捷团队可以先细化软件需求,再进行组件的 开发 和测试工作。开发周期结束时,当领域、车 辆集成和 测试活动合成完整系统后,团队即 可关闭系统工程回路。
从项目管理的角度来看,目标是使各部门对控制单元和领 域架构专用要素的优先级和 所需同步点达成一致意见。例 如,企业应优先考虑并跟踪某些功能的交付情况,因为 这 些功能的启动对于时间敏感事件如冬季测试,是必不可少 的。这样,在看总体需求 完成指标时,就只需监控那些不 太重要的功能了。
图6
车企应将总体系统工程与敏捷软件开发相站合
杀藐工权与触技相绪合
系统工岂
奉怖如慢堤总绿架构.作为 敬拢神办事喉时输入和泡葬
法规要求和行业标准。敏捷开发做法在汽车行业环境下完全 可行,且大大提升了效率,但企业必须考虑法规以及硬软 件的基本同步问题。
因此,可能需要更改部分传统的工作流程,例如创建认证 组件的方法(从而符合ISO 26262标准)。在传统瀑布式开 发模式下,认证组件的生成顺序与工程活动相同,即规 划、 客户需求、系统架构、软件需求、软件实施和软件测试。
而在敏捷开发模式中,最好 的方法却是反向认证,即在项 目结束时,也 就是所有软件需求和代码都确定、固定之后, 创建认证组件。这种做法可最大程度地减少浪费,因为不 用多次生成认证组件,并且需 要软件安全审核员从项目支 出保持一致,且 与团队关系良好。软硬件解耦有望进一步 简 化ISO 26262认证工作,因为重复使用的软 件可能会通 过经验证的参数进行合规验证,即当其他应用程序已经使用 该软件而未出 现问题,则证明可使用该软件。
目前,诸如ASPICE之类的行业标准规定所有需求都必须 可追溯,并能够审计所使用的 流程和工具。需求的可追溯 性与敏捷实践 做法兼容,可通过自动化工具链高效实现 (请参阅A3部分的需求管理,以及D2部分的标准化工具 链)。但是,流程和工具的审计需求可能会限制敏捷技术 固有的持续改 进系统。尽管“敏捷”团队可独立地改善其 流 程和工作方法,但汽车团队却必须符合文 件标准的要求, 并确保各个团队之间的同步,这些行动可能拖慢其进度。
何时采用敏捷方法。尽管需要预定义的待办事项以及可审 计的流程和工具,汽车软件团队仍可即刻采取大多数敏捷 实践。但是这会极大地改变他们的工作方式。
转向敏捷方法时,组织必须对宏观层面的运营(包括项目 组合、资源和项目管理)进 行关键设计的决策。通常,只
有先进的开发部门,例如OEM的“软件工厂”,才采用规模 化的敏捷方法,即所有部门都完全采用新 的工作方式。但 是也有例外,例如,一些汽 车先驱企业己实施了规模化敏 捷方法,例如规模化敏捷框架(SAFe),指导其总体研发 工作。
与之相反,各个团队则应始终遵循已建立的敏捷实践开展 业务。例如,跨部门代表 和/或团队成员同址办公以及有时 间限制的 迭代都非常重要。与其他行业一样,在将敏捷方 法应用于负责各个功能的团队时,其优势可能最为明显。 当OEM向敏捷流程过渡时,还必须:
将开发供应商集成到其敏捷流程中,促 进全面的应用; 调整采购流程,从有明确预定义和预协商的基于规格的合 同关系转变为基于冲刺的开发合作伙伴关系;
解决影响供应商与OEM共址办公或敏捷 合作的法律问题。
宙7
级捷方法可推动多个维度上的变革
更车示例(非穷不)
"1
示例
从
到
闵队兼构
户只用队氏夏
茨秋人员
企状人黄
&个酢门察有依成的冏R
宛全玲•年门的黑队
工作方式、 南,和会任
监于均果的拖¥/日好
志于格果*<Pt掰体
止盛泼丸走义的网日计灯及
煌埃发布幻节慕
3韦乂,耳年次
微址方法.母,以上火
决策
腰项鼠多.由存蔑决策
尸习臭☆人(决W汗发什 么)和统挺用队(决走如 网开友)负*决实
技术与杲构
模映化义解航化敢件不钓
羊体巢构
可扩从.的n■去以丈地
州M篥构;有叶(T恭垸和技旅
星杵岭惧坐,5笼均
C2 .软硬件解耦促进双速开发流程
在流程方面,车企可采用更动态的软件周期计划,支持经常 性的发布,而非受限于严格而遥远的车辆平台SOP日期。将 产品及生命周期管理与硬件解耦是脱离独立整车 (one-vehicle)SOP方向的关键。为此,必须保持独立的待办 事项和路线图,同时明确软硬件开发之间的同步里程碑。在与 供应商合作时,OEM可能需要重新签订新的协议。最后, OEM必须加强自动化软件的使用,集成测试和部署。
与敏捷方法一样,系统开发团队可管理和定义硬件和软件团 队之间的接口,明确划分硬件/软件待办事项,确保各层级的同步。显然,如果硬件和软件彼此独立,即可分设架构冻结 点,这样就无需同步了。
像敏捷方法一样,解耦也需有若干先决条件,包括标准化和模 块化的架构以及可靠的测试方法。如前所述,企业可以使用 强大的中间件将软件与硬件解耦,中间件可以提取硬件能力 (middleware layer that abstracts hardware capabilities), 通过标 准化API将其提供给需要的功能和服务。但最关键的解耦抓 手其实是具有鲁棒性的车辆测试方法。因此,企业必须定义 提供和维护测试车辆的方法:例如硬件在环或软件在环系统, 或者是更广泛的仿真基础架构。
图8
企业通过解耦软件和硬件开发周期,从而获得许多优势
软件
幌妁、升发和渤试
续件
虬划、4■发加割试.
耕拥可村汶开 发速度,&行
繁的或•本.
之间岭侍作
▼
发布
▼
▼
5
解纺
敏捷方法和硬件/软件开发解耦都对价值链的下游有重大影 响,尤其是对于采购组织 而言。例如,采购需从传统的瀑 布式采购流程转变为更适合敏捷和解耦开发方法的模式。 在实践中,这就要求OEM遵循某些最佳实践做法,例如不 断评估软件要素对于战略的重要性,了解需求将如何演变 以及确定每种情况下最合适的采购模式。这些变化要求对 软件总拥有成本以及新的合作模式有所了解,新模式侧重 战略合作伙伴关系而非多供应商采购。
C3.提高测试自动化、完善持续集成,确 保尽早发现错误 随着软件数量的增加以及对连续功能更新 的更大需求, OEM必须尽快发现并解决漏 洞和接口错误。如果无法直接 解决问题,漏洞可能会大量积压,从而消耗掉所有资源并 使问题跟踪复杂化,导致开发延误并产 生更多的验证工作。 与敏捷实践一样,儿乎没有车企大规模采用持续集成或自 动化测试的方法。但只要它 们采用这些做法,即可降低发 布风险,同时 大大提高开发效率。根据我们的经验,企业 可 将开发效率提高40%以上,同时将残余 缺陷密度降低60% 以上。
要仿效先行企业,车企应采用两个相互关联的软件开发最 佳实践。首先,应每天几次将代码集成到共享存储库中并 通过自动构建进行验证。尽早集成代码有助于开发人员“快 速失败”(及早发现问题),然后通过 持续集成实践、工 具和自动化手段,轻松 隔离问题,使之不会产生更大的问 题。供应商则可独立地在系统层面上获取这些益处。在整 车层面上,OEM需要解决IP限制问题,自研编码(insource coding)或采用“白盒”方法,与供应商共享完整代码。解决 方案的第二个要素是测试驱动开发和自动化流程,即在编 码开始前就对测试进行定义,然后在代码集成后自动进行 测试。
软件设计人员和开发人员(而不是独立的测试部门)在开 发过程中与客户一起对测试进 行优化和迭代。该方法迫使 开发人员在编 码开始前即要考虑如何使用系统以及如何 实施这个问题。最终,全面的自动化测试套 件将使可持续、 冲刺成为可能。
D.如何促进软件开发:性能和工具链
为了优化软件驱动型运营模式的效率,企业 应采用一流的 性能管理方法,并通过构建软件开发工具链,建立最先进 的软件开发基础架构。
D1.实施性能管理,涵盖数据驱动的开发 效率、项目成熟 度和质量度量
随着软件复杂性的提升,车企必须升级其性能管理体系, 采用标准化、数据驱动的指 标对开发效率、项目成熟度和 它们的产品面市时间更短,软件功能每提升一个档次所需的 开发成本也更低。
图1
软件复杂度提高的速度比开发效率提高的速度更快
备时别软件花奈度与斤发效车相片增幅.巴根据泠车软件特征做了指敷化
硬件方面,实力最强和最弱的企业在业绩上的差距相对不那 么明显,因此,在这个领域追求差异化的机会也相应更少。
降低复杂度,同时提升效率
为了在这个迅速变化的环境中取得成功,企业应当通过减少 开发和维护软件需要做的工作,以求最大限度地降低复杂 度。这个策略涉及限制各平台和生命周期阶段的功能和特性 的版本数量,同时,企业必须加大对构件的重复利用。至于 开发效率,企业应当尝试在软件开发速度上向数字原生企业 看齐,以提升开发效率。由于软件创新的整体水平不会下降, 企业还必须提高其软件开发和维护的产出量,以便交付在市 场上取得成功所需的产品和服务。
质量进行度量。只有自动化的、数据驱动的洞见才能赋能基 于事实的实时性能管理方法,主动暴露出时间、成本和质 量方面迫在眉睫的软件问题。
一流的软件性能管理系统应在以下三个关键事项上脱颖而 出:
(1) 建立全面的KPI (如成本、时间和质量KPI指标)体 系,确保每个指标都与总体 业务目标和运营任务挂钩;
(2) 开发一个有效的问题上报系统,包括标 准会议这种形 式,侧重简单、快速的汇报、决策和上报;
(3) 采用工具化、自动化的开发效率测量技 术和代码质量 衡量指标,确保对软件开发效率和质量进行客观的测量。
D2 .升级开发工具链
车企可引入标准化软件开发工具链,支持持续集成和标准 API的使用,从而提升开发效率。典型的工具链组件包括侧 重构建、持 续集成和测试自动化的源代码管理流程和 工 具,测试自动化包括测试执行、测试结论 生成和测试报告 生成。如上所述,该工具链还无缝集成了需求管理方面的 所有工具。
构建一套集成、高度自动化的工具链可在开发过程中带来 极大益处。例如,可降低复杂 度从而提升内部效率,可使 用来自外部构建模块的成熟技术。根据我们的研究和经验, 先进的工具链可以:
推动更快、更敏捷的开发,将代码发布或构建所需工作减 少 90%;
通过严格的质量管卡的使用而降低缺陷密度,从而有可能 将故障率降低50%o
允许企业每天进行成千上万次编译,而无需任何人工干预 总体而言,引入标准化、最先进的开发工具 链,是释放自 动化测试和敏捷方法30%至40%效率潜力的关键推动力。
这种性能水平足以使表现最佳的企业脱颖而出。车企应将 这种软件开发工具链视为高效率组织的核心部分,这类组 织都支持连续集成和标准API的使用。此类工具链还可确 保整个开发过程中软件与硬件开发工具之间高效的自动 化接口。
同时,工具链还为若干流程步骤的自动化(例如测试运行) 提供了机会。总体而言,目标就是加快开发速度,促进尽 早测试。
通常,用到的工具链和工具的数量会增加 到难以管理的水 平,从而降低透明度。为避免此问题的出现,经验丰富的 工具链管理人员应定期检查工具状况,必要时采取纠正措 施。
使转型成为现实
许多组织己开始认真采取行动,希望从软 件上获取价值, 从而抓住电动化、网联化、智能化、共享化这个“新四化” 趋势带来的机遇并从中受益。典型的转型之旅始于某个单 一挑战或主题,例如恢复软件项目的即时补 救措施、软件 “自研或外包”决策或是软件开发绩效方面的重大预期变 化。但是,大多数 企业发现,单一面向的干预带来的影响 非常有限,尤其是当企业缺乏持续改进所需的关键基础 时。因此,要建立世界一流的软件开发能力,企业应采取 端到端的转型视角。考虑到各自现状的不同,企业可能以不 同的方式进行转型。斟酌初始转型侧重点时,可 以选择以 下的某个切入点:
“是什么”:产品架构和“自研或外包”决策
目的是建立一套目标软件架构,既有具体的内控点,又有 外部合作生态圈,从而可实现 跨平台的高效且有竞争力的 软件交付。
“如何做”:开发效率提升和软件开发方法
重点是利用软件开发的关键效率杠杆(包 括敏捷研发、持 续集成)和自动化测试,提 高软件研发的效率(请参阅C 和D2部分)。
“在哪里做以合理的成本获得人才 面临产能不足、无法有效提升软件产出的企业可先从该主 题切入。解决方案包括改善 其业务足迹、使组织对软件人 才更具吸引力,从而优化人才和研发成本(请参阅B2部 分)。
“如何设置组织与治理
另一个起点是定义最佳的组织架构,明确“框线”图架构, 并说明具体的运营模式,包 括绩效引导和绩效管理,从而 加强软件交付O
要克服汽车行业当前的软件复杂性和开发效率难题,就需 要对汽车软件研发进行全 面的转型。CTO和CEO必须将这 一挑战作为 其日程上的重中之重,并立即加以应对,才 能 在当前的行业环境中保持竞争力和成功 的市场地位,而且 他们还应为更大规模的 转型做好准备,因为解决与软件组 织及其底层运营模式有关的所有问题可能需要耗时数年 之久。
降低复杂度和提高效率需要一个新的软件运营模式,该模式 着重考量四个维度:
(1) 开发什么软件,包括架构、设计以及各项要求;
(2) 在哪里开发软件,由企业内部哪个部门开发,包括涉及到 的地点人才及合作关系;
(3) 采取什么方式开发软件,这个维度考量的是开发工作 的方法论,如大规模敏捷开发,或是开发和测试流程的改变;
(4) 采取什么方式推动软件开发包括绩效管理和工具链基 础架构。
第一个维度一一开发什么软件一一聚焦的是通过模块化和 解耦的硬件/软件架构、以用户为中心的设计,以及需求管 理,来降低开发复杂度。其他三个维度所聚焦的,则是通 过提供合适的结构、流程和基础设施 提高软件开发的效率。 我们从四个维度出发,明确了 11项最佳实践,这些做法能 帮助车企 成功地解决在软件上面临的挑战。理 想情况下, 企业将同时处理好所有维度。
A.开发什么软件:架构、设计及各 项要求
在新的运营模式下,企业必须把与软件相关 的开发目标和 业务机会转化为产品、功能和 模块等层面上的可行架构、 产品及投资组合 需求。通过这个流程,企业可以详细了解 能 为其创造价值的软件类型。这个流程还将 助力企业降低 架构的复杂度,应用以用户为 中心的设计流程,改善对软 件需求的管理。
图3
新的软件开发运营模式需要对四个关键维度做出改变
&推度的放佳实成
应网以用户为中心 的设计
时软伴盆米的骨 理方乂谖行调遂
全球卓越中心
璃保会*有能力 荻取濯尖软件开 发人才资池,并 址真俺待蝶引力
降饪笑构的复泰度
A
开发什么款件
B
在哪里开发软 件
制:t漕晰的•白制 成分的•策*并定 立合作生右丽
实施结■理
±J
如何促她收件 开发
C
如何开发软件
灾筋大规橙敏址
实现慷件与软件 开发之间的的栖
升成到杯洪化的先嫌钦件开发工具饪
提高测讯的白动 化程度,实现或 熟的符埃集成
A1 .降低架构的复杂度
根据我们的研究,如果汽车软件的模块化程度不够,就会使 设计复杂度提高,也会提高项目的整体难度。另外,汽车软件 的架构构件边界往往是不理想的,这有可能导致更多的相互 依存关系,使开发人员在添加新功能时必须修改的构件数量 成倍增加。这些依存关系还可能造成一个后果:检测到缺陷 时,需要更长的时间和更高的专业水平来追踪特定软件模块 和开发团队的错误。
为解决此类问题,OEM必须大幅提高标准化和模块化程度, 这样就能实现软件在各平台之间的可扩展性,使软件复杂度 维持在可以管理的水平。车企还必须重视两项工作,一是促 成软硬件之间的解耦,二是应用服务导向型设计。
解耦架构。车企可以引入一个强大的中间件层次,利用它提 取硬件能力,并通过上层使用的标准化应用程序接口(API)使 这些能力对软件功能开放。这种软件架构可以利用各平台之 间的共性,降低设计上的复杂度,不必多次重复开发相同的 软件。
除了解耦,车企还应当创建一系列标准化的操作系统,利用 它们支持各构件之间的协调,确保互通性。很多企业己宣布 将要开发此类操作系统,但目前尚不存在统一的方法。
而且企业也还没有明确这些系统的确切研发重点和功能。 通过遵循明确的架构原理和指导原则,企业能够有效地应对 更高的系统和软件复杂度。硬件/软件解耦允许多个实体参 与模块 化开发。反过来,由于代码共性增多,模块 化软件 构建技术可增加对代码的重复利用,并减少需要的代码总 量。很多企业已着手引 入软件产品线工程(PLE)方法,以 增加重复利用,同时处理产品变更。这个方法能让一个软 件服务于多个产品、产品变体和产品系 列,还可以兼容不 同的硬件版本。软件PLE显著降低了开发和测试工作的难 度,这两项 工作都只需进行一次。
换句话说,促使硬件从软件上解耦,可促使硬件实现进一 步的“自主化”,硬件提供了标 准的计算、存储、输入/输出 和电源功能,而 软件则定义了终端用户功能。对于需要标 准 性能的应用,不同的软件功能可以利用虚拟 化和容器化 技术在相同的硬件上运行,如 有必要,还可以动态地分布 到其他硬件(例如在硬件发生故障的情况下)。对于ADAS 等存在实时性能要求的应用,针对特定硬件的软件开发工 作对于实现最优效率仍然至关重要。
以服务为导向的架构。该架构应当遵循各 项服务的定义, 反过来,这些定义则应将业 务或用户需求代码化。以服务 为导向的架 构设计既能让企业实现各核心要素的标准 化, 也能让各部门和各业务单位之间的接口实现标准化。企业 还应对单项硬件和软件要素应用标准化的设计,以便在不 影响性能的情况下,针对其他支持设备和功能规模化地配 置资源,如计算和存储资源。以服务为 导向的架构对OEM 尤为重要。实现从车辆到云端的迅速连接,不仅将提升车企 各种 车型的长期价值,也将推动车企能力的迅 速更新和升 级。
A2 .应用以用户为中心的设计技术
综观各行业,专注于开发以用户为中心的 强大设计、创造 最优用户体验(UX)的企业,将实现更高的财务收益4O 随着ACES概念持续受到追捧,软件定义的汽车成为常态, 对于OEM的整体竞争力而言,这些特征将会变得越来越重 要。即便是顶尖企业也需要做改进,原因在于汽车行业在 设计良好 的软件用户体验、提供最优的客户价值等方 面仍 然落后于其他行业。
按照最佳实践奉行的设计原则,OEM应当与终端用户合作 对新软件进行迭代,无论交付前后都应如此。车企也应当 采用新的交付模式,以便以每周或每月一次的频率 对软件 进行更新或添加,从而实现持续的优化。这些工作的周期 相比经典软件开发 工作短了许多,后者通常需要几年时间。 新 的交付模式还有一个好处,它可以让OEM与客户实现 持续的直接
展开阅读全文