工程师的民工化

我以前在Nokia工作的时候,会跟供应商的的联合开发(Joint R&D)一起做设计,但是我只是作为指导和监督;供应商的射频开发团队,往往人员年轻经验不足(经验不足对应的就是精力过剩),于是我就眼看着他们做了一回匹配调试:

记得大概是要调一段TD-LTE B41的匹配,当时B41全频段滤波器的性能比现在差得多,不通过匹配是万万不能用的。然后开工:首先要把每条线的S参数量出来(其实我觉得还不如用VNA配TDR选件加探针搞定);然后分段接起来,把每一段调成50欧姆——按照某些“(自认为)经验丰富的老工程师”的说法,就是RL超过20dB;最后焊上无源器件,再继续看S参数,不够的话继续调。

nokia

至于具体调的方法,也是以“试错法”+“穷举法”为主:但凡试了某处发现这里加电容好,那就从最小的值开始一点点往上加,加到没有改善甚至恶化了,再看另一处加什么好,周而复始。

我不知道应该用什么样的比喻来形容以上的过程,或者说我国依然处于社会主义初级阶段,所以调匹配也处于初级阶段,糙快猛应该就可以搞定一切?

作为工程师,我们有没有想一想,是不是正是因为这种简单粗暴对待工程问题的态度,才让我们今天越来越像民工?

 

改正错误并不值得夸耀

也是我在Nokia的时候,那时候我做项目有个特点:不出错。因为我一直做北京研发中心高端平台的项目(从S40,S60一直到WP),所以没法说是因为项目太简单所以不出错。

错误

后来我写过一篇犹如王婆的裹脚的长文(居然用我的烂英文堆出来的),描述了我所做的平台上从线宽计算到接地完整性的几乎所有细节,以便做同一平台的其他同事还有联合开发团队参考。后来这篇长文为某些M字头所恨,也就直接扔进了故纸堆。

我当时起兴要写这篇长文,是因为我翻看之前的设计文档和经验教训(Lessons-Learnt),发现大部分殚精竭虑皓首穷经的debug,乃是源于设计时忽略了一些基本原则或者检查不够细致。当然从“胶片文化”(没错,我是存心要顺带着黑某司)的角度来看,这也是提供了绝佳的表现空间。其实我写的东西并没有什么奇技淫巧,读过去就感觉“我都知道啊”或者“不过老生常谈”——古话说“纸上得来终觉浅,绝知此事要躬行”,这句话本身也是念叨起来容易,实践起来就忘到九霄云外去了。

器件

举个例子:器件信号pin、射频连接器等处需要把下方的地挖开以减小寄生电容。原理上很好理解,但是我每次检查layout的时候总是有大堆这种错误——真是一种矛盾:一方面面对规训不屑一顾,另一方面犯错之后后悔不叠,像极了屡教不改的莽撞少年。

我有个哥们,是学数学和理论物理的,他曾经说过一句话讨论科学与工程的区别,他说“科学可以深入浅出,工程则是无数细节堆积而成”,我深以为然。

大胆假设,小心求证

我经常跟工程师们讲,在做实验验证想法的时候,一定要盯着眼睛作设置,闭着眼睛做实验,睁大眼睛看结果。

盯着眼睛作设置,是要求在设计和设置实验的时候考虑所有能考虑到的细节,避免一切可以避免的不确定性。

闭着眼睛做实验,就是说在妥善设置实验之后,没有得到最终结果之前,绝不轻易改变实验设置,这是为了不让你对结果的期望影响到实验的进行。

工程师

睁大眼睛看结果,则是要求在实验结果中努力排除各种干扰因素,得到最纯净最正确的结论,而无论这个结论是否符合你的预期。

但是很多工程师并不是这么做的,他们会努力的质疑任何与自己预期不一致的实验结果甚至人为的“修正”它,或者一遍一遍的要求重复实验,企图依靠实验中存在的随机性而偶然达到自己的预期,却并不去反省自己的理论是否有所疏漏或者谬误。

即使说很多时候我们都是在摸着石头过河,那么我们也就需要对失足落水有充分的心理准备而不是埋怨石头位置摆的不对,更不应该偷偷脱下自己湿漉漉的鞋子换上一双新的。

实验是用来证实或证伪我们思维结论的手段,而不是目标。

相类似的,早年我还在做基站的时候,有个质量经理,她对测试工作成功与否的定义是“一定要测出问题来”,“凡是测不出问题来的一定是测试设置有问题”“必须测出问题来才算测试正确”。我必须承认世界上没有完美无瑕的产品,但是我一贯认为测试的目的是检验产品是否符合设计要求和用户需求,它是手段而不是目标。

基站

如果一个工程师的“自尊心”使得他不能忍受自己的理论被实验证伪,那么这就不再是自尊心,而是自大和狂妄。

评论

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required