任正非:全面提升软件工程能力与实践,打造可信的高质量产品

2023-05-16

最近看了点软件工程相关的东西,转一下这篇文章。全面提升软件工程能力与实践,打造可信的高质量产品

致全体员工的一封信

我今天写信,是要和大家沟通公司如何全面提升软件工程能力和实践。二十年前的IPD变革,重构了我们的研发模式,实现了从依赖个人、偶然性推出成功产品,到制度化、持续地推出高质量产品的转变。至今为止,我们的产品和解决方案已经在170多个国家安全稳定运行,并因此积累和赢得了全球数万客户的信任。今天,我们又处在一个新的起点,全面云化、智能化、软件定义一切等发展趋势,对ICT基础设施产品的可信提出了前所未有的要求。可信将成为客户愿买、敢买和政府接受、信任华为的基本条件。可信不仅仅是产品外在表现的高质量结果,更是产品内在实现的高质量过程,是结果和过程的双重可验证的高质量。而只有全面提升软件工程能力和实践,才有可能打造出可信的高质量产品。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

任正非

2018年12月27日

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

任正非:全面提升软件工程能力与实践,打造可信的高质量产品 的相关文章

随机推荐

  • IDEA2021新建第一个Spring项目(使用两种方法)

    文章目录 软件版本Spring开发环境搭建 xff0c 软件安装Apache Common Logging APISpring使用两种方法来创建Spring项目1 1使用IDEA新建一个普通项目1 2导入Spring包1 3新建两个java
  • 如何把苍白的一年写成耀眼的年终报告?写完当场加薪的那种

    毕导的文章简直太好玩了 xff1a https mp weixin qq com s Q qd2ky6AoKM1Dn3cC9q9w 啊 xff01 光阴似箭 xff0c 日月如梭 xff01 不知不觉我在公众号写了一年了 xff0c 你也到
  • 【每天一个 Linux 命令】网络相关命令(ifconfig、route、ping、traceroute、netstat、ss、telnet、rcp、scp)

    文章目录 ifconfig命令ifconfig命令使用示例route命令语法route命令使用示例ping命令语法ping命令使用示例traceroute命令语法traceroute命令使用示例netstat命令语法netstat命令使用示
  • Windows常用CMD命令

    参考下面几篇博客 xff1a Windows 用户需要知道的 CMD 常用命令总结 CMD常用命令大全 CMD常用命令
  • PIXHAWK飞行模式

    PIXHAWK飞行模式 从mission planner中设置pixhawk的飞行模式时 xff0c 一共给出了多种飞行模式 xff0c 分别为 xff1a MANUAL STABILIZED ACRO RATTITUDE ALTCTL P
  • FileZilla 通过sftp(ssh)协议远端登录Linux虚拟机

    FileZilla nbsp 通过sftp ssh 协议远端登录Linux虚拟机 参考网址 1 Filezilla连接虚拟机Ubuntu16 04传输文件 生命长跑的博客 CSDN博客 2 问题解决手记 VMWare虚拟机与本地主机不能互p
  • 【Python学习笔记】Python学习资料汇总

    不懂算法的程序员不是好程序员 xff0c 学习Python xff0c 可以更好的使用算法 xff0c 使用ML DL来处理数据 这篇文章就对自己觉得不错的学习资料进行汇总 Python基础教程 xff0c Python入门教程 xff08
  • 【LeetCode刷题日记】1716. 计算力扣银行的钱

    题目 Hercy 想要为购买第一辆车存钱 他 每天 都往力扣银行里存钱 最开始 xff0c 他在周一的时候存入 1 块钱 从周二到周日 xff0c 他每天都比前一天多存入 1 块钱 在接下来每一个周一 xff0c 他都会比 前一个周一 多存
  • 美团人的写作基本功是如何练成的

    在美团 xff0c 王兴非常重视写作 他曾经说过 xff1a 写作是我要带头苦练的基本功 xff0c 是非常基本的能力 因为一个事情要积累的话 xff0c 就得书面化 写作看起来和业务没什么关系 xff0c 但这是一个非常共通的 极其基础的
  • 【LeetCode刷题日记】382. 链表随机节点

    题目 给你一个单链表 xff0c 随机选择链表的一个节点 xff0c 并返回相应的节点值 每个节点 被选中的概率一样 实现 Solution 类 xff1a Solution ListNode head 使用整数数组初始化对象 int ge
  • Python Matplotlib教程

    Python Matplotlib教程 文章目录 Python Matplotlib教程教程特点阅读条件 数据可视化是什么数据可视化数据可视化应用场景 Matplotlib是什么Matplotlib架构组成1 脚本层2 美工层3 后端层 M
  • 【Python学习笔记】认识anaconda

    可以参考下面几篇文章 xff1a Anaconda完全入门指南 Anaconda介绍 安装及使用教程 Anaconda使用教程一 xff08 新手友好 xff09 另外下面总结一下conda的常用命令 xff1a span class to
  • 【Python学习笔记】 if __name__ == ‘__main__‘ 如何正确理解?

    引言 学过Java C C 43 43 的程序员应该都知道 xff0c 每次开启一个程序 xff0c 都必须写一个主函数作为程序的入口 xff0c 也就是我们常说的main函数 如下所示 xff0c main 就是Java中的一个main函
  • 聊聊我常用的5款动态数据可视化工具

    转自 Python大数据分析 xff08 ID xff1a pydatas xff09 视频当道的时代 xff0c 数据可视化自然也要动起来 我常用的动态可视化工具主要有 Tableau Echarts Flourish Python 这几
  • 物联网十年简史

    分享一篇好文 xff1a 万字长文 xff1a 物联网十年简史
  • 【LeetCode刷题日记】539. 最小时间差

    题目 给定一个 24 小时制 xff08 小时 分钟 34 HH MM 34 xff09 的时间列表 xff0c 找出列表中任意两个时间的最小时间差并以分钟数表示 示例 1 xff1a 输入 xff1a timePoints 61 34 2
  • LQR、LQR-MPC、GP-MPC控制倒立摆

    LQR控制倒立摆 xff1a 倒立摆状态方程 xff1a 目标任务 xff1a 模型参数 xff1a LQR for the cart pole system load 39 cp params mat 39 syms phi phid x
  • 事件驱动和消息驱动

    之前简单写过一些关于事件驱动的文章 xff1a C C 43 43 服务器开发 事件驱动 事件驱动架构 事件驱动编程及设计模式 最近看到一篇不错的文章 xff0c 在此转载一下 xff1a 事件驱动和消息驱动 事件驱动和消息驱动 消息驱动和
  • 如何写好一个数据分析报告,需要注意哪些?

    写一份好的数据分析报告的重要性不言而喻 xff08 只要我写的好 xff0c 升职加薪 年终奖就少不了我 xff09 大家都知道 xff0c 数据分析报告的输出是整个业务分析过程的成果 xff0c 是评定一条业务线的参考依据 xff0c 既
  • 任正非:全面提升软件工程能力与实践,打造可信的高质量产品

    最近看了点软件工程相关的东西 xff0c 转一下这篇文章 全面提升软件工程能力与实践 xff0c 打造可信的高质量产品 致全体员工的一封信 我今天写信 xff0c 是要和大家沟通公司如何全面提升软件工程能力和实践 二十年前的IPD变革 xf