欢迎访问企业培训网!本站提供优质培训课程和培训服务!
免费注册 | 会员登陆 | 将本站设为首页 | 将本站加入收藏夹

四年前华为人要炸掉研发金字塔,今天看来如何?

编者按:

最近看到一篇文章,发文时间其实是4年前,是华为内部员工阐述了当时华为研发组织、流程等存在的问题。当时此文引起了任正非、丁耘(华为常务董事、运营商BG总裁)的重视,他们也对此作出了回应。

当时,任正非,特地以此签发邮件:在技术工作的客气是毒品,直面的批评、争论才是良药。

4年后的今天如何呢?让我们先来看看原文作者泥瓦客发现了华为研发存在哪些问题。

华为到该炸掉研发金字塔的时候了——关于我司软件研发效率和质量提升的思考

近年,在从CT到ICT的转型的过程中,华为公司的研发如何能解放和发展生产力,大幅提升研发效率,是我们未来能否立足于强者之林的一个关键。

笔者以前曾在美国硅谷工作,和世界上最顶尖的软件工程师和计算机领域的牛人一起共事过,也先后带领过不同的团队交付了一些业界领先的企业级软件产品。

几年前进入华为,和几个做企业业务的产品线有些合作,在此过程中感到华为公司在软件产业的差距还比较大;和中国领先的互联网产品相比,在易用性、贴近用户和产品快速迭代等方面也落后不少。

我们在软件研发领域的确存在不少问题,这些问题导致我们的IT软件产品质量比较低下、开发效率低、产品交付周期漫长,很是让人痛心。

因此笔者写下了这篇文章,希望能抛砖引玉,供大家思考。


一、组织

1、架构设计SE与开发分离,一些架构师与专家基本不懂开发

一般各个产品线都会设有架构设计部,主要成员也会以各个层次的SE为主。这些SE也都曾是程序员,但通常因为长期脱离开发部门,主要精力都放在会议、胶片和文档的编写上,以致编程的能力基本丢失,新技术学习的机会也有限。例如一个移动开发的SE,自己对怎么在Android、iOS上进行开发一点儿都不清楚。在这样的基础上,做好真正的架构简直是空谈。在硅谷成功的公司里,好的架构设计师一般是融入在产品团队中的,随时都能上手编程,而且编程能力非常强。

2、开发者多为低级别,比较难有技术积累

一般基层程序员在工作几年后,有能力的都被提升到PL、PM、SE等职位,员工也都想着被提拔,渐渐成为管理者。大家觉得,光做开发没有职业前途,永远都是在金字塔的底层。而在硅谷的公司,说话比较有分量、收入相对较高的有很多是在各层级中的技术佼佼者,他们备受尊重,干得也开心,不少人根本不愿意转做管理者。

编程其实是一门艺术,热爱和用心是非常重要的,也相应的容易出成绩。这就是为什么在计算机领域,如果做到顶尖程序员,一个人顶一百个很正常。如果程序员觉得没有前途,不思进取,而资质较好的很快又被提拔为管理者,那我们的软件开发将很难有技术和人才的积累。

3、多头管理

我司负责产品开发的部门有PDT、PDU等,相应的拥有PDT经理、PDU经理、架设部经理和SE、Project Manager、PO经理、RDPDT经理、Line Manager、Project Leader等多个角色。这种组织结构清晰地定义了每个Leader的角色,确保一个大的产品开发周期和质量有保证,同时保证开发的人力得到最合理的应用。

但它带来的问题也显而易见,就是各个角色在产品开发过程中有不同的想法和意见,可能出现多头指挥,让开发人员无所适从,沟通的成本也非常大。同时,这种复杂的管理结构对需要快速迭代的IT软件开发也会带来很大制约。大家看看微信的起家史,应该能感觉到,对于一些相对独立的、需要快速迭代的IT软件产品,往往在一个比较强的(产品)经理带领下的一个扁平化的团队效率会高很多。

4、沟通成本高

由于组织复杂,中间层较多,各种各样的任务从上面下来,落实的方法就是各种各样的会议,所以现在很多研发员工的不少时间都被各种各样的规划、研讨、问题回溯、客户支持等会议占用。员工笑称:白天是用来开会的,晚上加班才有时间编程序。针对于不同的组织和项目,能尽快找出相应的沟通节点并能有效地减少这些沟通节点,是一个项目和部门领导需要经常思考的问题。


二、流程

1、IPD流程不太适合需要快速迭代的软件

公司引入的IPD产品开发交付流程给公司带来了巨大的收益。但时代在发展,技术在演进,IPD流程更适合偏硬件的产品开发,为了保障产品质量,开发交付的周期较为漫长。从基层员工的角度,IPD流程节点的很多环节,如为完成CLINT减少Warning的数字、DTS值减少等僵化的指标,实际上反而可能会加大产品的风险,降低产品质量。

