一个复杂的汽车ECU开发。当时开发队伍遍布全球7个国家,10多个地区,需要同时为多款车型定制不同的软件,头疼的地方是:
- 涉及到多方人员协调,多模块集成和管理
- 不同软件团队使用的设计工具、验证工具,数据、工作流程多且难以控制
- 跨域依赖性和关系无法共享同步
- 需求变更,需求变种难以控制
- 软件质量,开发时间难以保证
- 最终交付时间压力大
现在想想,项目之所以最后成功,我觉得很重要的一点是当时借鉴了敏捷迭代的开发思想。
当时我们所有团队召开每日站立视频会议(stand-up meeting),每日提交代码到统一代码库(continuous integration),每日统一编译 (daily build),每日自动测试(daily test),每日更新Bug状态,环环相扣,基本上达到了全球所有开发部门的实时协作,工作和沟通效率极大提高。
在敏捷开发的每一个迭代周期,我们当时都遵循了ISO26262推荐的V字型开发小模式。
在每一个开发阶段,都配置有相应的工具,让工具代替人,从工程角度保证软件的质量和安全。现今提出的软件定义汽车(SDV)的概念,实施这种敏捷迭代开发模式并兼顾汽车ISO26262建议流程,是非常适合汽车软件特点的,特别是复杂的软件,更是如此。