来源:
http://mp.weixin.qq.com/s?__biz=MzI0OTA5MjU0MA==&mid=2654481019&idx=1&sn=03eb0ea7d13c1c784a4beea82fc9db1e&scene=23&srcid=05109SbF94dltQzXBkDBkjjR#rd
前两天,在拧螺丝的时候,深感创业之艰难,项目交付只辛苦。于是调侃自己在朋友圈发了这么一句话,引起大家的热议。
很多朋友也来调侃我,说是螺丝钉升级成为螺丝刀。其实我并不是这个意思,而是表达一种“技能”和环境的缺失。
在类似于华为这样的大企业,其实大家都是工业社会的一个流水线的一个环节,如同一个高速运转机器的一个螺丝钉。
1、大公司硬件人员的技能缺失
刚进华为时,就被一个前同事说:“你怎么在华为搞硬件?好像没啥意思,PCB有专门的人layout、EMC有专门的人、连电源都是模块化设计,还有电源部的人支持,逻辑也是逻辑部的人写的”。
但是,我倒是不以为然,每个环节,虽然不是直接去做的,但是硬件人员作为整个项目的轴心,还是可以去掌控结果,任何一个环节的问题,都会有涉及,所以只要你有心去深入钻研,还是可以达到一定深度的。
但是这里面存在两个问题:
第一、虽然硬件人员可以去涉及,但是具体的操作,往往还是相关领域的人去操作的。所以会导致,原理你可以比较清楚,但是工具、你可能并不熟悉操作。例如,PCB绘图工具、结构的设计工具、仿真的工具、热设计的工具等等等等,在大公司里面,你都是依赖专业人士去操作和保障的。硬件人员,或者业务部门可以去提出各种需求,但是没有进行实操。
所以华为离职的硬件工程师,往往连PCB绘图工具都不熟练。
这种情况,当你离开这个温房一样的环境的时候,你就会发现捉襟见肘。
第二、大公司,往往知识是割裂的,分工很细。你企图去深入其他领域的工作,其实由于信息安全,保密等原因,你是很难去深入别的领域的工作的。例如,你是一个嵌入式软件的人员,你可以掌握代码,但是你没有机会去看原理图和PCB,你看到的是《软硬件接口文档》;除了掌握自己的代码,更多的需要沟通的技能。
曾经,在华为时,有一个KVM的板卡,硬件人员开发完成之后,里面的视频压缩、以及合成、传输的代码,这块的代码本部门没有;作为一个希望产品化的产品,这块内容相对比较复杂,短时间靠自身力量去完成,是有困难的。其实其他部门就有相关的代码,领导也比较有狼性,去交涉,希望能够获取代码;但是对方就是说:“不给,你咬我啊?”,大领导的意思:也是你们各司其职,不要越界。于是只好项目终止了。可以看到大公司里面的部门墙还是很严重的。
还有一个案例,当时在调试多核PowerPC,也是部门第一次的使用多核PowerPC,相对没有经验。但是底层软件安排的人技能不足,回板后,几周毫无进展。但是硬件人提出,我们来一起看代码,底软的负责人是反对的,两个意思:你们也不懂,看啥? 按照公司规定,是不能给你们看的。
后来,一个底软高手做其他项目,也用同款处理器,看看我们项目迟迟没有进展,就一起来讨论。结果,刚讨论5分钟,就知道启动地址的配置都不对,如何能启动?
2、流程:有流程的时候是负累,没有的时候是渴望
在华为时,硬件人员经常需要走的流程是PDM,俗称:“爬的慢”。你需要建一个元器件库,引入一个新器件,更改一个生产的细节,都需要走这个流程。在里面的时候,你会觉得,好负担。
但是,当你离开这些“负担”的时候,觉得“裸奔”好轻松啊,可是,裸奔的问题就会接踵而至:
PCB厂家加工的版本,跟你投板的版本,怎么会有出入?封装怎么会有这么低级的错误?PCB封装怎么会做错的这么低级?你选择的器件,怎么会有可靠性的问题?(在华为,新器件引入都需要做可靠性评估)新器件,怎么会采购价这么高,大批量也没有降价的空间?
新员工建封装库的时候,太随意,等你看到结果的时候,发现:封装又错误、命名也是混乱的。连1脚都没有标注,工厂都不知道怎么焊接。。。。
3、华为研发的成功的一个关键因素:组织的积累
小公司开发的时候,比较依赖研发人员的基本素质,和水平的高低。核心骨干,显得特别的重要;而华为开发,不太依赖是谁开发,高手和新手,在这个研发体系,开发出来的差距不会特别的大(当然也会有差异):
元器件库是现成的;大量的可参考设计;大量的规范;大量的案例库;讨论群交流;论坛分享,求助;各个领域的专家资源保证。
这种组织的积累,是长时间的律动,项目总结、案例分享、持续改进、积累下来的书面化的财富。
而在小公司,由于附加值低,利润薄,研发人员疲于奔命,老板再没有追求,很容易,导致没有总结和积累。犯过的错误,重复犯,持续犯。
虽然,我们这些已经离开华为的,知道华为的这些做法是好的,但是,由于从零开始,也没有积累,即使自己肚子里面有很多案例,由于没有书面化,或者没有时间和机会书面化,并不能有效传递给其他同事。不可避免在初创团队,犯一样的错误。
一些华为离职的朋友,在做咨询,往往给社会上企业传递的是一些方法,而这些企业期望得到的是成品,现成的流程、案例库、规范。这样更短平快一些。
4、脱离品牌做硬件,你需要低成本交付的技能
华为已经积累了品牌,尤其是近几年,在手机市场有所斩获,品牌效应还是不错的。有了品牌之后,就不用再价格战上面厮杀。并且,其产量大,供应链稳定,获得低成本的途径和方法也比较多。
但是,对于初创团队来说,低成本,主要是依赖设计水平。由于华为虽然追求低成本,但是华为出身的工程师,未必具有特别强的低成本技能,因为原来环境太优越了。跟很多处于生死线上的小公司比,其实华为工程师未必具有特别强的低成本设计能力。
在没有品牌的时候,低成本设计还是一项很重要的技能的。
5、习惯与以客户为中心,缺乏市场洞察力和产品定义能力
曾经拿着一份商业计划书,去见一位华为背景的投资人,对方问了团队情况,发现都是华为的,说了一句:“华为出身的人,做事很认真,但是没有惊喜,你们团队需要找一个阿里或者腾讯出来的人”。我反思这件事,其实说明华为背景的人,在产品思考上面是缺失的。
在华为,当工程师,在培养的是:项目交付,产品质量,满足客户需求,完成领导安排的任务。同时间,相同优秀的人,在阿里和腾讯,正在培养的技能是:思考我们应该做什么样的产品。
其实,以上说的问题,并不只是华为工程师离职之后去创业可能会碰到的问题,而是所有原来在打工,现在白手起家去创业,或者加入初创公司,面临的问题。所以,硬件十万个为什么,希望能够为大家多做一些,把一些共性的事情,能够大家做了之后在这个平台分享出来,免得大家都走同样的弯路,造成社会资源的浪费。
每个工程师都想做Linus一样,能够通过群体的力量,做一件Linux这样伟大牛逼的事情。但是,基于Linus超强的能力,和一个核心团体无私的奉献。
6、在新创业时代,需要超强的个人能力
很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。
Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?
事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。
不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。
安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。
Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
而我们大多数成长于华为这样的大公司,技能被割裂的很严重,离开平台往往不会做事。所以,我们希望把初创企业做成功,需要有超级工程师的技能。这个就需要我们格外的努力,才有可能成为Linus这样神一样人物,只有这样的技术人员才有可能撼动巨头公司,带来革命性的技术。