写点什么

任正非公开信深度解读:两年怎样改变了华为?

两年前要炸掉研发金字塔,今天要投入 20 亿美元全面提升软件质量

2019 年 1 月 04 日

任正非公开信深度解读:两年怎样改变了华为?

2016 年 8 月,一位华为内部署名“泥瓦客”的海归程序员,写下了一篇《华为到该炸掉研发金字塔的时候了》的文章,从组织、流程、环境、工具等四方面怒斥在华为做研发之不易。此文被转发到华为心声社区后引起激烈讨论,更惊动了任正非本人。两年后,任正非签发公开信表示:要投入 20 亿美元全面提升华为软件质量,打造可信的高质量产品。行动计划包括:要从最基础的编码质量做起,视高质量代码为尊严和个人声誉;要重构腐化的架构及不符合软件工程规范和质量要求的历史代码;要建立一支更高水平的 Committer 角色群体…两年时间,华为改变了什么?


两年前的华为

2016 年 7 月,一位署名“泥瓦客”的华为海归程序员,写下了一篇痛陈华为研发弊病的长文,此篇文章不仅在华为心声社区引起激烈讨论,更是惊动了任正非本人。


任正非回应道:在技术工作上的客气是毒品,直面的批评、争论才是良药。


该作者曾在硅谷工作,接触过世界级的开发模式。在其进入华为几年间,和几个做企业业务的产品线有些合作,在此过程中感到华为公司在软件产业的差距还比较大;和中国领先的互联网产品相比,在易用性、贴近用户和产品快速迭代等方面也落后不少。在软件研发领域存在不少问题,这些问题导致华为的 IT 软件产品质量比较低下、开发效率低、产品交付周期漫长,很是让人痛心。具体而言,包括组织、流程、环境、工具四个方面。


此篇文章在华为心声社区引起的讨论也异常激烈,认同作者观点的人不在少数。感兴趣的同学可以戳此《华为到该炸掉研发金字塔的时候了》阅读。这也从侧面印证了,华为在飞速发展的时代,在硬件方面取得了骄人的成绩,却在软件开发方面落后于人。


两年后的华为

两年多过去了,以虚心态度面对这逆耳忠言的任正非、华为高管们,又做出了怎样的改变?


研发投入全球前五

2016 年,华为研发投入 764 亿元,占销售收入的 14.6%。


2017 年,华为研发投入 897 亿元,中国第一,全球第六。


2018 年,华为研发投入 113.34 亿欧元,中国第一,全球第五。


根据 2017 年的数据,华为研发人员约 8 万名,占公司总人数的 45%。近十年累计投入的研发费用超过人民币 3940 亿元,累计获得专利授权 74,307 件;其中,90%以上专利为发明专利。


成立 Cloud BU,加码云计算

2017 年,华为云正式成为一级部门,仅次于运营商、企业业务、消费者三大 BG;截至 2017 年底,华为云上线 14 大类 99 个云服务,以及制造、医 疗、 电 商、 车 联 网、SAP、HPC、IoT 等 50 多个解决方案。


2017 年,华为云销售收入达到 5 亿美元,折合人民币:32 亿元左右。2018 年上半年华为云收入同比增长 700%。作为对比,主要竞争对手阿里云全年营收 11.12 亿美元,份额达 45.5%,腾讯云营收 2.51 亿美元,份额 10.3%。从体量上来看,华为云似乎只是国内云计算市场的搅局者,但从华为计划投入万名研发加码云计算的决心来看,华为云的野望似乎又远不止于此。


布局 5G,决战未来

在无线领域,华为发布了 5G 端到端解决方案,包括无线、传输、核心网、终端(CPE)在内的商用产品,与运营商及主流终端芯片厂商完成 IODT 测试,协助全球多个运营商在多个核心城市完成 5G 预商用部署。


虽然最近几周,中美贸易战背景下,华为在多个国家的 5G 市场遭到封禁,但华为仍旧赢得了 25 份 5G 商业合同,并已向不同国家发运 1 万多台 5G 基站。华为轮值 CEO 胡厚崑表示,在全球移动互联网进入 5G 时代之际,禁止华为进入其电信基础设施的国家将处于严重劣势。


任正非公开信里透露了哪些信息?

今天,我们又处在一个新的起点,全面云化、智能化、软件定义一切等发展趋势,对 ICT 基础设施产品的可信提出了前所未有的要求。


不难看出,云计算、人工智能将是华为接下来的软件研发重点投入领域。而不管是云计算还是人工智能,对于底层软件基础设施的要求都非常之高。在过去飞速狂奔的业务发展面前,华为的软件研发水平没有配套跟上,势必将在未来掣肘高新业务的发展。因此,夯实软件基础设施的地基,将是未来华为研发的前提与重心。


