嵌入式开发常见的风险包括:需求变更、代码质量、学习债务、团队间沟通不畅、硬件延期、软件和硬件强依赖、后期软硬件整合风险等。虽然和纯软件开发相比,嵌入式开发对硬件依赖更大,而硬件开发有耗时长、变更成本高、技能更专业因而不易结对等特点,但是敏捷作为一种应对不确定和动荡的环境并最终取得成功的方法,其价值观、原则、方法论和具体实践还是为嵌入式开发提供了非常大的帮助。目前AgileDo团队已经有 60+ 具体的技术实践和模式,以实现嵌入式开发的更高质量、快速交付、聚焦客户价值和应对需求的变更。这里分享其中的 8 个:
模块化
以用户故事的方式对业务进行“切片”,每个模块可以更早的独立进行硬件、固件和应用软件等的整合
学习左移
在转向硬件实现之前,开发和运行仿真测试,以便客户评估。通过模型更新快速响应不断变化的需求。
模拟测试
为了减少软件测试对硬件的依赖,模拟器、Mock、Stub都是常用的方式。如果项目允许,推荐实现模拟器
TDD
测试驱动开发,可以有效保证代码的质量。同时在任何可行的场合,和硬件一起测试,自动化是最佳选择
增量开发
增量(在 Scrum 方法中称为“冲刺”),通过对功能进行优先级排序,可以更早地降低风险并强调核心功能,不仅团队获得成就感,利益相关者也获得有形的价值,并且可以及时提供反馈
任务板
当冲刺开始时,工程师需要一个工