写点什么

华为专家:回顾软件工程历史,如何站在后天看明天

  • 2019-09-17
  • 本文字数:1395 字

    阅读完需:约 5 分钟

华为专家:回顾软件工程历史,如何站在后天看明天

大家好,我依然是很不低调,自我标榜“Andy Liu 出品,必定来自双手沾满泥的精品实践”的 DevCloud 某产品经理。


业界对于战略规划,有一句通俗的说法,叫做“站在后天看明天”。软件工程从诞生之初就是研究并克服软件危机而应运而生的。


软件工程 50 多年的历史,主要经历了三个阶段,并努力解决这三个阶段的主要问题。

阶段 1(借鉴制造,管理偏差)

最早的软件开发都是像手工坊一样,整个过程经常会出现混乱,无序甚至失控,软件产品的质量也参差不齐。当时克服危机的主要方法论是借鉴硬件制造,管理软件开发过程中的偏差,重点解决的是软件开发的质量、可控、有序的问题,包括 CMM,面向对象,瀑布开发等。

阶段 2(认清本质,提升效率)

第一个阶段因为强化了偏差管理,虽然偏差得到了一定的控制,但是也抑制了一定的自由,影响了软件产品的交付效率,软件开发变得趋于机械和过度流程化。而且当时适逢互联网产业的兴起,尤其是面向消费者的互联网产品肆意生长。这个时候速度、效率和创意越来越重要,甚至对于很多企业生死攸关。


因此很多业界从业人员开始呼吁回归到软件的本质:软件的生命周期是个智力和脑力活动,不同于制造业。随之敏捷宣言公布,至今,敏捷的理念和实践依然方兴未艾。总体而言这个阶段是为了尝试解决软件开发的效率和速度问题。

阶段 2.5 (理念延伸,全生命周期)

敏捷早期主要是解决软件开发的问题,其实并没有覆盖到软件的全生命周期,而随着互联网渗透率越来越高,很多的软件是通过互联网来提供服务,不再是通过软件包下载由用户来安装,提供软件服务意味着软件的生命周期延伸到运维、运营,DevOps 是这个阶段的一个代表,DevOps 也是顺应软件即服务这个趋势的,也是敏捷理念向运维、运营的延伸。


虽然软件工程历经了几个阶段,但是并不能因此认为新一代的软件工程方法就可以鄙视上一代的。笔者一直秉承的观点:任何的软件工程方法论,都一定是要解决产业问题的,不同的业务场景,不同的商业和开发模式面临的问题和挑战不尽相同,因此也需要与之相匹配的软件工程方法。不能解决产业问题的软件工程方法论,最后都被抛弃了。


在华为,其实并不存在所谓的软件工程鄙视链,华为的市场覆盖很广,从消费者业务(手机等),到企业业务,到运营商业务,都是不同的场景,不同的商业和开发模式,因此华为内部是多种软件工程方法和流程并行。只是在这个过程中,每一种工程方法都在互相借鉴,迭代改进,所以华为的 CMM 不完全是业界的 CMM,华为的敏捷也不完全是业界的敏捷,都融合了华为自己的实践和理解。


正如笔者经常说的:瀑布依然为手机终端高质量品控、全球海量发货保驾护航,敏捷依然让我们在运营商市场做到质量和效率的最佳平衡,DevOps 也在为华为云提供 Build-In 的使能


从去年开始,从很多公共的渠道,大家也都知道华为在对华为内部的软件工程进行新的战略投入,站在外人的角度,通常会觉得华为的软件工程已经相当不错了,但是为什么华为还要进行如此大规模的战略投入呢?华为从来就不是个激进派,这背后华为的出发点来自于什么呢?


  • 如果您希望更多的了解华为为什么没有软件工程鄙视链?

  • 如果您希望了解在已经相当不错的基础上,华为为什么又如此大手笔的进行软件工程的战略投入?

  • 如果您希望了解软件工程的下一步何去何从,借以了解软件工程要解决的新的产业问题是什么?


那么欢迎您来 HC 大会现场听笔者“瞎扯”一番:)


点击链接进入HC2019售票通道,注册大会账号即可购买。


2019-09-17 10:541467

评论

发布
暂无评论
发现更多内容

浅析Alluxio元数据管理的实现原理

移动云大数据

元数据 Alluxio

Linux驱动开发-编写VS1053芯片音频驱动

DS小龙哥

4月月更

大数据培训如何实现集成Kafka与Storm的结合

@零度

kafka Storm 大数据开发

郑州轻工业大学——脑卒中患者延续性护理辅助系统的开发分享

HarmonyOS开发者

HarmonyOS 智慧生活

直面英伟达竞争,英特尔人工智能战略解析

科技新消息

开启 JSON 和多模,让生态更多可能 | OceanBase 社区版 3.1.3 发版

OceanBase 数据库

OceanBase 社区版

探索内存原理的内存映射文件(图文详解)

简说Linux内核

内存管理 Linux内核 进程管理 驱动开发 嵌入式开发

架构训练营-作业八

默光

消息队列 训练营

多模块项目 mybatis mapper bean 找不到问题

Z冰红茶

从架构上详解技术(SLB,Redis,Mysql,Kafka,Clickhouse)的各类热点问题

利志分享

架构 #热点问题

react源码解析10.commit阶段

buchila11

React

直播预告 | 浅谈:云原生和容器的定义与关系

BoCloud博云

容器 云原生 直播预告

Trino多租户最佳实践

移动云大数据

多租户 trino

cdr2022订阅版本安装包

茶色酒

cdr2022

jackson学习之八:常用方法注解

程序员欣宸

4月月更

北京朝阳医院与英特尔中国研究院宣布合作,共同打造未来智慧急诊创新模式

科技新消息

无惧挑战,英特尔将以全面人工智能战略重新破局

科技新消息

渗透测试系列之靶机渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

压力如同下雨一样具有存在的必要性,我和你交个朋友吧。

叶小鍵

英特尔中国研究院携手南京麒麟科创园成立智能边缘计算联合研究院,首批项目公布!

科技新消息

当 dbt 遇见 TiDB丨高效的数据转换工具让数据分析更简单

PingCAP

领导看了我写的关闭超时订单,让我出门左转!

阿Q说代码

RabbitMQ 延时队列 4月月更 关闭订单

如何从阿里云Code升级至Codeup | 云效

阿里云云效

阿里云 研发效能 代码 代码管理 Codeup

你还在因为数学对AI望而却步?看看这本秘籍吧!

博文视点Broadview

动态压测模型让工作更轻松

FunTester

redis中报too many connections错误的解决

杨彦星

redis

盘点春招跳槽涨薪必备技能Linux内核技术(含学习路线)

简说Linux内核

内存管理 Linux内核 进程管理 嵌入式开发 设备驱动

构建具有跨域容灾能力的Zookeeper服务

移动云大数据

备份容灾

SeekTiger迎来新征程,STI即将登录Gate.io

BlockChain先知

宜搭小技巧|自动计算日期时长,3个公式帮你搞定!

钉钉宜搭低代码

低代码 数字化 钉钉宜搭 宜搭

Android C++系列:C++最佳实践1虚函数

轻口味

c++ android 4月月更

  • 扫码加入 InfoQ 开发者交流群
华为专家:回顾软件工程历史,如何站在后天看明天_文化 & 方法_Andy Liu_InfoQ精选文章