可信将成为客户愿买、敢买和政府接受、信任华为的基本条件。 今天,我们要把可信作为第一优先级,放在功能、特性和进度之上。


最近一段时间,以美国为首的西方国家密集出现对于华为的排挤、打压现象,具体表现为美国全面禁售华为手机、多个西方国家 5G 招标禁止华为参与、基础通信设施移除华为设备等。


在这个时间节点上,任正非对于可信的最高要求,可以看做是释放一个稳定军心的信号:对内部而言,是提振士气;对外部而言,是给合作伙伴一颗定心丸。


公司已经明确,把网络安全和隐私保护作为公司的最高纲领。关键内容包括:安全性(Security)、韧性(Resilience)、隐私性(Privacy)、可靠性和可用性(Reliability& Availability)。


这里进一步阐述了“可信”的衡量维度,这要求公司集体转变观念,追求打造可信的高质量产品,不仅仅是功能、特性的高质量,也包括产品开发到交付过程的高质量。


我们要从最基础的编码质量做起,视高质量代码为尊严和个人声誉。

我们要深刻理解架构的核心要素,基于可信导向来进行架构与设计。

我们要重构腐化的架构及不符合软件工程规范和质量要求的历史代码。

我们要深入钻研软件技术,尤其是安全技术。

我们要遵守过程的一致性。

我们将通过变革形成一套适应上述变化的流程、组织与考核机制。


这一系列的“我们要”,其实就是华为接下来研发改革的行动指南,也即上文如何做到“可信”的全面解答。在过去的印象里,华为集团不是一个以工程师文化闻名的公司,但在任正非的公开信里,我们可以看到了华为构建工程师文化的意愿:


我们将全面强化以 Committer 角色为核心的代码审核和提交机制,代码经过更加严格和系统的审核才能合入版本。为此我们将建立一支更高水平的 Committer 角色群体,负责软件架构的看护、代码的审核和提交,整体保障合入代码的高质量。我们要变革考核机制,要让架构设计好、代码写得好的人脱颖而出,对编程能力不满足要求的人给予帮助和培训。但任何人如果编写的代码长时间不能合入版本,将会被团队抛弃。


变革会给华为带来什么?

历史代码的重构从来不是一件容易的事情,这会涉及到相当多的部门和业务,而且重构相当于给正在行驶中的汽车换轮子,一定会发生很多问题。接下来的几年,华为软件 可能会 经历问题频发的阵痛期。


以 Committer 为核心建立流程,这其实就是工程师文化的开端。一方面,这将有利于工程师地位的提升,另一方面,也可以改变外行领导内行的弊病。最重要的是,一个有良好工程师文化的大公司,必将吸纳更多技术人才的加入,也会得到更加良好的软件开发口碑。可以预见的是,2019 年,华为将举办更多开发者相关活动,未来将会见到更多前缀名“华为”的开发者大赛、Hackathon 等线上、线下活动,加强开发者品牌的经营与完善。


此外大胆猜测,华为是否会建立一个和阿里巴巴一样的技术中台?中台战略最早是由阿里巴巴提出,“中台”是强调资源整合、能力沉淀的平台体系,为直接与用户打交道的“前台”的业务开展提供底层的技术、数据等资源和能力的支持,中台将集合整个集团的运营数据能力、产品技术能力,对各前台业务形成强力支撑。2018 年,腾讯组织架构调整,也设立了中台部门。如果华为要加大软件基础设施的建设,那么成立一个类似“共享事业部”的部门似乎是顺理成章的。


附任正非公开信全文

致全体员工的一封信:


我今天写信,是要和大家沟通公司如何全面提升软件工程能力和实践。


二十年前的 IPD 变革,重构了我们的研发模式,实现了从依赖个人、偶然性推出成功产品,到制度化、持续地推出高质量产品的转变。至今为止,我们的产品和解决方案已经在 170 多个国家安全稳定运行,并因此积累和赢得了全球数万客户的信任。


今天,我们又处在一个新的起点,全面云化、智能化、软件定义一切等发展趋势,对 ICT 基础设施产品的可信提出了前所未有的要求。可信将成为客户愿买、敢买和政府接受、信任华为的基本条件。可信不仅仅是产品外在表现的高质量结果,更是产品内在实现的高质量过程,是结果和过程的双重可验证的高质量。而只有全面提升软件工程能力和实践,才有可能打造出可信的高质量产品。


