我所理解的系统工程师

在汽车行业尤其是OEM经常能看到系统工程师这个职位,但是我弄明白这个职位具体是做什么的也是用了好久。打算把我的理解记录一下,给到和我同样对此有疑惑的小伙伴。

首先我们看下在ASPICE中对于系统工程的定义以及其职责范围,下图中的SYS.1到SYS.5是严格来讲系统工程师要做的事情,可以看到大致集中在需求收集整理,系统架构设计,系统集成和测试以及后期的验收等领域。根据我这几年的观察和总结,在实际的工作中系统工程师的职责范围远比这张图SYS层级所包含的要广泛,通常情况下还包括功能拆解分配,可行性分析,性能评估,接口定义,故障与安全分析,系统测试等内容。在这之外还有关键的关键是沟通与协调,包括对外与客户以及对内和开发测试等的沟通。

前边对于工作职责听下来会让人感觉很杂乱,有些工作内容和很多其他职位听起来特别的像,比如说产品经理,项目经理,软件架构,功能测试等。确实我也是这么感觉的,这也是为何我用了好久才对这个职位有了初步轮廓认知的原因,接下来我将从工作职责的角度分几大块拆解一下系统工程师具体要做些什么。

在需求以及架构角度,当系统工程师从客户或者其他部门比如整车/平台部门拿到了我们模块的需求后,结合着可行性分析,我们需要对其拆分成子系统,功能层级的模块需求。这和产品经理的任务特别的像,但是确实是两个不同的工作并且一般不相互替代。在产品经理的需求收集整理阶段,更加关注的是最终消费体验层面,具体的方式如用户调研,竞品分析等,产出物通常是类似于普通用户对于一个功能的描述。产品经理不一定需要具体懂技术,但是需要能够很敏锐挖掘用户的痛点以及区分真需求和伪需求,乔布斯就是非常有名的产品经理。而系统工程师的需求管理往往在产品经理后一环,并且多数是对内沟通的,将真正客户需求结合专业知识进行可行性分析,然后给出一个系统详设架构图,以及其中各模块之间接口定义等材料。按照ASPICE上些的系统设计的内容就到此为止了,剩下是软件设计,可是在实际中往往系统工程师的内容还会下探,与软件专家一起进行软件需求分析以及软件架构设计,即上图中的SWE.1和SWE.2。从另外一个角度理解是系统架构设计其实和软件架构设计有关联性,往往很难清楚分开。

在测试层面,在V模型开发方式下,系统工程师主要关注右上系统集成测试以及验收测试这一大块。这块和软件测试还是相对容易区分开的,上图SWE.4 –  SWE.6 主要可能集中在功能单元测试,功能整体测试以及部分的台架测试,并且更多的关注软件实现是否严格满足需求,有无Bug等。系统工程师的话通常只有台架测试以及整车测试,在关注有无Bug之外,更多的关注性能以及用户体验相关的指标,为之后客户的验收测试做准备。

系统工程师每天的工作内容至少一半都是用来自沟通协调,这又与项目经理的工作很像。但是细想也容易找出区分来。项目经理更多是负责流程预算时间线以及汇报等对外的沟通,系统工程师更多的是内部技术相关的沟通,比如开发团队,测试团队,硬件团队,整车,安全人员,以及产品经理,有时也会有客户等等等等。系统工程师对于技术知识的要求要远高于项目经理,但是由于不亲自开发,对于技术深度可能不如软件开发。

上边的例子是按照整车系统工程师来介绍的,可以看到需要硬件、软件、机械、电气、安全、通信等多方面的技术知识。在实际项目中,很难一个人把这些活都干了,所以经常是每个人做一小块,比如说Function Owner更多的就是需求管理和架构设计,(狭义)系统工程师负责接口定义以及模块架构设计,TM做测试相关的事宜,还有专门的安全人员做Safety相关的等等。即使是按这样的分工每个人只做一块,真正项目做下来也感觉需要了解的事情真的是太多了,各种东西都得多少知道一些。

对于系统工程师之后的发展路径,可以分为纵向和横向两个方面。纵向上继续深耕自己所在的领域,比如说ADAS自动驾驶,做架构优化,迭代,积累量产经验,做到自己功能领域的高级系统架构师,再继续往总架构师演进。横向上可以做管理相关的工作,比如说技术管理TPM,项目管理PM,产品经理或者说解决方案架构师(专家)等等,逐步走向职业经理人的方向。

上边提到的多数都是好的地方,那么它的缺点是什么呢?其实也挺明显的,系统工程师对技术能力的要求是大而全,方方面面都得有专业知识背书。但这也造成了其最大的缺点就是很难有一个领域非常的深入。目前国内就业市场太卷了,一字型人才想混得好是越来越力不从心了,T字型人才几乎是现在找工作的及格线,即在一个领域是专家,同时所有相关领域都有涉猎。甚至现在有一个大趋势是市场实在太卷了,T字型人才都不太够了,需要梳子型人才。

结合优点缺点那么系统工程师值得不值得去做呢?答案是看情况。如果是刚毕业的学生,我个人建议是去做软件开发,去加入真正功能实现的那伙人。从开发转系统是相对容易的,但是反过来却难度不小。如果是已经有了多年的软件开发的经验了,如果在考虑转型的话那么推荐考虑一下系统工程师。长时间在一线开发容易眼光闭塞,随着年龄增长也不能一直做个开发大头兵,深度已经够了的前提下去扩展一下广度,系统工程师就是不错的选择。之后再根据自己的兴趣点看是继续走技术路线做系统架构呢,还是说转型做管理,从系统工程师过渡是一个很平滑的选择。

总的来说,系统工程师是结合了沟通协调和专业技能为一体的一个职位,两个方面都得做的很好才能把这个职位发挥好,对于人的挑战和考验是很高的,比如说沟通软实力,以及快速了解一个技术并且有一定深度的能力。现在技术发展太快了,前几年还感知融合决策执行的架构可能两三年就要被替换成端到端,这对于系统架构的设计是非常有挑战的,即使是身居系统工程师也要保持对最新技术的学习,这样才能保持领先的视野,完成该完成的事情。

大致就总结这些吧,如果你觉得有用,帮忙点个赞吧。

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.