正确的工具是嵌入式开发成功的关键。但即使正确的工具在手,若无所需的技术,也可产生灾难性后果。固件工程师要在当今瞬息万变的开发环境中取得成功,需要下述七项必杀技。
据《2015年UBM嵌入式市场研究》,调试嵌入式系统是开发人员和管理人员面临的最大挑战,甚至超过满足项目交付期限的压力。毫无疑问,嵌入式系统的日益复杂和调试所花费的时间,是项目是否按时完成的主要因素。具有能快速、高效地调试实时嵌入式系统的能力,对产品上市时间和开发成本有直接影响,这就是为什么,要成为一名成功的工程师,掌握调试技能是非常重要的。
无论将创客和黑客描述得如何酷和潇洒,我敢打赌,他们大多缺乏推出一款实时嵌入式产品所需的编程语言技能。掌握了C或C ++的细微差别、并能应用这些技能的固件工程师将取得更大成功。熟练使用编程语言的开发者将会知道哪些结构是安全、可靠或可用于给定系统约束的。对寻求长期成功的固件工程师来说,掌握编程语言技能是必要条件。
固件开发人员可能会觉得拥有与软件开发直接相关的技能就够了,完全没必要去关心硬件。如今,许多公司甚至把他们的工程师陷入自己技能和职责的一亩三分地内,那么,为什么不能只专注于自己擅长的主要领域呢?在每个项目中,都会有某一时刻,需要参与的方方面面集合在一起,群策群力来调试系统。能同时胜任软硬件的固件工程师将能更好地发挥作用、主导协同工作,最终他们将对管理层和团队更有价值。如果能让一位硬件工程师指着问题说,这神奇的黑盒子软件能对这样的问题做出反应:“对这种架构,总线的上拉看来有点弱……你查了吗?”——如果能达到如此的效果,岂不很棒!
健康的怀疑也许更多的是心态和态度而非纯技巧,但对今天来说,我们认为它是必须掌握的技能。对我们凡人工程师来说,在我们职业生涯的有些时候,我们总会因我们选用的一个器件、库或决策,而自食苦果。从那以后,当任何器件、库或类似东西再“信誓旦旦”的话,我们会像突然遇到瘟疫一样,我们的反应兴许会过头。若践行了健康的怀疑,则开发人员会说:我过去在这吃过苦头,我不再相信;但我愿意根据工程数据而不是个人的过去经验来评估、分析并形成意见。健康的怀疑可以帮助工程师看清变化之潮,并确定什么时候拥抱新技术、新工艺、新平台才是明智之举。
能推销自己的固件工程师将比不谙此道的同行获得许多优势。在大学,没有如怎样写简历或面试技巧等自我推销技能的课程。工程师必须在现实中习得这些技能。会推销和宣传自己的工程师将得到工作、晋升和外快。
固件工程师需要学习和了解,软件业务并非其全部。如果他们想要取得最大成功(无论其如何定义成功),他们还需要掌握自我推销技能。
当我还是个入门级的初出茅庐的工程师时,我总是尽量躲在电子邮件后面进行沟通。但是,电子邮件可能不是一种很高明的沟通媒介,因为对其所传达的信息,可做多种解读。它没有语气、缺少表情,所以很容易让对方读出其实不存在的敌意或问题。对方的情绪很容易将一封友好的电子邮件误读成不友好。不止一次,我被叫到经理办公室,讨论被认为不得体的我发给某某的那封“电子邮件”。电子邮件方便、快捷,但有时不严谨,而口头和面对面的沟通则不太会发生误会。
组织软件并创制漂亮架构的能力对嵌入式软件工程师是重要的,但无疑,组织的真功夫是当你需要时,就能找到所需。凌乱的办公桌和东摆西放工具带来的问题是:寻找七零八落、不见踪迹的东西纯粹是浪费时间。花两分钟满世界找草稿、模块或探针可能打断程序员的思路、使情景不再,可能需要十五分钟才能使开发者找回状态。纪律严明的组织是一种技能,它是如此重要,但就我所见、所谈的许多工程师来说,却又是如此稀缺。
有许多可能的技能,可以帮助固件工程师取得成功。这七项必杀技当然不可或缺,虽然可能不那么显而易见。开发者应还需要哪些其它技能呢?