最新 如果您在嵌入式开发的敏捷转型中需要帮助,您可以 联系我们!
敏捷开发
敏捷是创造和响应变化的能力,这是一种应对不确定和动荡的环境并最终取得成功的方法
敏捷开发是一种应对快速变化需求的一种开发模式。此模式中,自组织的跨功能团队在紧密的协作中发掘用户或顾客的需求,改良解决方案。此模式也强调提前交付与持续改进,并且鼓励快速与灵活的面对开发与变更
敏捷开发是一组框架和实践的总称。框架是敏捷方法论,是团队遵循敏捷价值观和原则的约定,最流行的方法论是 Scrum 。敏捷开发同时得到了许多 标准敏捷实践 的支持,涵盖了需求、设计、建模、编码、测试、计划、风险管理、流程、质量等
敏捷宣言
- 个体互动 胜过 流程工具
- 工作软件 胜过 详尽文档
- 客户合作 胜过 合同谈判
- 响应变化 胜过 遵循计划
敏捷原则
- 1. 我们最优先要做的是通过尽早的、持续的交付有价值有价值的软件来使客户满意
- 2. 即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势
- 3. 经常性的交付可以工作的软件,交付的间隔可以从几周到几个月,交付的时间间隔越短越好
- 4. 在整个项目开发期间,业务人员和开发人员必须天天都在一起工作
- 5. 围绕被激励的人来构建项目。给他们提供所需要的环境和支持,并且信任他们能够完成工作
- 6. 在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交谈
- 7. 工作的软件是首要进度度量标准
- 8. 敏捷开发需要保持稳定的开发速度
- 9. 不断地关注优秀的技能和好的设计会增强敏捷能力
- 10. 简约----是根本的
- 11. 最好的构架、需求和设计出自与自组织的团队
- 12. 每隔一定时间,团队会反省如何更有效地工作,并对自己的行为进行调整
嵌入式软件开发
嵌入式软件是指制作并集成到传统计算机以外的任何设备中的系统。它充当设备的中央处理单元,如果没有它,设备就毫无用处。本质上,嵌入式软件系统是执行特定功能的硬件和软件的组合。嵌入式系统中的应用程序称为嵌入式应用程序,其开发目的是利用硬件的功能并执行设备的预期功能
嵌入式系统中的硬件层
- CPU:硬件层围绕CPU构建,CPU是主要的系统控制器
- 用户界面:用户可以访问的功能、按钮和操作的集合
- 存储器:包括随机存取存储器(RAM)和只读存储器(ROM)
- 电源:系统通过电源插座或电池等多种方式充电
- 计时器:测量时间
- 通信端口:嵌入式系统与其他设备或系统之间的通信
嵌入式系统中的软件层
- 为特定硬件编写的固件
- 用于设置规则和管理系统资源的操作系统
- 作为上下层软件之间提供通信的中介的中间件
- 直接执行系统功能并与最终用户交互的应用软件
嵌入式开发敏捷实践
嵌入式开发常见的风险包括:需求变更、代码质量、学习债务、团队间沟通不畅、硬件延期、软件和硬件强依赖、后期软硬件整合风险等。虽然和纯软件开发相比,嵌入式开发对硬件依赖更大,而硬件开发有耗时长、变更成本高、技能更专业因而不易结对等特点,但是敏捷作为一种应对不确定和动荡的环境并最终取得成功的方法,其价值观、原则、方法论和具体实践还是为嵌入式开发提供了非常大的帮助。目前 AgileDo 已经总结了 60+ 具体的技术实践和模式,以实现嵌入式开发的更高质量、快速交付、聚焦客户价值和应对需求的变更。这里分享其中的 8 个:
模拟测试
为了减少软件测试对硬件的依赖,模拟器、Mock、Stub都是常用的方式。如果项目允许,推荐实现模拟器
TDD
测试驱动开发,可以有效保证代码的质量。同时在任何可行的场合,和硬件一起测试,自动化是最佳选择
增量开发
增量(在 Scrum 方法中称为“冲刺”),通过对功能进行优先级排序,可以更早地降低风险并强调核心功能,不仅团队获得成就感,利益相关者也获得有形的价值,并且可以及时提供反馈
任务板
当冲刺开始时,工程师需要一个工具来在团队内沟通他们正在执行的任务、任务之间的依赖以及任务的状态。任务板是跟踪任务和传达状态的有效方法
每日站会
每天15分钟的团队沟通,可以快速发现问题,以便尽早解决问题
DoR
鉴于嵌入式开发中软件和硬件的依赖,任务开始之前的“就绪标准”可以帮助明确依赖,减少可能的等待
总结:敏捷应用在嵌入式开发中的优点
- 更快的产品开发
- 更高质量的交付成果
- 持续降低风险
- 加强开发团队内部以及与利益相关者的协作
- 项目状态更加透明、准确
最新 如果您在嵌入式开发的敏捷转型中需要帮助,您可以 联系我们!