电子说
As it has become nearly impossible to find and hire embedded software engineers, there are two choices: scale back your plans or find ways to become more efficient with the assets already on your team.
虽然全球媒体为每个人都做好了经济衰退的准备,但在嵌入式系统领域找到和雇用嵌入式软件工程师几乎是不可能的。我无法计算最近与我交谈过的公司的数量,这些公司人手不足,正在寻找开发人员却找不到他们。当您无法为某个项目找到足够的人员时,有两种选择:缩减您的计划,或者想办法提高团队现有资产的效率。这篇文章将探讨嵌入式开发人员如何提高效率的几个技巧。
提示 #1 – 减少调试时间
嵌入式软件开发人员通常将 20% 到 40% 的时间用于调试。平均而言,每周会花费一到两天时间来尝试解决代码中的问题。换句话说,就是每年 420 – 840 小时!如果您有 2-4 名开发人员在一个团队中工作,那么减少调试所花费的时间可以腾出大量可以重新分配的工时来完成更多工作。
无论开发人员做得多么出色,所花费的时间都不会归零。我已经专业编写嵌入式软件 20 年了;我已经从 80% 的调试时间减少到不到 5%。当然,我们是人类,无论我们做得多么好,都永远不会完美,但我们当然可以将时间减少到个位数的百分比。帮助您的团队减少调试时间的一些想法包括:
采用测试驱动开发技术
尽可能地偏离目标
掌握调试策略
(更多细节可以在减少调试时间的 3 个技巧中找到)。
提示 #2 – 不要重新发明轮子
当今嵌入式软件开发存在一个耻辱,即工具和软件堆栈应该是免费和开源的。我曾经认为问题在于管理层不了解软件,因此低估了获得正确工具和购买商业软件堆栈的重要性。但不幸的是,我遇到过很多工程师认为开源和免费是唯一的出路,花任何钱都不值得投资,无论损失还是最终成本。
高质量的软件需要时间和金钱才能正确编写。如果您需要软件堆栈 A 并且公司 B 已经编写了它,那么请购买软件堆栈以节省您的时间和金钱。在许多情况下,销售软件堆栈的公司甚至会提供培训或 FAE 来帮助您的团队快速集成和配置软件!如果您缺少开发人员,请利用这些额外的资产快速推动您实现最终目标。不要让您的团队为创建每个开发人员及其姐妹都编写了一百次的软件而兴奋。
开发人员获得报酬以开发满足企业客户需求并产生投资回报的产品。虽然开发人员的成本是固定的,但开发人员没有无限的时间从头开始创建技术,或者花费数小时尝试采用方形开源软件堆栈并将其集成到一个圆孔中。
提示 #3 – 优先考虑产品功能
我听说有很多时间浪费在产品功能上,这些功能要么从未完成,要么最终被从产品中删除。提高效率的一个关键,如果不是关键,那就是明确你的优先事项。推出产品所需的核心产品功能是什么?如果这些功能还没有实现,那么开发人员就没有理由致力于结霜或顶部的樱桃!
以我的经验,嵌入式系统永远不会完成。总是有另一个功能要添加,要进行改进等等。因此,在每个项目的开始以及持续的整个过程中,团队都需要有一个优先的功能列表,以产生一个最小可行的产品。要包括的一个重要功能是引导加载程序,以便可以在产品的整个生命周期内继续改进固件并添加新功能(我敢说删除了吗?)。
提示 #4 – 投资于培训和教育
如果您的资产数量有限并且无法快速扩展这些资产,那么这些资产需要更加高效。继续教育是帮助开发人员了解最新和最卓越的技术和技巧的好方法。此外,技术和技巧通常为开发人员提供关键技能,帮助他们显着提高效率。
公司可以通过多种方式投资开发人员。首先,他们可以提供对其行业在线学习资源的访问。许多技术期刊、书籍和视频都可以以相对较低的成本获得。其次,它侧重于继续教育,例如培训课程。课程可以专注于技术工作方面,但即使是时间管理和自我提升也可以有所帮助。
提示 #5 – 战略性自动化
如果战略性地应用,自动化可以成为提高开发人员效率的绝佳工具。例如,如果在手动测试上花费数天或数周,那么自动化测试可能是一个有用的处方。另一方面,如果要花费数天或数周的时间来准备一个系统以便可以发货,那么整个过程的一部分是否可以使用脚本自动化?是否可以创建产品配置文件,然后使用自动生成工具?使用建模工具及早找出潜在的设计问题并在它们像蚂蚁大小而不是鼹鼠丘时将它们充实起来怎么样?
战略性地自动化开发人员和编码任务是当今许多嵌入式团队尚未开发的资源。诀窍是在一天中不断地问:“我需要这样做吗,或者这是我可以自动化的事情吗?”。然后,在几周内,开发人员将有更多时间专注于重要的事情,而不是琐碎和劳动密集型的活动。
结论
今天招聘新的嵌入式软件开发人员非常困难。在许多情况下,公司不得不与他们的团队合作。一个稳定的团队没有理由不能完成更多工作。正如我们所见,诀窍是提高效率。有时,只需在工具和软件堆栈上花钱就能有所作为。在其他情况下,仔细考虑可以自动化以腾出开发人员时间的流程。我怀疑几乎每个团队都可以做一些功能优先级。诀窍是提高效率,而不是做得更少或让你的开发人员筋疲力尽。
您今天在做什么以成为更高效的开发人员?您可以削减、自动化和改进哪些活动以腾出未来的时间?
审核编辑 黄昊宇
全部0条评论
快来发表一下你的评论吧 !