白山头 · 2022年04月18日

一场面试引发的思考,容易被忽视的核心竞争力

由于疫情原因,面试基本都挪到了线上。前几天在网上进行了一个面试。其中有个问题分享给大家,并谈一谈我对此的看法。

面试是一个数字后端的面试,候选人入职国内大型科技公司不到两年时间。

技术问题在此略过。最后,问候选人为什么在大公司干了还不到两年就考虑跳槽?

他是这样回答的。他对于芯片从来没有接触过,到了公司后从零开始学,经过了才一年多就已经能够完成一个有一定规模的block。因此,他感觉公司给的任务没什么难度,再待下去也没有什么可学的了。

对此,我想起了我自己刚刚毕业的时候,初入公司,一切都是那么新鲜,什么都想学,求知欲非常旺盛。两年之后,感觉失去了方向。看到公司的大牛都是做top,自己机会渺茫,流程完善,自己能做的事情不多。于是跳槽到了另外一家公司。新公司芯片规模较小,做top的机会大一些。没有专门的CAD团队,都是工程师做项目的时候兼职做流程,因此,可以在做项目的同时,也能够做一些流程相关的事情。

不过现在回想起来,在第一家公司其实有很多值得学习的东西,只是当时没有意识到。正是由于对top的执着,反而忽略了对流程的理解和学习。

当时如果有人问我,流程完善好吗?我肯定回答,不好,新人很难学到东西。只有自己写出来的代码,才能印象深刻。这其实是学生的固有思想。学习一门语言,确实是需要尽量自己动手。

不过随着认识的深入,我对流程的看法早已经改变。

1

下面来聊一聊我现在对于流程(flow)的看法。

流程,我们通常叫flow,有的公司叫方法学(methodology),是一个意思,强调的重点略有不同,个人认为methdology更合适一点。对于流程,无论设计,验证还是中后端,都需要用到。特别是中后端,没有流程,基本无法展开工作。流程是一套工具,脚本的有机结合,最后目标是让项目顺利完成。

流程主要完成以下工作目标:

  • 自动化
    流程首先要完成的任务是自动化。将人们繁琐的手工操作中解放出来。如果没有一个完善的流程,工程师将花费很多精力来写脚本,操作工具。

大家知道数字后端和模拟layout的区别吗?任务虽然接近,但是工作方式则很不相同。layout由于难以自动化,因此更多的是图形界面上的操作。但是,数字后端由于处理的数据量庞大,手工是无法完成,因此非常强调自动化。后端几乎完全需要靠工具来自动完成布局布线。后端工程师的主要工作是处理流程,EDA工具以及设计上的各种问题。完善的流程将极大地减轻工作量。

  • 避免错误
    我们知道,同样一个人,也可能犯相同的错误。更何况一个团队。团队中,一个人犯错后,其他人也可能会犯。这些错误很有可能是致命的。很多流片失败,都是由的小错误造成的。这样的错误是需要通过手段来避免。

* 优化结果
为了得到更好的PPA,让芯片更有竞争力,需要很多优化策略。这些经验的积累非常重要。只有将这些经验注入到流程当中,才能真正算是公司的财富。

很多对于设计上的优化,是经过多个项目,很多有经验的工程师合力完成。这些经验对于公司来说是非常宝贵的经验。公司要不断发展,这些经验必须得到提炼和继承,而不能随着工程师的离职而流失。

  • 项目管理
    当然,流程不只是自动化,避免错误,以及经验继承。还有一个甚至更重要的要求,就是将项目管理的思想融入其中。其实,标准化本身就是项目管理的核心思想之一。其次,还有项目项目计划,项目进度,项目中各个环节的质量控制。一个完善的流程需要将这些要素融入其中。

2

对于流程的重视,国际IC巨头普遍都非常重视。他们有专门的庞大的团队来进行流程的建设。他们可以将项目外包,工作岗位外移到成本更低的中国(现在由于成本的因素,他们可能更青睐印度),但是他们的流程的岗位一直在自己本土。这也说明了他们将流程建设认为是企业的核心技术。

