当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]对工程师而言,没有什么事情比投入大量心力、汗水和泪水到一个项目,但最终却只得到一个失败的结果这件事,来得令人沮丧。对那些参与项目开发的人来说,失败确实可以增长其

对工程师而言,没有什么事情比投入大量心力、汗水和泪水到一个项目,但最终却只得到一个失败的结果这件事,来得令人沮丧。对那些参与项目开发的人来说,失败确实可以增长其洞察力和经验,但所时间和心力的损失却也是毁灭性的一击。有许多理由可以让嵌入式系统的项目最终以失败收场,但有7个隐形杀手会让一个项目在不知不觉中慢慢地且不声不响地走上失败之路,任何项目的领导者或其中的成员对它们千万不可等闲视之。
#7 – 成员流动(Team turnover)
每家公司都会经历员工或承包商的流动,但关键人物太过于经常变动,可能是一个项目注定失败的领先指标。有很多原因可以说明为什么人员流动对项目会有不利的影响。第一,它会造成其他团队成员心理上的影响,而降低生产力。其次,失去关键人物可能会导致历史性和重要的信息会永远遗失,这会放缓发展的脚步。最后,替换队员需要对新的成员进行训练,并跟上团队的脚步。这是一个会使人分心的工作,会让其他成员放下手边的开发工作来教导新的成员,结果会导致开发成本的增加和延长交付时间。
#6 – 走走停停症候群
孩子被教导说,“不要喊狼来了。”这话是一个警告,不要误发假警报。这种警告有一种“进行!停止!进行!”的周期,在项目中很容易被忽略。一位经理、客户,或其他一些单位猛烈地催促他的团队,声称该项目要在某一日之前完成。开发人员因此周末加班,投注更多的心力。然后,就像这股来得很快的催促之力,突然之间却又嘎然而止。个月后,它又再次告急。 “快点,我们必须在X之前出货!” 然后同样的事情又再次发生。
项目这种走走停停一再重复的紧迫性将会对开发团队造成心理层面的影响。开发人员不再相信任何的迫切性。事实上,他们会有一种心态,开始觉得这个项目并不是一个需要认真对待的项目,它很快将再次停止,那么为什么还要投入任何的努力?
所以,不要对项目喊狼来了!
#5 - 完美主义者的态度
许多工程师都有一种完美主义者的态度。这种态度所带来的问题是,不可能开发出完美的系统,撰写出完美的代码,或者在最适当的时间推出产品。完美主义是镜花水月,如果完美主义是公司文化的一部分,它将会是产品可能会不断修正,直到公司破产倒闭的标志。
正确的心态不是完美,而是成功。为了可以成功地推出产品,什么是最低的成功标准?设下成功的标准,并在一旦达成后,立即推出产品。之后可以用启动加载器(boot-loader)来添加功能并解决那些小错误。
#4 - 加速的时间表
要迅速地开发出一个嵌入式系统,事实上,设计团队事实上要放慢脚步,这似乎违反直觉。但依据加速的时间表(accelerated timetable)工作,会因为压力和,更重要的是,有比较高的可能性会产生错误,而使得效率降低。错误将直接影响小缺陷的数量,而这些小缺陷随后又会增加测试时间和返工的时间。
另一个问题是,当开发人员都抢着和努力满足加速的时间表时,他们会图省事而走快捷方式。比如,代码没有批注及说明。像是架构图和流程图等设计文件也付之阙如。相反地,设计只留存在程序设人员的心中。放慢脚步,把事情做正确,会更快地得到最终的解决方案。
#3 – 不良的结构化软件
嵌入式软件是嵌入式系统的血液;没有了它,产品就无法运作。不良的结构化软件是一个很明确的失败征兆。嵌入式系统的系统结构需要具有灵活性,以便未来成长之用。它要有用于测试、除错和进行日志记录的空间。一个架构不佳的系统将会使得施作不良,而导致该软件错误百出而难以管理,从而注定要将它的岁月花在除错上,直至项目最终死亡为止。
#2 - 本末倒置
开发一个新产品是一种会令人兴奋的奋斗过程。其中有很多事情要做,而公司通常是急着想把产品从概念化成可以生产的产品。这种匆促的举动是极其危险的,尤其是当生产决定浮现时。
当产品的机械设计或外观和感觉被拿来推动其电气需求时,这就是一个很好的例子。在工作的电气和软件原型被验证之前,生产工具就准备好要生产了。在这种情况下,似乎总是有电路板没有检查,需要进行调整的问题。对那些匆匆忙忙、且太快就试着要把所有的事情同时拉在一起的项目,最终结果总是由于修改而落入花更长时间和更多成本的结果。
#1 - 范围潜变
每个项目都有范围潜变(scope creep),但范围潜变的程度可以是该项目是否会成功或失败的决定性因素。范围潜变最危险的一个领域是,它是暗中为害的。某天在电路板上增加了一个简单的传感器,几个月后再加一些上去,这些看起来完全无害。但他们可能是致命的。
范围潜变的最大问题是,变化通常是微小的。乍看之下,改变看起来只是短短几天的工作。但是,每次加一点点,系统的复杂性也随之增加了。复杂的系统需要更多的测试,可能也需要更多的除错。随着时间的发展,范围潜变可以将系统改变到使原来的软件体系结构和设计变得过时,或甚至变成是不正确的解决方案!最终的结果是使一个项目变得远远地超出其预算范围,实际进度落在交货日期之后,此一项目很少或几乎没有结束的迹象。
结论
在开发新的嵌入式系统,并没有确保其一定成功的保证,有很多因素会影响到项目的成功或失败。这是笔者所看到的7大项目隐形杀手。你可以从这些细微的线索判断出你的项目是否正走在一条缓慢且迈向失败的发展之路上。任何项目的领导者或其中的成员对它们千万不可等闲视之。
0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在工业物联网设备部署中,Modbus通信故障是导致系统停机的首要原因之一。据统计,超过60%的现场问题源于通信配置错误或数据解析异常。本文从嵌入式系统开发视角,系统阐述Modbus通信调试的方法论,结合实际案例解析如何高...

