正确的工具是嵌入式开发的成功关键,不过就算有正确的工具,若使用不恰当技术,仍可能产生灾难性后果;要在今日瞬息万变的开发环境中取得成功,固件(firmware)工程师需要以下七种必杀技。
根据《2015年UBM嵌入式市场研究(UBM Embedded Marketing Study)》,嵌入式系统的除错是开发人员和管理人员面临的最大挑战,甚至超越赶上项目交付期限的压力。毫无疑问,嵌入式系统的日益复杂和除错所花费的时间,是开发案能否按时完成的主要因素;具有能快速、高效率地进行实时嵌入式系统除错的能力,对产品上市时间和开发成本有直接影响。这就是为什么要成为一名成功的工程师,掌握除错技能是非常重要的。
无论所有的媒体将“创客(maker)”或黑客描述得多酷多帅,我敢打赌他们大多缺少能实现实时(real-time)嵌入式产品所需的编程语言技能。固件工程师若能掌握C或C++的细微差别、并能应用这些技能,将取得更大成功。熟习编程语言的开发者,会知道哪些结构是安全、可靠或可用于既定系统约束的。对寻求长期成功的固件工程师来说,掌握编程语言技能是必要条件。
固件开发人员可能会觉得,拥有与软件开发直接相关的技能就够了,完全没必要去关心硬件;但如今,许多公司甚至让他们的工程师自限于专长技能和职责的小天地。那为什么不能只专注于自己擅长的主领域呢?在每个开发项目的某个阶段,总会需要将所有部分整合在一起并进行系统除错;这时候,既能胜任软件又熟悉硬件的固件工程师,可以发挥更大作用并主导协同工作,在公司管理高层和整个团队面前展现更高价值。
所谓善意的怀疑(healthy skepticism)也许更偏向是一种心态或态度,而非纯粹的技术;但我们现在该认为那是一种必须掌握的技能。对我们这些凡人工程师来说,在职业生涯中的某个时刻总会因为选用的组件、链接库,或是做出了某个决策而自食苦果;在那之后,不管任何组件、链接库或类似东西做出很大的保证,我们就会像遇到瘟疫一样反应过度。
若抱持着善意的怀疑,开发人员的态度会是:“我以前曾吃过类似苦头、我不相信这个;但我愿意根据工程数据而不是个人的过去经验来评估、分析并形成意见。”善意的怀疑可以帮助工程师看清变化潮流,判定转向新技术、新制程或新平台的好时机。
能自我推销的固件工程师将比不谙此道的同行获得许多优势;在大学里通常没有履历撰写与求职面试技巧的教学课程,工程师得在现实生活中学习。会推销和宣传自己的工程师,更容易获得工作机会、晋升机会或赚到外快。固件工程师需要学习并了解,软件设计工作并非是他们的全部,如果想要有更大的成就(无论其定义是什么),还需要掌握自我推销技能。
当我还是个菜鸟工程师时,总是尽量躲在电子邮件后面与人沟通;但电子邮件可能不是一种很高明的沟通媒介,因为其内容会被曲解─它没有语气、缺少表情,所以很容易让对方读出其实不存在的敌意或问题;收信者的情绪会让一封友好的电子邮件被解读成不友好。我就不止一次被叫到主管办公室,讨论我发给某某人、被认为不得体的“那封电子邮件”。电子邮件很方便、快捷,但有时候太草率,口语和面对面的沟通比较不容易产生误会。
组织软件并建立美观架构的能力对嵌入式软件工程师也很重要,但组织事物的真功夫在于当你需要什么的时候就能马上找到。凌乱的办公桌和四处乱放的工具,会导致你得浪费时间寻找不见踪影的东西。找一张纸、一个模块或探针的2分钟,就会打断程序设计师的思路,可能需要再花15分钟才能重新连贯起来。井井有条的组织能力是如此重要,但从我所见过、交谈过的许多工程师来看,拥有这种能力的人真的很少。
可能帮助固件工程师取得成功的技巧有很多,上面介绍的七种“必杀技”肯定不可或缺,虽然效果或许不那么显而易见。你认为研发工程师还需要哪些其他技能呢?
本文授权编译自EDN Taiwan,版权所有,谢绝转载
关注最前沿的电子设计资讯,请关注“电子工程专辑微信公众号”。