朱晓明
最近很多朋友咨询的一些硬件问题,发现朋友们没有仔细的看datasheet,也没有好好的做电路分析。我讲一讲华为是怎么做硬件开发的,给正在做硬件开发的朋友一些启示。说的不对的地方,大家批评指正。
曾经2007年,刚工作2年的时候去一家小公司去面试。当时考题,我感觉我做得很好,面试的时候,对方对我也很认可。但是他当时说:“我需要招一个,在大公司待过的,最好知道硬件开发流程和规范的。虽然你题答得不错,但是我们需要一个有丰富经验的,最好在华为待过的。”
当时,我就在想“华为的规范和流程是啥样的”,就一直想去看看。之前对华为的面试一直都不是很感兴趣。之后,就很想有机会去华为看看。2008到了华为。
我能想到的华为硬件开发的几个不一样的点,跟大家分享一下,想到哪写到哪,欢迎大家批评指正。
1、 文档,评审,设计。
2、 华为的硬件领域的人员构成:
3、 华为的流程
4、归一化
5、专题分析
6、器件选型
7、白板讲解
8、问题攻关
1、文档,评审,设计。
当时刚入职时,三个人做一个电路板。虽然电路复杂一些,还是有一些人力过剩的。所以,我就被安排去写一个PCI转UART的逻辑。
我当时是新员工,也急于表现自己,利用周末的时间,估计用了一周的时间,就写完代码,开始仿真了。我以为我的导师兼主管会表扬一下,结果没有,他说:“你 为什么没有召集大家讨论?然后再写方案,评审?然后再动手写代码?”我当时是没有理解的,觉得我一个人就搞定的事情,为啥要这样劳师动众?
现在反思:
第一、 从主管的角度,不知道新员工的个人能力,你能把做的事情讲清楚了,他才放心。
第二、 从公司的角度,有一套流程来保证项目的交付。那么则不再太依赖某个人的个人能力,任何一个人的离职,都不会影响项目的交付。这也是华为最了不起的地方,把 复杂的项目拆得非常细碎,这样不需要特别牛的人来交付项目。这是为什么华为的工程师的收入是思科的N分之一。
第三、 从效果角度,毕竟一个人的想法是有限的,把想法文档化的过程,就是整理思路的过程;讨论的过程,就是收集你自己没有想到的过程。正式的评审,是大家达成意见的过程。提前讨论,让相关的人都参与到你的设计中,总比你设计完了,被别人指出一个致命的问题要强得多。
就是因为华为把一项工作拆散了,所以沟通,文档,评审,讨论,变得非常重要。
这个工作模式的缺点,也是显而易见,沟通成本高,工作效率低。
2、华为的硬件领域的人员构成:
在华为内部里面,人员角色非常多。硬件的人是对产品开发阶段,端到端负责的。
做单板硬件工程师,可以涉猎最多的领域,同时也是工作内容最杂,接触人最多,扯皮的最多的工种。
但是也因为有人专门负责画PCB、EMC、电源、逻辑,原本硬件工程师应该做的领域。那么硬件工程师就武功尽废,变成“连连线”。
其实不然,正是由于每个人都是一个小的领域,没有人统领,所以一个好的硬件经理的作用非常的重要,是贯穿所有领域和全部流程的关键角色。
正如原来华为内部论坛上有一个人比喻的,硬件工程师更像是处理器里面的“Cache”,是所有环节的中转站。
大公司把人的分工分的这么细,也是防止某一拨掌握了太多公司的核心技术,出去单搞了。
3、华为的流程
其实华为的流程,很多人都知道IPD流程是从IBM来的,同时华为也去咨询过爱立信,爱立信的硬件开发,完全没有流程一说。
我个人理解:IPD流程已经在华为变种,结合了中国人的特点,华为的企业特点进行了变通和优化。如果华为僵硬的套用IBM的这套流程,也必定不会这么成功。
那么概括一下华为的硬件开发流程:
需求分析→总体设计→专题分析→详细设计→逻辑详设→原理图→PCB→检视→粘合逻辑→投板→生产试制→回板调试→单元测试→专业实验→系统联调→小批量试制→硬件稳定→维护。
流程的根本在于,这个环节做好了,再进入下一个环节。所有的环节其实跟其他公司并没有太大的区别,只不过严格把握了进入下一个环节的考核条件。令硬件工程师最纠结的是“没有个节点跟’投板’对应”。
华为支撑IPD流程的系统是PDM(又名爬的慢)
PDM的中文名称为产品数据管理(Product DataManagement)。PDM是一门用来管理所有与产品相关信息(包括零件信息、配置、文档、CAD文件、结构、权限信息等)和所有与产品相关过程(包括过程定义和管理)的技术。
华为所有的器件资料,产品部件,工具,文档,原理图,PCB,逻辑代码等都存在这个系统上。
但是系统过于庞杂,其实比较难使用,跟服务器归档、SVN归档、也容易搞混淆。
有朋友感慨,说他感受到了“精细化流程管理,让每个人都是螺丝钉”;也有前同事感慨“团队开发是战无不胜的”;也有朋友说“信息安全啊”。哈哈哈。
我现在也不是华为员工了,其中也不涉及华为的文档,更多是个人的感悟,没有透露华为的什么机密;就算是机密也是我脑子里面的内容;何况这些内容,也没啥好机密的; 我只是想帮助到更多工作在硬件岗位的朋友,也想大家看了能在公众账号给我一些反馈,大家探讨一下。
4、归一化
器件归一化
硬件工程师一般都能够理解,在一个板子上面的,尽可能的选择成本更低的器件,选择更少种类的器件,便于集中采购,同时也便于加工。但是其他公司可能没有对器件归一化的工作做得那么细致和严格。
第一, 由于华为整个公司使用的器件种类非常的多,所以如果减小一个器件编码,带来的收益是十万人民币到几百万,而其他公司可能达不到这个高的收益。所以如果能减 少一个编码,宁愿选择可能成本更高的器件。但是这个也需要按照每年的器件直接成本收益*器件发货数量,与编码成本+加工成本差异,进行对比的。不过器件归 一化之后,器件的价格又可以跟供应商重新谈价格,这个收益是迭代的。所以,有时即使是成本占优,也会倾向去器件归一化的结论。例如,逐步去除了5%精度的 电阻,归一化到1%。
第二, 器件归一化,都是需要进行专题分析的。因为也有工程师为了归一化,对电路原理没有充分分析,导致的归一化带来“问题引入”。所以,当时我的部门当时有一个 表格,“器件归一化分析.xls”的excel表格,把每个器件,原来选型,归一化的选型,更改的原因,都做好记录和原因分析。一是让每个做归一化的员工 都充分考虑分析,二是问题都有记录,便于评审,三是出了问题,好打板子。
单板归一化
除了器件归一化,更高一个层次的归一化,就是单板归一化。(单板这个概念,我稍微澄清一下,我刚到华为的时候,也觉得这个词很奇怪。因为通信设备,都是机框,背板,加各个功能模块的电路板,各个功能模块的电路就叫做“单板”,硬件工程师,一般也叫做“单板硬件”)
单板归一化带来的好处,首先是电路的种类少,电路的种类少的好处有两个:一是生产成本降低,二是硬件维护成本降低,三是软件开发和维护的成本降低。
第一、单板归一化的先决条件首先是处理器归一化。其实,华为的有的产品这点做得其实不好,X86、MIPS、ARM、PPC全部都用个遍,所以一个硬件平台,需要配备各种软件人员,操作系统搞N套,VxWorks和Linux,BIOS各种配套。
第二、单板的归一化,要注意产品的衍生。第一个版本的机框上的单板所实现的功能,如果后续的产品可以使用,应该直接可以用,不需要再开发。如果不注意这 点,第一个版本的单板,到第二版本时,发现不能相互借用。反过来,再修改第一个版本的电路板,来适应新版本。有时问题更糟糕,就是完全不能兼容,只好重新 开发。单板的规划显得非常重要。
第三、单板归一化时,虽然电路部分兼容了,但是结构件不兼容。对于市场人员的配置来说,仍然是两种配置。一样是失败的。
平台归一化
那么如果发现不同的硬件平台的架构雷同,功能类似。那么机框也可以归一化。只需要制作不同的电路功能模块,就可以实现不同的功能需求。
但是不同的硬件形态都是有他存在的意义的,如果强行归一,市场未必会接受这种事情的发生。例如用一个运营商的平台去归一一个企业应用或者家庭应用的产品,可能就未必能够成功。
网络架构归一化
这个说法是我自己想的,早在08年的时候,华为就在讨论“云管端战略”了,当时不是很理解。当我们一个运营商平台部门,跟“服务器”的部门合并的时候,似乎理解了点什么。
当X86处理器足够强大的时候,所有的运算,不管是否性价比最高,都送到云端进行处理,那么所有中间的存储和计算都显得不重要了。那么整个网络的结构,就是终端+管道+云存储和云计算。
既然计算和存储设备都是一样的,那作为运算和存储的设备,也就不需要那么多样化了。这时网络存储设备,和服务器就显得尤为重要。
这也是华为成立IT产品线,做重点战略投资的重要原因。
所以现在也就不需要那么多网络节点和网络平台了,只需要超强的处理和存储能力和宽广的通道,多样的终端。
五,“专题分析”是设计硬件最核心的工作,而不是画原理图
因为今天是周末,写点轻松点的。
先说个故事,传说哈,大家当笑话听。
早期,我大中华自研的潜艇,都是海蓝色的,跟军舰一样颜色“蓝灰色”。后来我大海军去参观前苏联的军事演习,发现俄国人的潜艇不是蓝色的,是黑色的。于是 回来大讨论,为啥俄国人的潜艇是黑色的。猜想:一定是黑色在夜里面不容易被发现,所以油漆成黑色的。于是全国油漆大运动。后来才知道,原来俄国人的黑色不 是油漆,是黑色的橡胶,消声瓦。于是我们也贴橡胶,可是我们贴了橡胶之后就潜艇跑不动了,因为我们的潜艇的动力不如别人。(以上故事纯属虚构,如有雷同, 请把发生时间改为清朝。)
为啥在这里说这个照葫芦画瓢失败的故事呢。我觉得很多硬件工程师有个误区,觉得自己的核心竞争力是在于会使用几个软件(cadence、Protel), 画画原理图,画画PCB。我早期的一份工作就这样,最大的本事就是照葫芦画瓢,抄Demo板,抄以前成熟的电路,如果碰到了新的电路设计,一般是按照参考 电路先画出电路,再通过调试,去尝试,碰到问题,再去解决问题。
那么我现在的观念是,硬件工程师最值钱的地方是在于懂硬件原理,懂得电路分析,模电数电原理,电磁场理论,而不是会使用画图软件。
那么华为是怎样做电路设计的呢?为什么会有专题分析的说法呢?为什么电路设计的时候要做专题分析?
第一、 例行的,每个电路一般都会做几个必选的专题:电源、时钟、小系统;把每个管脚怎么用,怎么接,对接的管脚的电平是否满足要求,都需要文档化,分析清楚。在 选用新器件的话,对应硬件工程师的工作量还是比较大的。但是如果是其他公司,直接按照推荐电路设计就完事了。电源专题,需要分析电源需求,每种电源的电压 范围,电流需求,动态响应,上电时序;时钟专题,针对每个时钟的输入的电平标准,频率,抖动等参数,时钟时序,并按照各种时钟解决方案进行优化;
第二、 当电路设计过程中,碰到一些新的问题,之前团队中没有接触过的问题,或者认为是重点,难点的内容,会专门做这个问题点的专题分析:例如我们做过的一些双 BIOS启动,摄像头的红外LED的驱动,主备倒换啊,之类的,就会把一个问题点分析透,然后再动手做画原理图。
第三、 那么在开发硬件的时候,Demo只是作为参考,每一个依据都是来自于datasheet,除了看芯片的数据手册之外,还要仔细查看数据手册的勘误表 errata,核对datasheet与Demo的差一点,如果器件有checklist还得核对checklist。曾经开发AMD的时 候,datasheet、Demo、checklist,三个文档对不上的情况。也出现过,一个比较难复现的问题,后来查看了Errata,发现是厂家芯 片升级了,修正了bug,而我们还在采购老版本的芯片。
第四、 由于项目本身有交付时间要求,那么在有限时间内其实不可能做到每个问题点都做得深入透彻。那么问题来了:
是怎么做到的呢?首先,每个项目都有《问题跟踪表》,而硬件团队由于事情非常的杂,所以把这个表要用的非常好,不然丢东拉西很正常。我曾经把这个表应用到 家里装修。这个表的原理很简单,就是记录,问题内容,责任人,完成状态,完成时间。但是只要你坚持用,你会发现,你问题不会跟踪丢,做事情会比较有条理, 而且会有成就感。用了这个表以后,发现问题之后,先记录下来,即使现在不解决,那么也会识别他要不要解决,什么时候解决。其次、问题分优先级,任何项目都 是带着风险前进的,那么识别出高风险的问题,优先解决高风险的问题,带着低风险的问题继续走。这也是华为电路设计中“0欧姆”电阻用的比较多的有一个原 因,识别出风险之后,但是又分析不清楚,或者来不及分析,只好做兼容设计。这里不得不感慨一句,在你的设计过程中,你马虎对待,没有分析清楚的问题,最后 一定会暴露出来。
所以,在“菊花厂”做硬件工程师,“专题分析”是设计硬件最核心的工作,而不是画原理图。
通过这个方法,用1~2个月做电路分析,而用1~2周时间画原理图,取代了,画图,调试,改版,再调试,在改版的形式。
多快好省,是不可能同时实现的,那么硬件工程师有责任做很好的折衷和权衡。
六,器件选型
一、关于“器件选型规范”:
在我进入华为的时候,当时整个公司都在“规范”运动,什么都写规范,人人都写规范,什么任职、绩效、技术等级都看规范。(大公司用KPI来引导,容易搞成“运动”)。
所以当时,按照器件种类,很多人写了各种器件选型规范。当时,原理图评审的时候,听得最多的就是“规范就是这样写的”,这里面有一些问题:
1、写规范的人不一定水平高,或者写得不细致,如果出现错误那就更是害人了。
2、规范有时抑制了开发人的思维,什么都按照规范来,不一定适合实际的设计场景;例如我需要低成本设计,但是规范强调的是高质量,就不一定适用。
3、有了规范之后,也会导致部分开发人员不思考,例如晶振要求在50MHz以上,放pF级的电容进行电源滤波,而低于50MHz的不用。大家都不想为什 么,自然也不知道为什么;再例如网口变压器防护,室内室外,按照各种EMC标准的设计要求,直接照着画就可以;但是很少有人想为什么,也不知道测试的结果 怎样,等实际碰到困难时就抓瞎了。的确在有的时候提高了工作效率和产品质量,但是工具也发达,人也就越退化,这是必然。
4、有些器件的选型,不适合写规范,因为器件发展太快,有可能等你规范写好,器件都淘汰了。例如:在X86处理器进入通信领域了之后,处理器选型规范就显得多余。
规范确实能带来好处。但是,并不是所有工作都适合用规范来约束。硬件工程师要能跳出“参考电路”、跳出“规范”,从原理思考问题和设计。
当然规范还是非常有用的一个手段,是大量的理论分析+经验积累+实践数据的精华。我觉得当时我看得最多的规范,是《器件选型的降额规范》,这是基于大量试验,实际案例,总结出来的器件选型的时候,需要考虑的内容。
例如:规定选用铝电解电容的时候,需要考虑稳态的工作电压低于额定耐压90%;而钽电容,稳态的降额要求在50%;而陶瓷电容,稳态的降额要求在85%;因为这里考虑了一些器件的实效模式、最恶劣环境(高温、低温、最大功耗),稳态功率和瞬态功率的差异……等等因素。
二、器件选型需要考虑的因素:
在华为的PDM系统上,器件都有一个优选等级“优选”“非优选”“禁选”“终端专用”等几个等级。
工程师可以根据这个优选等级来直观的感受到器件是否优选。
那么器件的优选等级,是考虑了哪些因素呢?
1.可供应性:特别是华为这样厂家,有大量发货的产品。慎选生命周期处于衰落的器件,禁止选用停产的器件。我2005年时曾设计过一个电路,设计的时候就是拷贝别人的电路,结果加工的时候发现器件根本买不着,由于器件停产了,只能在电子市场买翻新的器件。
对于关键器件,至少有两个品牌的型号可以互相替代,有的还要考虑方案级替代。这点很重要,如果是独家供货的产品,是需要层层汇报,决策,评估风险的。
2.可靠性:
散热:功率器件优先选用RjA热阻小,Tj结温更大的封装型号;处理器选型,在性能满足的情况下,尽量选择功耗更小的器件。但是如果是Intel这样垄断的器件,你也只有忍受,加散热器,加风扇。
ESD:所选元器件抗静电能力至少达到250V。对于特殊的器件如:射频器件,抗ESD能力至少100V,并要求设计做防静电措施。(注:华为是严格要 求,禁止裸手拿板的。我本来也不理解,后来我带团队之后,发现兄弟们花大量的时间在维修单板;我们的团队就非常严格要求这一点,看似降低效率,其实还是提 高效率的。至少不用总怀疑器件被静电打坏了。)
所选元器件考虑更高的湿敏等级。
安全:使用的材料要求满足抗静电、阻燃、防锈蚀、抗氧化以及安规等要求。
失效率:避免失效率高的器件,例如标贴的拨码开关。尽量不要选择裸Die的器件,容易开裂。不要选择玻璃封装的器件。大封装的陶瓷电容不要选择。
失效模式:需要考虑一些器件的失效模式是,开路还是断路,会造成什么后果,都需要评估。这也是钽电容慎选的一个重要原因。
3.可生产性:不选用封装尺寸小于0402的器件。
尽量选择表贴器件,只做一次回流焊,就完成焊接,不需要进行波峰焊。部分插件器件不可避免选用的话,需要考虑,能否采用通孔回流焊的工艺完成焊接。减少焊接的工序和成本。
4.环保:由于华为大量的产品是发往欧洲的,所以环保的要求也比较严格。由于欧盟提出无铅化要求,曾经整个公司的几乎所有的硬件工程师都在做无铅化的整改。
5.考虑归一化:例如某产品已经选用了这个器件,并且在大量出货的时候,往往有时这个器件的选型并不是很适合,也会选择,因为不但可以通过数量的增多来重 新谈成本,还可以放心的选用,因为经过了大批量的验证。这也是为什么倾向于选用成熟期的器件,而慎选导入期和衰落期的原因。
6.行业管理:某一个大类,例如:电源、时钟、处理器、内存、Flash等等都是有专门的人做整个公司的使用的规划和协调,提前进行市场调研,分析,编写规范。他们会参与到新器件的选型上来。
7、器件部门:专门有器件部门的同事,会分析器件的失效原因,可靠性分析,拍摄器件的X光,评估器件寿命等等工作。
8、成本:如果在上述因素都不是致命的情况下——上述的因素都是浮云,紧盯第八条。
百度文库上面有一篇文档《电子元器件选型规范》,写得挺好,不知道是哪家公司流出来的,虽然有些过时,但是分立器件和思想还是可以阅读和借鉴的,有兴趣的同学可以看一下:http://forum.esm-cn.com/FORUM_POST_1000163993_1201253163_1.HTM
七, 白板讲解
团队开发文化,那是华为中央硬件部的老大最自鸣得意的管理方法。团队开发文化,在多人协作的开发项目中还是非常有效的管理方法。
个人觉得“白板讲解”是团队开发文化中最精华的内容。
把一个电路原理讲清楚,一般是在其他企业或者开发团队中,很少做的事情。但是有一个原则,如果你不能够把道理讲清楚,那么你一定自己没有搞清楚,或者没有 理解到位,或者,其中,一定有什么内容是你忽略的内容。那么最后一定,出问题的地方就在这。也学这有点墨菲定律的意思。但是,讲清楚,一定可以帮助你成 长。如果你掌握了某一个知识点,拿出来讲解给大家听,那么你一定会是掌握的最清楚的那一个。
白板讲解的好处之一:深刻理解细节,当多人讨论的时候一定把原理讨论得更透彻,一是确保设计是正确的,同时也保证达到整个团队的最高水平。
我在10年的时候,因为那时候项目停滞,我就专门把开关电源那个部分的每个细节,都拿出来讲解,一共讲了10次左右,后来把Buck电路的每个细节都讲一 遍之后,我觉得对开关电源的原理才有了稍微透彻一点的理解。然后再把10次讲解的内容整理出来,就成了一个《单板电源是怎样炼成的》的教材。同时增加了电 源调试经验丰富的老魏同学的经典案例,组成一个比较完整的电源教材,在公司内部广为传播。
白板讲解的好处之二:很多很多的讲解,组成一次培训,很多的培训就是一套教材。整个团队讲解越多,技术积累就越深厚。
曾经有一段时间搞PCI协议的逻辑,同时也有另外一个同事同时在看。我由于已经上手开始调试了,同时也做了各种仿真,所以对整个协议的理解还是比较清楚 的。而另外一个同事的主要手段就是看代码,和协议原文,所以他并不是理解代码写的原因(因为逻辑写作的时候,有一些技巧性的内容在里面,例如:如何利用基 地址寄存器,确定存储空间的大小)。
当然,他开始讲解的时候,我就没有作声,因为当时我们都是新员工,主管都看着,别人组织的讲解,也不好抢了别人风头。后来由于他讲的内容有太多的错误,我实在看不下去,就指出他的错误。他当然不服气,表示他是正确的。
但是事后他又向大家表示,他原先的理解是错误的。
这件事情之后,我的项目经理(PM),跟我说:白板讲解,最厉害的地方其实不在于大家把问题搞清楚。而在于,“白板讲解”是一场比武,它能让团队里面的每个人做技术攀比,促进大家不断的提高技术。同时,也是在主管面前,谁水平高水平低,一目了然。
白板讲解的好处之三:在团队内部是最有效的技术比试,是骡子是马拉出来溜溜,别整天文人相轻,考评时相互不服气。有本事的,没本事的,一拿出来讲,全部都清清楚楚。
一个团队,甚至一个公司,一个国家,它的成功或者失败都是由这个国家的绩效考评体系,人才选拔体系决定。白板讲解给团队的技术排名提供了最有利的数据支撑。
研发团队大都气氛沉闷,状态不好的时候疲疲沓沓,开发周期拖延,效率不高,好像这是绝大多数企业的研发现状。
为什么这样呢?因为相互之间不交流,人是社会人。整天埋头写代码的团队,肯定是问题很大的团队。如果坐在一起,面对面,或者背对背,都需要qq、或者espace这样交流,一天一个团队不说一句话。那自然大家人情冷漠。
虽说白板讲解是技术比试,但是大家都心态open的话,其实这样的比试也是相互促进感情的一个重要手段。
白板讲解的好处之四:有效改善组织气氛的重要方法,增进团队成员之间的技术认可度,只有愿意表达自己观点的团队才是有战斗力的团队。
我现在自己创业,其实发现华为的那一套,讲解,培训,例会,跟踪,其实还是最有效的。
毕竟华为是根据中国人的特点,长时间,多人,多团队,多项目实践出来的非常成熟的一套研发管理办法。自然华为的办法适合大公司,也有其一定的自身问题,但 是,再没有更好的办法之前,这些手段不失为很好的方法。特别是白板讲解,去美国硅谷一些大公司、小公司看过的话,一定发现这些公司的工程师办公桌旁边都放 着一块白板。只要一讨论问题,就是“来画一下”。
白板讲解的好处之五:白板讲解的重要特点就是“用白板”,用白板的好处,就是避免口头表达的传达一次的误差;把讲的内容一条条记录下来,便于梳理思路;通过大面积的白板展示要讨论的内容,便于更多人都参与到讨论中来。
另外我对白板讲解还有自己的几条建议:
1、 当你的团队还没有白板讲解的,你可以勤于找别人讨论问题,达到白板讲解的效果。
2、 如果你带团队,还没形成白板讲解的氛围。可以先僵化,再优化。先强制大家养成习惯,体会到其中的好处,再让大家自发自动的进行讲解。
3、 在华为的朋友(或者其他大公司的朋友),如果是技术屌丝,那还得多在主管面前多讲解;如果你已经有机会给领导汇报了,那还是多联系PPT。因为PPT的本质还是白板。当然讲的内容要是主管感兴趣的内容,认可的内容,“以客户为中心”——你懂的。
4、 一开始,你得克服自己的心理,有可能这个内容是你还不懂的,一定要敢于问,敢于讲。不能因为技术羞耻心阻碍自己的技术进步。一方面,多看资料,勤学习新内 容,功夫要实在;另一方面,要勤讨论,只有讨论才能知道自己的技术不足,理解错误或者不到位的地方。跟不同的人交流多了,你就是这群人中,最懂的那一个 了。
5、 另外还是多利用互联网,多在QQ群,论坛里面问问题。也许有人嘲笑你,说这是低级问题,可是你问多了,自然就进步了,因为每个人都是从低级来的。
6、 在华为,有主管强制每一个项目组成员,是不是讲解了。在其他公司可能没有这样的环境和氛围,就靠你自己勤于讨论。
我计划我的孩子以后上学了,他到学校学到的东西,都讲给我听,这样才保证他是理解了。
白板讲解,看似简单,其实里面的哲学还是挺深刻的,看各位理解到什么程度了。
八, 问题攻关
因为世界上没有完美的东西,所以就算再高的水平开发出来的产品也不可能像蒙娜丽莎一样完美无缺。所以不管大问题,还是小问题,都可能有问题。
第一部分、网上问题造成的三种后果:
1、 网上事故
2、 网上问题
3、 单板返还
网上事故
最严重的当然是“网上事故”,网上事故一般是造成“安全事故”、“客户损失”、“客户投诉”。等等情况。
最严重的网上问题,自然是“安全事故”,危机客户人身安全。
例如曾经有一个海量级发货的设备,曾经因为修改背板时,动了一条电源线的走线。这个电源线,被修改后,隔着绿油与机框的金属件,碰在一起。由于绿油本身有一些绝缘的作用,所以在研发测试和生产测试的过程中并没有暴露这个问题。
但是由于在运输过程中,震动等原因,造成绿油在此过程中被磨损。在客户出上电后,有的设备出现的了短路,发生了烧板的情况。
这是非常严重的情况,如果着火,发生火灾,在运营商的机房,那是非常严重的事故。
但是,这种问题发生的时候,已经各种机框和单板发往五大洲,上百个国家。去解救这个问题,付出了非常惨重的代价。
网上事故的另外一种情况,是造成运营商的业务中断;按照话费一分钟0.6元计算,一个省的运营商的用户都是千万级,甚至亿级的。如果造成客户的一分钟的业务中断,带来的损失,如何计算?
正式由于这个原因,所以大多数运营商的设备,都有备份机制。例如核心侧设备的内部交换模块,一定是1+1冗余备份的;如果是DSP资源,一些信令处理单元一般都是N+1备份的。这样如果出现单点故障,既不影响用户业务,也不影响设备的容量规格。
第三种情况,就是客户投诉。有可能虽然没有造成什么严重的后果,如果客户投诉了,这个问题也会比较严重。例如,新机框和新单板邮寄到运营商处。这是出现 了,电路板插不进去的情况,自然客户会非常恼火,觉得非常影响公司的品牌形象。那这个事情就会非常大。或者很早以前,任老板在现场的时候,某四川移动的领 导,说“你们的设备还不如大唐好看”。于是,结构部的人就倒霉了。
网上问题:
如果网上出了问题,那么一定通过一些手段,例如原先设计好的一些“可维护性”、“可测试性”的软硬件设计,尽量的去定位问题。
当然这些措施都不能影响客户的正常业务。
另外,会有一些寄存器,或者一些日志,去查看设备异常的记录。还可以查看一些设备的“临终遗言”。临终遗言,会利用处理器复位前,向存储区域存储的关键信息,便于后续去发现和解决问题。
单板返还:
一线交付的人员一般都会抱怨:“你们研发都是三招:复位,下电,换单板”。
其实网上问题分析,如果已经用上这三招了,那说明这个问题已经比较严重了,说着基本上是硬件问题了。
可是“单板返还率”是非常重要的KPI,决定着大家的“考评”。所以维护人员都希望单板不要返还,或者不要记入指标。如果真的硬件已经不能正常工作了,那么一定会操作这个单板返还到实验室,进行失效分析,找失效原因。
以上不管是哪个级别的问题,哪怕是实验室发现的一些问题,都非常重视。因为如果任何一个问题,都可能造成不可预见的效果。所以对每个问题都刨根问题,分析彻底。
另外就是在做一些试验(EMC、环境),或者在测试的过程中,发现和暴露的问题,都会当做网上问题一样重视,进行一些问题的攻关。为什么呢?
因为有一个理论,问题越早解决,所付出的代价越小。
问题攻关的三个信条:
1、 凡是“实验室”问题,如果不解决的话,一定会在网上出现。
2、 凡是出现过的问题,一定可以被复现。
3、 凡是不能复现的问题,一定是没有找到复现的规律。
案例1、当时有一款NetLogic的处理器(NetLogic的网络处理器来自RMI。RMI收购了处理器创业公司Sandcraft,它本身又被NetLogic购买。后来NetLogic被博通收购),出现了器件失效的情况,但是网上还没有出现类似的情况。
但是,有没有找到规律,是如何让器件失效的。于是双方进入了扯皮阶段。但是通过X光照射,发现失效的器件是焊盘开裂。但是是什么让焊盘开裂呢?当时怀疑了应力,高低温。试了各种措施,但是始终没有答案。
后来大家讨论和试验的过程中,就有同事发现,单纯的低温和高温,都不足以引起器件失效。但是当高低温经历次数过多之后,器件失效的概率明显提高。后来这个同事通过多次试验,反复地使用热风qiang和液氮,加速器件的老化。就非常容易出现焊盘开裂的情况。
当拿着这个结论再去找Netlogic时,对方只能投降,承认问题,同意修改器件的工艺。
非常说明问题的两件事情:
第一, 后来实验室出现故障的单板,基本都是厂家改进工艺前的问题。
第二, 另一个发货量很大的产品,在2年后,网上出现大规模这个问题的单板。
案例二、如果在试验中发现问题,一定会把问题分析清楚,或者把问题解决掉。也许这个问题解决很难,经历时间很长。但是这个问题一定把记录下来,根据优先级把问题最后解决掉。
例如曾经一个同事在做试验的时候,发现三极管有漏电流。
理论分析之后,由于三极管作为开关管使用,所以理论分析不可能产生这么大的电流,导致电压变化;把三极管更换成MOS管,也无济于事。
由于这个漏电流是在低温的时候才会出现的。所以当时就用液氮,让三极管处于极其低温的状态(-10度以下),试验中温度情况也差不多在这个范围(-40度到0度)出现问题。
但是经过两周的试验,都没有找到规律,偶尔会复现一下问题,完全没有规律。
我跟那个同事觉得非常费解,当时就观察天气,觉得这个三极管的漏电流感觉与天气有关。如果阴天,就容易复现,如果晴天就完全不复现。
通过这个规律,我们开始怀疑“湿度”作祟。
后来,我们通过增加器件的湿度,果然非常容易复现问题。
把我们的结论去找厂家,厂家确认SOT封装的器件,在高湿度低温的前提下确实会有漏电流的现象。这个漏电流不是通过PN节流走的,所以跟PN节的漏电流的规律完全不符合。
而是从SOT32的塑料封装上漏走的电流。
后来通过调整电路参数,规避了这个问题。
所以整个分析和试验的过程,哪怕是极端的环境条件下的问题,也绝不放过。
其实产品的问题攻关,就是这样的,扎扎实实的解决每一个问题之后,产品质量才有试制性的提升。
形式:
1、攻关组:任何问题攻关,为了表示重视,一般都会成立个什么问题攻关组。就是把相关的人,还有有经验的人走组织起来,一起参与讨论,这样可以拓宽思路,同时丰富经验。避免钻牛角尖,或者无头苍蝇。
2、例会:重大的问题攻关,一定是每天例会,把前期讨论的问题汇总跟踪,把每项措施对应的结论记录下来,明确下一步的措施。
3、日报:这种问题攻关,一定是领导重视的,所以每天都会发布进展。当然领导也会看,偶尔也会发现很久没有进展,之后会调配资源,协调兵力。
4、总结:问题解决之后,一定把中间的九九八十一难,整理成案例、培训,给大家分享。这样所有的同事,虽然没有亲身经历这个攻关过程。可以通过分享,学习相关专业知识,和问题解决的思路。得到提升。
问题攻关是痛苦的,问题突破了也是非常有成就感的,痛并快乐着。
最后两句话:
越是不舒适区,其实就是你成长的机会。
越是困难的时候,越是要咬牙顶住;只要你坚持,你离成功永远都只有一步之遥。
本文转自http://forum.esm-cn.com/FORUM_POST_1000163993_1201253678_0.HTM?click_from=1000076713
,7655902278,20160125,ESMCOL,FORUM_ALERT