关键字: 嵌入式系统 Modbus通信

在嵌入式系统开发中,看门狗(Watchdog Timer, WDT)是保障系统可靠性的核心组件,其初始化时机的选择直接影响系统抗干扰能力和稳定性。本文从硬件架构、软件流程、安全规范三个维度,系统分析看门狗初始化的最佳实践...

关键字: 单片机 看门狗 嵌入式系统

人工智能(AI)和机器学习(ML)是使系统能够从数据中学习、进行推理并随着时间的推移提高性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但在微控制器(MCU)等资源受限的器件上部署这些技术的需求也在不断增...

关键字: 嵌入式系统 人工智能 机器学习

Zephyr开源项目由Linux基金会维护,是一个针对资源受限的嵌入式设备优化的小型、可缩放、多体系结构实时操作系统(RTOS)。近年来,Zephyr RTOS在嵌入式开发中的采用度逐步增加,支持的开发板和传感器不断增加...

关键字: 嵌入式系统 软件开发 实时操作系统 Zephyr项目

在资源受限的嵌入式系统中,代码执行效率和内存占用始终是开发者需要权衡的核心问题。内联函数(inline functions)和宏(macros)作为两种常见的代码展开技术,在性能、可维护性和安全性方面表现出显著差异。本文...

关键字: 内联函数 嵌入式系统

在嵌入式系统和服务器开发中,日志系统是故障排查和运行监控的核心组件。本文基于Linux环境实现一个轻量级C语言日志库,支持DEBUG/INFO/WARN/ERROR四级日志分级,并实现按大小滚动的文件轮转机制。该设计在某...

关键字: C语言 嵌入式系统

在嵌入式系统和底层驱动开发中,C语言因其高效性和可控性成为主流选择,但缺乏原生单元测试支持成为开发痛点。本文提出一种基于宏定义和测试用例管理的轻量级单元测试框架方案,通过自定义断言宏和测试注册机制,实现无需外部依赖的嵌入...

关键字: C语言 嵌入式系统 驱动开发

在嵌入式系统与驱动开发中,内存映射I/O(Memory-Mapped I/O, MMIO)是一种将硬件寄存器映射到处理器地址空间的技术,允许开发者通过指针直接读写寄存器,实现高效、低延迟的硬件控制。本文通过C语言实战案例...

关键字: 内存映射 I/O操作 嵌入式系统

在嵌入式系统开发和多线程编程中,程序崩溃、内存越界等复杂问题常令开发者困扰。GDB作为强大的调试工具,其条件断点和内存查看功能可精准定位隐蔽缺陷。本文通过实际案例演示这些高级功能的应用,帮助开发者提升调试效率。

关键字: GDB 嵌入式系统
关闭