2、安全红线耗费资源巨大

安全红线的目的是防止产品出现安全漏洞,初衷是好的,但执行起来相对比较僵化,效率也低。试想一个互联网产品为了过安全红线一个版本等一两个月,根本无法生存。

建议参照一些先进公司的方法,把安全意识教育和SDLC(安全开发生命周期)融入到员工日常开发习惯中,在开发的同时进行测试和督促整改,对于一些红线达标比较好的部门,可以适当放松以加快交付,检查出问题,相应的问责机制要严格。把安全意识充分融入到开发者的血液中,让安全红线检查“形同虚设”。


三、环境

1、没有时间抬头看路

开发员工长期在上述流程、组织问题和客户支持的压力下加班加点,几乎没有时间“抬头看路”,只会用一些比较老旧的技术,也不太会站在巨人的肩膀上前进,走了不少弯路,消耗了更多的资源。

互联网时代,MOOC提供了大量实时、实用、先进的网上课程(包括免费的和收费的),如Coursera、Udemy、Pluralsight、Stanford Online、edX、YouTube相应的Channel等,想要学的课程几乎什么都有。

现在的计算机技术日新月异,新的思想、方法、工具等层出不穷,例如Java语言是2000年左右在企业软件领域崛起的,几乎成为很多平台、服务端软件的必选,但随着大规模分布式架构、云计算的兴起,它的短板,如内存管理/GC不可控性、多线程或是异步对IO的控制效率,过度依赖较为重载的OOP等问题,如果使用不当很容易造成灾难性问题。Google内部渐渐把它们有些后台软件都迁移到了他们自己发明的更为先进的Go语言环境下。Dropbox更是两年前开始使用了比Go还先进的Rust语言,无缝迁移了90%以上的云存储平台。试问,我司有几个人用过甚至是听说过这些语言?我们的研发员工如果不去不断地提升,怎么可能赶上时代的步伐?怎么能开发出质量好的产品?

2、技术任职资格效果不佳,传帮带困难

理论上,技术任职资格是用来给搞技术的人提供晋升通道的。但实际应用上,虽然有破格提拔机制,总体上还是按资排辈,评委也大多是由有较高级别技术任职资格,但对现在技术并不太了解的管理者担当。

同时,任职从申请、技能鉴定考试到做答辩胶片、答辩,消耗了员工不少时间和精力。硅谷的公司一般在这方面比较灵活,技术通道由360 Review和与其工作密切相关的主管直接评价、申请和授予,有些员工在28-33岁左右已经有了非常高的技术职级和地位。

因为技术晋升通道不顺畅,能力较强的员工渐渐离开了开发岗位,较多时间沉浸在文档、胶片和会议中,新来的年轻员工过几年又在走同一个循环。是否可以彻底打通技术升值通道,鼓励有能力的人带新人,同时完善奖励机制,在及时激励和长期激励上下功夫,让研发人员看到技术发展空间,乐于编码,留住人才。


四、工具

1、研发办公环境

在硅谷先进的软件公司里,MacBook Pro/Air是标准配置,方便携带,随时随地编程。很多软件及移动开发调试都在家里、公司、食堂随时可以进行,包括编程、编译、Review和提交;数据库、各种Library、工具和Docker等都可以在本地的OSX/Linux环境下运行。需要的话,也随时可以跟公司内部服务器通过命令行互联,进行文件、代码的传输和测试。

笔者在硅谷工作时认识一个美国小伙子,他基本都是深夜在家里写代码,白天几乎看不到人,但效率和质量都很高。而我们的大部分研发人员,都被局限在公司内部拥挤嘈杂的敏捷岛,用着桌面云进行着低效开发。

2、代码库管理、Review、Checkin和Bug Tracking工具

基于Web/Git的Review和Checkin的相应工具差距非常大。通过源程序的Review审批和Checkin的机制,可以很快传递能力和互相学习,提升代码质量。同时,在任何一个时间点,任何一个高级工程师或是领导都可以通过这些工具来了解员工真正在代码上的贡献和价值,审查进度和版本分支,进度和质量也好把握。以笔者的经验,这是最好的传递技能的工具之一,往往有一个能人,很快就能把一批年轻人的能力带起来。

我司一般用的是内部开发的DTS bug tracking的工具,比较死板,总体和上述提到的最新的Git源程序管理工具、Review工具、自动化和Nightly Build、敏捷管理工具无法无缝地连接在一起。

3、知识资源的获取

由于公司内网Proxy权限问题和受限于大家英语水平的原因,大部分员工还是习惯于使用百度进行程序、库、方法和问题的搜索。但由于共享性差,同时技术水平与美国相差比较大,所有能在百度上找到的好的资源非常有限,质量也较差。美国软件开发人员已经把诸如StackOverflow、GitHub和Google作为学习和资源分享不可分割的一部分。


