2024年度
-EVH1000-
敏捷及ASPICE在
汽车软件
开发中的探讨
背景
ASPICE(Automotive SPICE)作为汽车行业的软件开发过程评估标准,旨在确保高质量的软件开发和项目管理。然而,在实际应用中,企业往往会面临沟通、效率和资源等诸多问题。尤其是在国内环境下,ASPICE的实施和认证过程往往被过度教条化,导致很多自动化的工具和方法无法得到有效应用,增加了实践难度。在互联网领域流行的敏捷开发是否可以引入汽车软件开发呢?
表 1:ASPICE流程
分析
不可否认的是,ASPICE在帮助企业提升软件开发和管理水平方面具有一定的作用。特别是在企业缺乏软件管理经验的情况下,通过引入ASPICE的相关要求,可以推动企业改进软件开发流程,提升软件质量。然而,随着级别的提升,ASPICE的要求逐渐变得繁琐和冗余,大量时间被用于准备并无实际作用的文档,以应对认证审核。这种现象在国内尤为普遍,一些企业甚至通过堆砌文档来宣称自己达到了ASPICE的更高级别,以此作为对外宣传的手段。
表 2:ASPICE的等级
在实际执行过程中,由于系统、架构、软件和测试等分工过于详细,边界感非常强,导致工程师在发现问题后的分析链路和解决链路变得冗长和低效。同时,ASPICE强调必须有完整的文档和上下游追溯关系,这使得工程师将大部分精力花费在这些方面,而忽视了软件开发本身。此外,软件层级在开发上可能存在的多对多关系,也增加了有效管理的难度。一句话概括,ASPICE在某种程度上解决了水平能力一般的开发人员及团队如何设计出高质量软件的问题,代价就是牺牲节奏。
ASPICE作为一种典型的瀑布式软件开发方式,在全新开发的软件中可能会面临更大的挑战。全新开发是指系统需求还不明确将来会有多次变更,软件实现方式也不明确需要时间去摸索,相应软件架构也不明确。在这种情况下实施ASPICE可能是个灾难,沟通、效率和成本都会是很大的问题,流程和文档可能占据了大部分的开发时间,项目因此发生延迟,但经常老板和客户都很急。
因此,笔者根据过往项目经验建议在这种情况下先采用敏捷开发方式,暂不考虑各种流程规范和文档,先用几个Sprint(敏捷开发的开发周期,通常为2-4周)把软件开发出来,实现70~80%的功能,这样软件架构基本确定,后期变更也较少。然后在这个基础上再实施ASPICE。这样可以兼顾开发效率和软件质量。
表 3:软件开发方式,敏捷 vs. 瀑布
然而,这种敏捷和瀑布开发方式相结合的方法也存在一定的风险。如果前期敏捷开发阶段没有充分考虑软件的可读性和可维护性,可能会导致后期按ASPICE进行规范开发时面临巨大的困难。因此,在前期敏捷开发阶段就需要找精兵强将,汽车软件的高手(通常是同时具备某一领域深厚的专业知识和广泛的跨领域知识的T型人才),确保敏捷开发软件的高质量。
结论
总的来说,ASPICE保证汽车软件质量中具有重要的应用价值,但其实施过程中也面临着诸多问题与挑战。通过明确目标、提升团队协作和沟通能力以及合理配置和利用资源,我们可以更好地实施ASPICE并发挥其最大价值。同时,对于全新开发的软件项目,我们可以尝试采用敏捷开发与ASPICE相结合的方式来进行,以兼顾开发效率和软件质量。
千星奖评选开始报名啦~
关注我们
/ About us /
欢迎加入新能源汽车产业交流群
关注公众号后台回复关键词“社群”
即可获取入群方式
扫码报名咨询
参会详情咨询
联系人:张晚晚
电话:13671990811
👇👇👇点击“阅读原文”,报名参加“EVH2024新能源电驱动协同·融合·创新年会”!
说明:本文来源网络;文中观点仅供分享交流,不代表本公众号立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。