【编者Peter Ye按】

席育文,前IBM/HP/EMC高级销售经理,前FusionIO/SanDisk(闪迪)北方区销售负责人。前些天和席总交流时,发现他敏锐地捕捉到了一个信息,而这个信息有可能是被大家忽略的,就是华为投资20亿美元重写30年代码的潜在意义。个人认为,以华为的决心和影响力,或许能带动更多公司真正重视软件工程。也许多年之后再回顾,发现这可能是一个标志性事件,是中国To B的公司未来走向全球前列的里程碑。毋庸讳言,我们也需要客观清醒地意识到,这个未来是较远的未来。


当然,国内可能已经有不少公司,早就按照软件工程的规范在开发软件了。以华为的体量和国际影响力,下如此大的决心和投入,势必能起到IT行业里的示范作用,让更多的软件公司或者开发人员提高规范化,和打造可信、可靠产品的意识


席育文的原文标题是《全面提升软件研发国际竞争力,华为又走在了前面 --- 由华为投资20亿美元重写30年代码想到的》。坦白说,编者为了吸引眼球,换成了现在这个标题 [欠揍] : ) 


---正文开始---


2019年2月,华为轮值董事长徐直军接受了6家英国媒体的联合采访,在回答记者关于NCSC (英国国家网络安全中心)2018年报告的问题时,徐直军详细解释了为什么要花三到五年时间,花费20亿美金的额外投资,提升华为的软件工程能力。


早在2010年11月,华为和英国政府就成立了HCSEC(华为网络安全评估中心),其目的是为减轻因华为参与英国关键国家基础设施部分而产生的任何感知风险(perceived risks),该中心为英国电信市场使用的一系列华为产品提供安全评估。在HCSEC 2018年提交给NCSC的报告中,指出华为的工程流程有一些“技术问题”,据说可能会导致“英国电信网络出现新的风险”,这就是前文提到的记者的问题。

华为总裁办电子邮件001号, 任正非致全体员工,有什么潜在的重大意义?_软件工程

上面这段描述很绕口,翻译成大白话就是:英国网络安全机构觉得华为产品中包含的,过去三十年积累起来的代码不规范,易读性易修改性差,因此存在安全隐患。华为对此意见起初是抵触的,想想也是啊,这些产品早已经定型了,无数的用户在使用中也没有发现问题,武功招数好使就行,何必要纠结姿势是否好看呢?华为表示,愿意对新增代码达到要求,但是对历史代码进行重构,代价太大且无必要。但是,英国人很执着,你要入我的网,就得按照我的标准办。这下华为犯难了,很多人认为这是鸡蛋里面挑骨头,用过于苛刻的标准限制中国企业,是一种歧视。


事实真的是这样吗?我们可以参考一下Google的例子,在2017年出版的一本由Google资深工程师撰写的《Google软件工程》里面,有这样的内容:

“Google 的大部分软件,每过几年,就要重写一遍。这样做无疑是成本高昂的。。。然而,这种做法也带来了巨大的好处,对于Google的能力提供以及长期的成功,可谓至关重要。一般来说,每过几年时间,产品的需求就会发生巨大的变化。这种变化是随着产品周围的软件环境和其他技术的变化而发生的,而且技术和市场的变化,也影响了用户的需求、欲求和期望。用过几年的软件,都是在过去老的需求下设计的,其设计思路并不适应当前的需求。还有,老的软件通常复杂度上升。重写代码就能够降低复杂度,造成复杂度升高的那些历史包袱是完全不必要的,它们所应对的需求已经不重要了。另外,重写代码也是转移知识的好方法,同时还给新加入的团队成员带来主人翁的感觉。这种主人的体验,对于提高生产率是必不可少的:当工程师们感到软件是属于“自己的”,他们才会投入忘我地开发功能并解决问题。频繁的重写代码还能够鼓励工程师在不同项目之间流动,这种流动将多样化的、新鲜的思想带到项目中来。频繁的重写代码,也有助于确保代码所用的技术和方法都是最先进的”


2018年底,华为董事会经过激烈辩论,终于拍板:花三到五年时间,根据面向未来的标准和要求,彻底地变革整个软件的生产过程,同时对历史上所有的代码以未来的标准进行重构,这就有了华为公司“总裁办电子邮件“ 2019年001号,任正非致全体员工的一封信:《全面提升软件工程能力与实践,打造可信的高质量产品》。

任正非在信中提到:“二十年前的IPD变革 (编者备注:IPD是集成产品开发, 也即Integrated Product Development的简称),重构了我们的研发模式,实现了从依赖个人、偶然性推出成功产品,到制度化、持续地推出高质量产品的转变“,揭示了华为的软件研发能做到国内领先水平的原因。华为是在1999年开始从IBM引进IPD的,到今年2019年正好20年,在过去的20年里,IPD帮助华为从游击队变成了正规军,研发队伍从几千人到几万人,软件产品也覆盖到手机操作系统、应用、云服务,客户遍布170多个国家和地区,造就了华为中国第一跨国高技术企业的辉煌。