公司已经明确,把网络安全和隐私保护作为公司的最高纲领。我们要在每一个 ICT 基础设施产品和解决方案中,都融入信任、构建高质量,关键内容包括:


安全性(Security)。产品有良好的抗攻击能力,保护业务和数据的机密性、完整性和可用性。


韧性(Resilience)。系统受攻击时保持有定义的运行状态,包括降级,以及遭遇攻击时快速恢复的能力。


隐私性(Privacy)。遵从隐私保护既是法律法规的要求,也是价值观的体现。用户应该能够适当地控制他们的数据的使用方式。信息的使用政策应该是对用户透明的。用户应该根据自己的需要来控制何时接收以及是否接收信息。用户的隐私数据要有完善的保护能力和机制。


可靠性和可用性(Reliability& Availability)。产品能在生命周期内长期保障业务无故障运行,具备快速恢复和自我管理的能力,提供可预期的、一致的服务。


全面提升软件工程能力和实践,关乎公司未来的生存和发展,与我们每一个人都息息相关。在此,我希望全体员工、特别是软件工程师们主动参与进来,从自己做起,踏踏实实,共同打造可信的高质量产品。


我们要转变观念,追求打造可信的高质量产品,不仅仅是功能、特性的高质量,也包括产品开发到交付过程的高质量。我们知道,功能、特性对产品至关重要,我们更知道,进度对满足客户需求也至关重要。今天,我们要把可信作为第一优先级,放在功能、特性和进度之上。除非客户信任我们的产品,否则这些优秀的特性都没有机会发挥价值。我们各级管理者和全体员工都不得以进度、功能、特性等为理由来降低可信的要求,确保可信的要求在执行过程中不变形。


我们要从最基础的编码质量做起,视高质量代码为尊严和个人声誉。代码就像是高楼大厦的一砖一瓦,没有高质量的代码,可信的产品就是空中楼阁。我们要优化并遵循公司各种编程规范,遵从架构与设计原则,熟练使用各种编程库和 API,编写出简洁、规范、可读性强、健壮安全的代码。


我们要深刻理解架构的核心要素,基于可信导向来进行架构与设计。在确保可信的前提下,要在性能、功能、扩展性等方面做好权衡;慎重地定义我们的模块与接口,真正做到高内聚与低耦合;我们要遵循权限和攻击面最小化等安全设计原则,科学设计模块之间的隔离与接口,提升安全性;低阶架构与设计要遵循高阶的架构与设计原则,在充分理解原有架构与设计的情况下,持续优化;我们要熟悉各种设计模式,重用公共成熟组件和服务,避免重复劳动。


我们要重构腐化的架构及不符合软件工程规范和质量要求的历史代码。我们知道,再好的架构,其生命力也是有限的。随着时间的推移、环境的变化以及新技术、新功能特性的引入,架构也会腐化。面对腐化了的架构,要毫不犹豫地去重构它。同时主动以可信设计原则为导向,去重构不符合软件工程规范和质量要求的历史代码,提升软件架构的生命力。


我们要深入钻研软件技术,尤其是安全技术。软件技术是我们打造产品的基本工具,技术是否先进,技术选择是否合理,将决定我们软件的高度;我们要深入学习架构与设计、编码、测试、安全、可用性、性能、维护性、体验等技术,并科学运用这些技术。


我们要遵守过程的一致性。遵守适用的法律法规、遵循业界共识的标准、规范,确保规范到实现的一致性、代码到二进制的一致性。架构要符合架构原则,设计要遵循设计模式,代码要符合编程规范,最终做到需求与实现一致,达成各项对客户的承诺。我们只有脚踏实地做好每一步,才能真正打造出可信的高质量产品。


为此,我们要改变行为习惯,追求精品。我们要开放透明、积极和勇于揭示问题并主动推动改进。软件开发是一种创造性和艺术性的工作,需要充分发挥我们的聪明才智和潜力。我们要改变只重视功能结果、不重视代码质量的行为习惯,要严格遵守软件工程规范;改变被动的修修补补;改变碎片化知识获取,主动去学习提升并贡献经验、代码,形成共享知识库。我们需要改变的行为和习惯还有很多,对绝大多数人来讲都将是一个痛苦的转变过程,会脱一层皮,但我相信大家能够迎接这种挑战。