一石激起千层浪。上述文章,直接引起了大量华为内部争论,摘录如下:

1.很多研发的同学都抱怨过,聪明的人都去做管理了。根源还是研发团队的作战方式。一个项目需要那么多人,必然需要有管理,就有所谓的管理者,管的人越多,管理者做技术的时间越少。要转变开发的模式,班长的战争。如果都是一个个的小团队,就不需要那么多的所谓的技术管理者了。

2.这些问题其实5,6年前我们内部早已经发现,如今从一个外界来的专家身上也提出了。因为以前我们的人员、组织快速膨胀,其中最难的问题:骨干员工都提拔去当官、当专家、专家不碰代码的情况确实存在。随着这两年我们的人员、组织逐渐稳定、任职上的牵引,让骨干员工深耕一线开发岗位,核心骨干负责架构代码、核心模块代码、产品的设计正在成为现实,只要坚持下去,研发扁平化组织我们也会实现。

这是由华为公司两大基因决定的!

基因一: 基于不信任的管理

假定了一个团队或者一个员工个体,没有办法自动地按要求完成任务,一定要有外力的干预和指导,才能保证航行在正确的轨道上。不信任的假定,造成了领导很焦虑,员工被干扰。

基因二:组织复杂,各自为政

华为缺少扁平化管理,层级多,通道多。这样复杂的组织机构,造成了信息沟通对齐非常困难,每个组织机构又有自己的考评,都要考虑自己的团队建设和发展,价值呈现。人都有趋利的本性,必然会希望更多坚持对自己发展和价值有利的,而放弃那种不太出彩又要大体力投入的。

其实话说回来,说难听点,这叫多头管理多通道管理,说好听一点,这不就是管理上的民主吗?这两个基因,在华为这种大公司,不太可能改变掉,局部试点是有可能的,比如搞搞精英团队,或者在某些项目上试点扁平化,都是有可能的,至于全面改变,不现实。而且真的改成那个样子,还指不定出什么更大篓子。

3.在公司做研发8年多了,以前也心态稳定,相信板凳要坐十年冷,以学徒的态度和品质去面对自己承担的工作任务,对业务转换和工作安排基本上没有抱怨和怀疑。可是这两三年来,我越来越不自信了。看见版本经理满口脏话地安排工作的时候,我在想研发人员的地位和自尊哪里去了?研发汪的待遇就是这样吗?如果一个研发人员连尊严和荣誉感都不能感知的话,那点钞票能代表一切吗?能够做出代表着工匠精神的产品吗?

4.之前我觉得公司是硬件+技术型公司的代表,是挺立于新世纪技术浪潮的旗舰,但现在我觉得公司和这个目标渐行渐远。

5.写的很真实到位,尤其是LM/PL不编码、SE不会编码等现象还是比较普遍的。组织分散、会议多、协调多也是顽疾。这两年研发显率提升在工程、方法上进步较多。在怎么让编码人员能够长期在编码岗位上发展,是要好好研究解决。

6.导致研发质量不高的原因还有一条:过量的外包开发人员,通常是一个PL带着100人的团队,95个都是外包的。完成任务和用心做事儿的差别还是很大的,PL也根本管不过来,代码质量自然不高。

7.技术专家在华为非常没地位,绩效/股票/分红/任职等方面都什么话语权,一直干技术会非常担心失业,因为很多领导认为,一个技术老专家干的活,找个新手让技术老专家带一段时间就可以代替老专家了,技术老专家成本高,常常会成为降成本很不错的选择,华为这种氛围,真是让想专心搞技术的兄弟心寒。

8.说一个几天前来我司某基地出差来的见闻:邻桌某产品经理在和项目管理人员espace语音,话间大意:我们组那个A童鞋,能力可以说是最强的,但他有个很严重的问题,他不会展示自己,他做的很多高质量的工作,但是无法很好的向领导展示。所以他的这个上半年绩效不能给太高。。。坐在旁边“无意”听到谈话的我一脸懵逼,内心一紧,又是个悲催的汪啊。

9.我就没搞明白,华为对自己的定位到底是软件公司还是硬件公司?向互联网看齐,你客户跟互联网的是一样的?你的客户能让你低成本试错吗,你的客户可以让你远程推送补丁吗,你的客户允许你的产品产品闪退吗?现实是,一个bug,华为的芯片得重新流片;一个bug,华为的基站得退服,客户得跟政府解释;互联网追求快,华为追求稳。

