笔者多年的嵌入式开发经历,经历过技术支持(TSE)、嵌入式产品模块开发(MDE)、项目组长(PL)、项目经理(PM)等诸多角色。
那么就今天就来分享一下嵌入式各个角色工作。希望能够帮助嵌入式开发工作感兴趣的朋友,揭开嵌入式开发的神秘面纱。
技术支持的日常工作
笔者刚毕业便加入了华为公司,定岗嵌入式驱动开发工程师。
入组之后,当时的驱动产品已经基本成熟,所以答主被安排跟着师傅从熟悉平台,对外技术支持为主。
当年刚毕业,看着海量的成熟产品代码,心里的确慌得一笔。不过好在跟着师傅,也是一步一步挺了过来,为后面的进阶打下了坚实的理论和技能基础。
作为技术支持,其实日常的工作比较有规律。
对于技术支持来说,主要有以下几大块工作穿插在日常的工作活动中。
1.熟悉产品代码
因为每个人不可能完全参与产品的全部模块代码的设计和开发,再老的技术支持都需要利用不解答问题的时间空余,对各种常用的,个人又不熟悉的模块代码进行走读和学习。以便在后面遇到对应模块问题的时候能够快速定位和解决。
2.解答用户随时随地拨入的电话中提到的任何技术问题
可以说,24小时待命是很多技术支持的基本要求。技术支持大部分的时间,都是在处理和解决客户的技术问题和新的技术需求。
3.开发一部分用于提高维护和支持效率的功能单元
很多时候,产品的代码都是用于完成具体应用功能的,很多时候并没有考虑到技术支持人员的需要。
所以在可能和必要的情况下,技术支持会自己开发一部分用于提高定位效率的代码并通过 DEBUG 版本模式加入到产品代码中。
比如答主根据需要,自己开发了 Init 初始化打点功能,Lastword 临终遗言等功能,对定位问题非常有帮助。
4.对于紧急问题,参加各类问题分析会议
笔者当时的项目组,主要为华为无线设备提供产品组件功能,所以对于紧急的局点问题定位,忽略时差的紧急开会是常有的事情。毕竟华为一向倡导“以客户为中心”。
说实话,笔者到现在都特别感谢第一份技术支持的工作。
虽然在很多开发人员看来,技术支持很 low,但是正是通过技术支持的岗位锻炼,才有了笔者突飞猛进的编码能力和技术积累。
模块设计师的日常工作
随着技能的提高和项目的历练,笔者开始进阶到模块设计师的岗位。
对于模块设计师来说,其实就是大家口中常说的嵌入式产品开发工程师。
每天的日常工作,也并不是大家理解的天天 coding。
除了编码之外,模块的需求对接,设计文档的编写,UT/IT/ST测试用例的编写和自测,代码检视等等很多工作,都是每个模块设计师的日常工作。
具体的日常工作如何安排上述的各类工作,需要根据每个公司的嵌入式产品开发流程而定。
比如当年的华为使用的是标准的 IPD 流程,分为 TR1-TR5 开发节点管理,对软件版本和测试版本有着非常严格的管理,记得笔者当时还兼任开发项目的 CMO,任何代码的入库只能从答主这一个口进入。
比如在 TR1-TR2 阶段,主要就是产品的需求分析,需要和 SE 反复核对产品需求,功能点。并编写对应的模块概要设计和详细设计,并通过组内讨论方式,确定最后的产品功能点。
进入到 TR3-TR5 阶段,就是我们认为的编码,开发,测试,代码检视环节。这里面不同的公司又采用不同的开发流程,比如当年笔者所在华为的项目组比较喜欢瀑布开发;而后来去的 Broadcom 等外企更倾向于敏捷开发。
开发组长的日常工作
在项目过程中,因为公司和项目组团队的扩大。很多人会因为某些特点被选择进入到基层管理团队。
当年笔者因为在技术支持工作中除了技术上得到了锻炼,沟通能力也有了大幅提高。所以当项目团队项目增多,人员剧增的情况下,开始被任命带领某个项目组(SE + MDE + TE + QA)进行项目的日常管理和进度跟踪。
用一句话来概括 PL 的工作,其实就是:协调资源,满足组内开发任何需要。
每天的例会日程安排,与周边团队的资源沟通,进度管控,项目汇报等等。说的更加直白一点,就是一个项目的管家。既要照顾好每个成员,又要协调好一切资源,保证项目的保质保量完成。
最后,需要学什么
嵌入式的开发岗位繁多,那么各个岗位都需要什么技能和知识呢?
来源: https://www.zhihu.com/question/334478263/answer/1953736348
1.浅谈传感器市场的发展趋势~
2.目前全球MCU的现状~
3.芯片缺货实情难判断,有MCU厂已进入对峙期~
4.【喂到嘴边了的模块】超级嵌入式系统“性能/时间”工具箱~
5.国产32位MCU未来要怎样发展?
6.做嵌入式软件开发提高代码编译速度的几种方法~
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。