目前国内多数公司对流程建设的重视程度相对不足。这导致了很多项目之间,继承性不足。更有甚者,之前做项目的人走了之后,后面接手的人完全看不懂前面的人的工作。缺乏规划,重复劳动,不规范,这就造成了公司的竞争力无法提高。

可以说,流程本身就是企业核心竞争力之一。经过不断地改进,测试,优化,这才能让公司的越来越有竞争力。对于流程,很多人有个误解,就是能有个非常牛的人,完全可以建设一个完善的流程。其实不然。流程绝对需要时间来沉淀的。

这其实源于软件的思想。windows最初只是DOS系统,经过不断地改进,才成为现在这么庞大的系统。这需要数十年的不断改进,重写。这也导致做一个完善的桌面操作系统的门槛越来越高。很多公司尝试过,知道现在仍然没有人能够撼动微软的地位。

同样,EDA工具也是经过这样的过程。EDA工具是如今准入门槛最高的行业之一。三大EDA厂家不断和客户,晶圆厂磨合,改进功能,最后市场份额基本瓜分殆尽。新的竞争者要加入,需要将这个过程重新来一遍,难度可想而知。

这里说点题外话。由于科技战的原因,我们必须要有自己的EDA公司。毕竟,被卡脖子的滋味很难受。这是另外一个故事。当然,EDA软件也分很多领域。我们可以从难度低的领域开始。

流程和操作系统以及EDA软件一样,需要传承和沉淀。根据自己公司项目的特点,设计专门的流程,然后在大量项目中不断优化,最终成为一个庞大而复杂的系统。

西方大公司都非常强调流程的重要性。一旦收购了一家公司,那么最先做的就是流程的统一。大家都在一个相同的平台上,沟通起来也更方便。我们知道,公司收购后整合很难,但是通过使用相同的设计流程,这个过程会变得更加顺滑。

对于小公司,更加强调英雄主义,靠几个有经验的高手就可以完成既定任务。但是对于大公司。一个项目仅仅芯片部分可能就需要数十人乃至数百人参与,参与的工程师水平参差不齐,沟通成本很高,管理成本巨大。这时候管理者如果依赖完善的流程,项目的过程可能是一场噩梦,最后完成很有可能遥遥无期。这叫做项目失控。

超大型项目和小项目完全是不同的概念。

我们要真正解决卡脖子的问题,不可避免地要在高端超大型项目上正面与西方公司对决。科技的竞争最后是企业的竞争。企业的竞争是人才以及各自流程的竞争。

3

回到文章开头,作为新工程师,一定要认清流程的重要性。认真揣摩其中的妙处。公司发展至今,流程中必然包含了大量无价的经验和思想。当然这有一定的难度,因为一个好的流程包含了太多的知识和经验,对初学者并不友好。并且,由于保密的原因,可能有一些核心部分被加密了,这就另当别论了。

另外,流程完善也不是不深入学习的借口。工程师,钻研精神是非常重要的。有了完善的流程,初学者也可以做不少事情,这是好的一面,IC行业门槛变低了,初学者很快可以在实际项目中做出自己的贡献,而无需经过漫长的学习。但是切记,工程师应当将流程视为有效工作的工具,不应成为流程的奴隶。如果几年过后,自己只是会用流程,不知道其中的深意,那么,就会成为流程的奴隶。这也是完善的流程对初学者不友好的一面,那就是容易过度依赖它。

之前文章强调知识的可迁移性非常重要。如果你的技能绑定了一个公司的流程上,那么这些技能就不具有可迁移性。而流程背后的思想和知识,却具有很强的可迁移性,即使换个环境依然具有极高价值,这些知识是企业的核心竞争力之一,也是工程师的核心竞争力。能否深入理解流程,正是高手和普通选手的根本区别。

- END -

作者:白山头
原文链接:白话IC

微信公众号:
白话IC.jpg

推荐阅读

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19299
内容数
1296
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息