10.作为一个以产品/项目交付为主的公司,解决方案架构师的作用是什么?主要是通过架构保持整个组织对于解决方案认知的一致,这是为什么很多架构师/SE花大量时间在架构图/PPT上的原因,这也是保证整个组织、很多项目不乱的一个很重要的因素(我没有说唯一因素,没有否定coder的作用,显然再好的架构也需要coder去实现),这跟做产品运营的互联网公司,就一个版本持续不断优化,业务上线速度优先是不一样的,比如:大家都知道淘宝的架构从一开始2000美金买的简单购物网站到现在的超大规模网站,10年之间架构推倒重来了5次,包括其中请sun的Java专家重写了一遍系统,这在华为是不可想象的,在华为首先要讲清楚WHY,工程商人,投入产出先讲清楚,至少要保障逻辑上成功,这就是为什么投入大量人力在前端,也是IPD的重要作用之一。

今天,我们请到方老师——华为公司原无线产品线创始团队成员、能源产品线IPMT核心成员(首席技术官)、华为公司管理蓝血十杰获奖者——对此也发表了一些自己的看法:

作者提的这些问题,有对IPD理解偏差的因素,IPD是一个研发投资管理框架,他谈的内容是IPD流程框架下的软件开发流程的弊端。不过,指出的问题和给出的建议确实很到位。
 
因为客户需求的不确定,以及竞争的愈加激烈,产品交付周期越来越短,软件开发模式确实需要从传统的瀑布模型转型为敏捷迭代模型。敏捷迭代不仅有利于快速交付,也使质量尽快稳定。
 
第二个是研发组织阵型,组织结构一定要匹配业务架构,组织运作一定要顺应业务特征。敏捷开发后,最佳做法是大平台下的精兵团队。如果还是采用传统的多层级结构,在开发效率、响应速度上就会落后于时代。
 
就是说,研发管理不能僵化,拿过去的成功应对新的局面;不能照搬,而要分析自身面临的环境和态势。要与时俱进,一切以是否有利于研发质量、成本和效率为准绳。

而如今,已经4年过去了,华为是一个学习型组织,从来没有停止变革、优化的步伐,不断在学习业界最佳实践。

目前在云业务、消费者业务软件领域,已经广泛导入了敏捷开发、全功能团队,其开发效率、质量和交付周期已经跟上了业界领先水平。

在ICT领域,因为嵌入式软件的独特性,会有所不同,从2018年开始投入20亿美元,全面深化软件工程,对存量软件和增量软件进行安全固化和质量升级,确保ICT软件质量支撑网络设备的安全性、健壮性。

【相关课程】

·从技术走向管理——研发经理的领导力与执行力

·如何打造高绩效的研发团队——研发人员选、育、用、留之道

·新产品开发流程、研发项目管理及产品平台化

·成功的产品经理——产品经理的野蛮成长

(信息发布:企业培训网  发布时间:2020-11-2 20:41:50)
绩效考核暨KPI与BSC实战训练营
版权声明:
1、本网刊发的各类文章,其版权均归原作者所有;附带版权声明的文章,其版权以附带的版权声明为准。
2、本网刊发的各类文章仅代表作者本人的观点,不代表企业培训网立场,本网站不对文章的真伪性负责。
3、本网刊发的各类文章来源于其他媒体,转载刊发仅为网友免费提供管理知识与资讯,不以赢利为目的。
4、用户如发现本网刊发的文章存在任何版权方面问题,请与本网联系,本网站经核实后将进行相关处理。
企业培训导航
·按培训课题:
企业战略
运营管理
生产管理
研发管理
营销销售
人力资源
财务管理
职业发展
高层研修
标杆学习
认证培训
专业技能
·按培训时间:
一月课程
二月课程
三月课程
四月课程
五月课程
六月课程
七月课程
八月课程
九月课程
十月课程
十一月课
十二月课
·按培训地点:
北京培训
上海培训
广州培训
深圳培训
苏州培训
杭州培训
成都培训
青岛培训
厦门培训
东莞培训
武汉培训
长沙培训
最新培训课程
年度培训计划
企业培训年卡
企业培训专题
爆品战略
国际贸易
股权激励
领导执行
战略规划
学习华为
项目管理
工业工程
产品经理
采购管理
生产计划
供应管理
精益生产
现场管理
车间管理
仓储管理
营销创新
客户服务
谈判技巧
销售技巧
微信营销
电话营销
网络营销
客户管理
行政管理
招聘面试
劳动法规
薪酬管理
绩效考核
培训体系
团队建设
内部培训
档案管理
内部控制
纳税筹划
非财培训
应收账款
预算管理
成本管理
地产培训
中层经理
商务礼仪
沟通技巧
班组管理
最新信息 | 培训需求 | 网站动态 | 网站地图 | 关于我们 | 联系我们
企业培训网致力于为客户提供优质培训服务!推动企业进步,助力企业腾飞!
客服电话:010-62258232  QQ:25198734  网站备案:京ICP备06027146号