更为重要的是,我们将通过变革形成一套适应上述变化的流程、组织与考核机制。我们要完善并增强透明、可回溯和可审计的全流程管理机制,以可信的视角,从初始设计、完整构建到产品生命周期管理,全面提升软件工程能力和实践。我们将全面强化以 Committer 角色为核心的代码审核和提交机制,代码经过更加严格和系统的审核才能合入版本。为此我们将建立一支更高水平的 Committer 角色群体,负责软件架构的看护、代码的审核和提交,整体保障合入代码的高质量。我们要变革考核机制,要让架构设计好、代码写得好的人脱颖而出,对编程能力不满足要求的人给予帮助和培训。但任何人如果编写的代码长时间不能合入版本,将会被团队抛弃。


过去一百年来,世界上许多成功的公司都因不能适应变化而倒下。要适应外部变化,唯有自我进化,我们必须保持开放和持续变革。董事会已决定,全面提升软件工程能力与实践将以变革的方式来开展,由轮值董事长徐直军总负责,公司初始投入 20 亿美元,计划用 5 年时间,在 ICT 基础设施领域实现为客户打造可信的高质量产品的目标。希望您支持并积极投入到这一伟大的变革。唯有如此,我们才能实现未来的愿景和使命:把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。


任正非


2018 年 12 月 27 日


原文链接

http://xinsheng.huawei.com/cn/index.php?app=forum&mod=Detail&act=index&id=4134815


2019 年 1 月 04 日 10:5315130
用户头像
小智 前 InfoQ 主编

发布了 400 篇内容, 共 317.8 次阅读, 收获喜欢 1761 次。

关注

评论 1 条评论

发布
用户头像
任总牛逼
2019 年 01 月 04 日 12:03
回复
没有更多了
发现更多内容

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

JackJiang

网络编程 Netty nio 即时通讯 IM

惊喜!Alibaba架构师终于发布“微服务架构与实践”文档

Crud的程序员

架构 微服务

基于Vue实现一个有点意思的拼拼乐小游戏

徐小夕

Java GitHub H5游戏 H5 游戏开源

【应用运维】公司业务迭代迅速,运维如何高效进行应用发布?

嘉为蓝鲸

可视化 PaaS 运维自动化 部署与维护 发布

Java中NullPointerException的完美解决方案

Silently9527

java8 Optional

6个JDK自带JVM调优工具,一次性打包给你说清楚

田维常

jvm调优

影视剪辑类自媒体运营心得:如何抓住观众的痛点

石头IT视角

SQL数据库集合运算

正向成长

SQL表联结 SQL集合运算

区块链数字货币商城系统开发模式

薇電13242772558

区块链 数字货币

数字货币交易所开发源码,币币撮合交易系统搭建

WX13823153201

区块链IM即时社交通讯系统开发,区块链社交平台源码搭建

13530558032

什么是服务器租用?

德胜网络-阳

2020年底备战—从技术到面试合集

iOSer

ios 编程 面试题 大厂面试 面试题总结

go-zero 如何扛住流量冲击(一)

Kevin Wan

go microservice go-zero goctl

支撑2715​亿元海量订单 揭秘京东大促背后的数据库基石

京东科技开发者

数据库 数据仓库 云服务 云数据库

微服务架构中的“参天大树”:SpringBoot+SpringCloud+Docker

小Q

Java 学习 容器 面试 微服务

区块链币支付系统开发搭建,USDT支付平台源码

13530558032

区块链交易所软件,数字货币场外交易系统搭建

13530558032

.net core增强工作流组件,基于稳定平台,多项目整合开发

雯雯写代码

SpringBoot-技术专题-Hystrix学习介绍

李浩宇/Alex

为什么容器内存占用居高不下,频频 OOM

996小迁

Java 架构 容器 面试 k8s

《程序员面试金典》.pdf

田维常

面试

解读登录双因子认证(MFA)特性背后的TOTP原理

华为云开发者社区

算法 totp 密钥

这才是图文并茂:我写了1万多字,就是为了让你了解AQS是怎么运行的

鄙人薛某

Java 并发编程 AQS 并发 ReentrantLock

接口测试并不只是测试参数和返回值

测试人生路

接口测试

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

小Q

Java 学习 编程 架构 面试

2020双十一,阿里云GRTN拉开直播和RTC技术下半场的序幕

阿里云视频云

架构 云直播 直播 流媒体 直播架构

直播卖货已成趋势

anyRTC开发者

音视频 WebRTC RTC

容器和虚拟机到底有啥区别?

网管

容器 虚拟机 容器化

深圳区块链钱包系统开发,区块链钱包app源码

13530558032

vscode + vim : vscode 全键盘使用方案

lmymirror

vim vscode Spacemacs

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

2021年全国大学生计算机系统能力大赛操作系统设计赛 技术报告会

任正非公开信深度解读:两年怎样改变了华为?-InfoQ