但是,现在华为又一次走到了十字路口,众所周知的事实是,2018年中美发生贸易摩擦以来,中兴、华为首当其冲成为美国开刀的对象,说华为不安全,可能含有间谍软件,窃听国家机密。明眼人都能看出来这是莫须有的罪名,但是美国影响力大啊,说不行就不行行也不行,有国际上一帮小兄弟跟风,不用审判华为的罪名好像已经定了,5G产品国际市场乌云压顶,华为怎么办?


怼天怼地行不通,话语权弱势啊;怨天尤人自暴自弃?这不是华为!任正非在公开信里用17个”可信”,做出了回答。不是说华为不安全吗,我就找英国的权威机构来检查,还真发现问题了,但不是美国指控的那些,而是软件工程不规范导致的安全隐患。好,我们改,自己革自己的命,再大的代价也要付,目的就是要让全世界看到,华为在“可信”问题上是认真的,不仅仅是产品外在表现的高质量结果,更是产品内在实现的高质量过程,是结果和过程的双重可验证的高质量,华为是一家把网络安全和隐私保护作为最高纲领的负责任的跨国企业。我们有理由相信,就像20年前的IPD变革一样,这次的软件工程变革,将塑造出一个全新的华为,一个真正领先于世界的中国公司。


说了这么多华为,想顺便谈几句中国的软件产业,网络上一直有一个热门话题,就是中印软件业的对比。经过四十年的改革开放,中国无论是经济总量还是诸多具体行业,都远超印度,唯独软件产业,二者起步时间相似,但是印度领先于中国,是无法否认的事实。中国人聪明,勤奋,我们的程序员996,中国市场大,基础设施好,为什么还会落后呢?我在网上读到的一位中国程序员的故事能说明一些问题:笔者在工作中接触到印度软件公司开发出来的软件,整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是! 印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。 而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是Outlook式的还是Visual Studio式的界面。到最后就成为Code高手,对某些特定的开发工具精通,但是就是不能保证能够把一个软件稳当、完整的开发出来。 


有人说这个例子以偏概全,也未见得准确,但以此鞭策自己,寻找差距,找到努力的方向,总是不错的。说中国软件行业的发展水平低,与我们庞大的市场容量不相匹配,一个主要的论据,就是缺乏重量级的软件企业,体量规模上不去,软件工程水平就低,无法突破“手工作坊”的瓶颈。


令人欣慰的是,随着近些年中国互联网公司的崛起,以阿里、腾讯、百度为代表的软件行业新势力,将中国软件工程的水平提升了一个层次,根据中国电子信息行业联合会发布的2018年中国软件企业百强榜,华为、腾讯、百度、中兴、浪潮、中通服、中软国际、东软、中软股份、京东位居前十。


唯一真正走出去的华为,在国际市场的严酷竞争中,正在挑战自己,百尺竿头更进一步,衷心期待华为成功,引领更多的中国高科技企业走向世界,为人类的美好未来做出更大的贡献。


参考链接:

华为轮值董事长直面6家英国媒体:5G不是原子弹,是造福所有老百姓的

https://www.guancha.cn/politics/2019_02_16_490341_1.shtml


全面提升软件工程能力与实践,打造可信的高质量产品http://xinsheng.huawei.com/cn/index.php?app=forum&mod=Detail&act=index&id=4134815


英国HCSEC对华为安全风险的调查 

https://www.sohu.com/a/242724737_99928473


Google 软件工程 - 重写代码

https://www.jianshu.com/p/ef008e653179


印度程序员vs中国程序员


---《全面提升软件研发国际竞争力,华为又走在了前面 --- 由华为投资20亿美元重写30年代码想到的》 全文结束---


关于文章的分享,编者我个人受益良多,在技术研究的深入上,我其实做得还很不够。但愿意分享,使得我结识了很多良师益友,和他们的互动,让我提高了认知,让我对行业和技术有了更系统更全面的了解。


个人以为,写成文章进行公开的分享,

1、首先要打破的是完美的心态,有些时候,时效性比完美更重要;

2、敢于分享,或者说暴露自己的缺陷(包括观点或认知上的),也给自己多了一个得到批评、快速迭代和完善的良机;

3、结识更多有相似观点的朋友,有更多机会交换和丰富观点;

4、观点是有时效性的。你较早想到的具有敏锐性或前瞻性的观点,如果不及时分享,可能几个月或者几年后就不新鲜了;


在“乐生活与爱IT”微信公众号上,除了一些要求非常严谨的,剖析技术原理的文章,大部分文章只要揭示如下三点就可以:

1、新事实;2、新观点;3、论据和相对权威的出处;


并不要求文笔要有多好,重要的是,给人以启发。欢迎大家进行原创文章的投稿,可联系我。例如,席总的这篇文章,给我的启发是:在华为的启发或带动下,中国To B的公司的软件开发走向正轨,未来可期走向全球前列