在汽车软件开发这一领域,敏捷框架的使用成为了关注的中心。一方面,V型流程中关于需求“冻结”的做法在工程实践中难以实施;另一方面,敏捷开发在汽车供应商那里只被应用于某些阶段。这些问题亟待我们进行深入的探讨。
传统V型流程的困境
在汽车软件项目中,通常遵循的V型流程规定,需求需先行“冻结”。然而,在真实的工程实践中,这往往难以实现。比如,在汽车软件的研发过程中,需求会随着项目进展不断变化。例如,在测试不同环境时,一旦发现新的硬件兼容问题,需求就必然要做出调整。此外,开发过程中还存在着许多不可预见的因素,如突发的技术难题或新的市场需求反馈,这些都使得需求难以保持不变。
在需求“冻结”的基础上开展开发与测试团队的工作,实践中常使得工作进度受阻。若需求被迫调整,软件及测试团队先前投入的大量工作可能需重新进行,从而造成资源与时间的双重浪费。
敏捷开发流程的局限应用
汽车供应商普遍仅将敏捷开发应用于产品研发环节,而非贯穿整个生产流程。这主要是因为人们普遍认为,敏捷开发无法完全满足与安全相关的软件开发需求。汽车安全至关重要,软件故障可能引发严重后果。汽车软件必须符合严格的安全标准,特别是那些涉及自动驾驶和制动系统的软件。
只是部分采用敏捷开发流程,便是对这种高效开发手段资源的极大浪费。实际上,只要我们攻克与安全相关的问题,汽车软件开发的整体效率就能得到显著提升。在具体的项目操作中,若不能全面运用,将导致各环节间沟通协调的成本增加。
CV阶段的敏捷应用重点
在CV阶段,主要任务是打造一个可运行的系统,并制作相应数量的文档。在汽车软件开发的CV阶段,若能早日开发出可运行系统,便能提前对产品进行测试和验证。例如,一些汽车企业便在此阶段成功推出了自动驾驶辅助软件的早期版本。
撰写一定数量的文档对于完成“尽职调查”大有裨益。这样的文档不仅能让开发过程有迹可循,还能根据文档的反馈来调整开发策略。然而,对于“适量”的定义,各企业间可能存在差异,需根据项目的大小和复杂度来定。例如,一些小型企业可能仅需准备少量核心文档即可。
在DV阶段的Pre环节,我们需要对CV成果进行详尽的需求分析,这包括但不限于对汽车智能网联功能的深入需求分析。在具体工作中,借助前期CV阶段的可工作系统,我们可以更高效地进行相关安全分析。
在DV阶段,团队的目标不仅仅是进行软件重构,还包括编制诊断功能等任务。以汽车发动机控制软件为例,我们需在确保安全需求的前提下,重新优化算法,并编制出诊断故障等功能,这一点至关重要。
敏捷应用的产出要求
项目各阶段必须产生可操作的工作成果,比如可执行的文件等。汽车企业的软件项目不能仅将需求管理软件模块或文档视作成果。它们必须具备实际运行或模拟操作的能力。
每个阶段都必须同时生成软件、需求以及测试文件。例如,在汽车车载娱乐系统软件的开发小阶段结束之际,必须有一个可运行的软件版本。同时,还需要一份完整的需求文档,以此作为开发的依据,并配合测试用例文档来验证功能是否满足要求。
敏捷框架的效益
在汽车软件开发领域,运用敏捷框架是满足各项需求的有效途径。比如,在安全层面,通过在DV阶段进行安全分析及重构,确保软件的安全性。然而,在实际的汽车软件开发过程中,若安全得不到有效保障,企业将面临可能引发巨额诉讼赔偿的风险。
转换至敏捷框架虽可能带来一定损失,但长远来看,收益将远超这些损失。在项目成本、产品上市时间以及产品质量等方面,采用敏捷框架都能显著增强项目的整体竞争力。
希望大家能谈谈对汽车软件开发中应用敏捷框架的看法。你们认为,向敏捷框架转变过程中最大的障碍是什么?