华为是怎样研发的(1)——概述

最近不少朋友咨询的一些硬件问题,发现朋友们没有仔细的看datasheet,也没有好好的作电路分析。我讲一讲华为是怎么作硬件开发的,给正在作硬件开发的朋友一些启示。说的不对的地方,你们批评指正。面试

曾经2007年,刚工做2年的时候去一家小公司去面试。当时考题,我感受我作得很好,面试的时候,对方对我也很承认。可是他当时说:“我须要招一个,在大公司待过的,最好知道硬件开发流程和规范的。虽然你题答得不错,可是咱们须要一个有丰富经验的,最好在华为待过的。”服务器

当时,我就在想“华为的规范和流程是啥样的”,就一直想去看看。以前对华为的面试一直都不是很感兴趣。以后,就很想有机会去华为看看。2008到了华为。工具


我能想到的华为硬件开发的几个不同的点,跟你们分享一下,想到哪写到哪,欢迎你们批评指正。
单元测试



一、 文档,评审,设计。测试

当时刚入职时,三我的作一个电路板。虽然电路复杂一些,仍是有一些人力过剩的。因此,我就被安排去写一个PCIUART的逻辑。优化

我当时是新员工,也急于表现本身,利用周末的时间,估计用了一周的时间,就写完代码,开始仿真了。我觉得个人导师兼主管会表扬一下,结果没有,他说:“你为何没有召集你们讨论?而后再写方案,评审?而后再动手写代码?”我当时是没有理解的,以为我一我的就搞定的事情,为啥要这样劳师动众?spa

如今反思:设计

第1、 从主管的角度,不知道新员工的我的能力,你能把作的事情讲清楚了,他才放心。调试

第2、 从公司的角度,有一套流程来保证项目的交付。那么则再也不太依赖某我的的我的能力,任何一我的的离职,都不会影响项目的交付。这也是华为最了不得的地方,把复杂的项目拆得很是细碎,这样不须要特别牛的人来交付项目。这是为何华为的工程师的收入是思科的N分之一。blog

第3、 从效果角度,毕竟一我的的想法是有限的,把想法文档化的过程,就是整理思路的过程;讨论的过程,就是收集你本身没有想到的过程。正式的评审,是你们达成意见的过程。提早讨论,让相关的人都参与到你的设计中,总比你设计完了,被别人指出一个致命的问题要强得多。

就是由于华为把一项工做拆散了,因此沟通,文档,评审,讨论,变得很是重要。

这个工做模式的缺点,也是显而易见,沟通成本高,工做效率低。


二、 华为的硬件领域的人员构成:

在华为内部里面,人员角色很是多。硬件的人是对产品开发阶段,端到端负责的。

作单板硬件工程师,能够涉猎最多的领域,同时也是工做内容最杂,接触人最多,扯皮的最多的工种。

可是也由于有人专门负责画PCBEMC、电源、逻辑,本来硬件工程师应该作的领域。那么硬件工程师就武功尽废,变成“连连线”。

其实否则,正是因为每一个人都是一个小的领域,没有人统领,因此一个好的硬件经理的做用很是的重要,是贯穿全部领域和所有流程的关键角色。

正如原来华为内部论坛上有一我的比喻的,硬件工程师更像是处理器里面的“Cache”,是全部环节的中转站。

大公司把人的分工分的这么细,也是防止某一拨掌握了太多公司的核心技术,出去单搞了。

三、 华为的流程

其实华为的流程,不少人都知道IPD流程是从IBM来的,同时华为也去咨询过爱立信,爱立信的硬件开发,彻底没有流程一说。

我我的理解:IPD流程已经在华为变种,结合了中国人的特色,华为的企业特色进行了变通和优化。若是华为僵硬的套用IBM的这套流程,也一定不会这么成功。

那么归纳一下华为的硬件开发流程:

需求分析整体设计→专题分析→详细设计→逻辑详设→原理图→PCB→检视→粘合逻辑→投板→生产试制→回板调试→单元测试→专业实验→系统联调→小批量试制→硬件稳定→维护。


流程的根本在于,这个环节作好了,再进入下一个环节。全部的环节其实跟其余公司并无太大的区别,只不过严格把握了进入下一个环节的考核条件。令硬件工程师最纠结的是“没有个节点跟’投板’对应”。


华为支撑IPD流程的系统是PDM(又名爬的慢)

PDM的中文名称为产品数据管理(Product DataManagement)。PDM是一门用来管理全部与产品相关信息(包括零件信息、配置、文档、CAD文件、结构、权限信息等)和全部与产品相关过程(包括过程定义和管理)的技术。

华为全部的器件资料,产品部件,工具,文档,原理图,PCB,逻辑代码等都存在这个系统上。

可是系统过于庞杂,其实比较难使用,跟服务器归档、SVN归档、也容易搞混淆。


后续内容预告:

四、 归一化

五、 专题分析

六、 问题攻关

七、 白板讲解

八、 所谓:一版成功,一版归档

九、 原理图检视

十、PCB检视

十一、DFX

十二、规范

1三、硬件维护

1四、硬件稳定