【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

Dave Farley:持续交付的基本原理

  • 2015-03-10
  • 本文字数:1913 字

    阅读完需:约 6 分钟

Dave Farley 伦敦QCon 2015 大会上提出,尽管在过去的时间里软件开发尚未达到最佳的水平,但当前的研究正表明持续交付的实行会带来重大的改进。Farley 说,持续交付给软件开发经济模式带来了改变,使大家可以更迅速地验证商业思路,并降低了缺陷率,当故障发生时也可以更加快速地恢复服务。

Farley 在讨论中展开讨论了“软件开发在过去的时间里尚未达到最佳的水平”,他引用了 KPMG 和 Logica 发布的一系列报告,以及麦肯锡的质量统计报告。在过去的20 多年里,软件行业一直在努力改进开发方法论,其中包括将顺序的方式(比如瀑布法)换成更加迭代化的过程(比如 Scrum ),但是 Farley 提出,我们却未能从根本性错误中汲取到教训。

软件交付的根本目的是为客户提供一个产品,为其验证商业思路,最后为最终用户提供价值。在客户和商业之间反馈是必不可少的,迭代过程一定要执行得快速、廉价、可靠。

Farley 提出,科学和科学的方法是人类最伟大的发明。在软件交付中,实现快速的反馈周期是这种科学方法的关键。Farley 说,科学方法的基本步骤包括描述问题、形成假设、推理论证和校验求证。

描述 - 基于经验和观察进行猜测。

假设 - 提出一种解释。

推导 - 对假设进行预测。

实验 - 对推导进行试验。

重复!

Farley 接着说精益思想的原则(比如“一体化质量”、“寻求整体最佳”和“增强了解”)能够大幅缩短软件交付的周期。Farley 举了一个传统软件开发方法的例子,它的交付周期有103 天,我们再来看看换成精益的持续交付方法,交付周期只有57 分钟。短的周期时间使商业理念得以快速地验证,从而改变了软件交付的经济模式。如果系统引入了缺陷,快速的周期可以缩短MTTR(修复前平均时间),因为较短的周期会更易于推断出要做哪些修改。

Farley 引用敏捷软件开发宣言的第一准则强调了持续交付的重要性,“我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户”,并用一连串陈述句完整地定义了持续交付的概念:

敏捷宣言的第一准则。

持续集成的逻辑延伸。

着眼全局看开发。

每次提交创造一个候选版本。

发到生产环境中才意味着结束!

Farley 说,持续交付的核心原则包括创建一个可重复的、可靠的软件发布流程,保持每件事都在版本控制之下,一体化质量,重新定义“完成”就表示已经发布了,使每个人都对发布流程负责,实行持续的改进。

这个核心原则应包含在部署流程的实现内,它的目的是使“开发人员提交了代码”就意味着这些修改是为客户价值的提供,是针对任何会给生产环境带来问题的变更的检测和预防。部署流程应支持各类组织间涉及到软件交付的工作协作,让每个人都能够看到系统内与流程相关的变更。

Farley 说,常常会有一系列反对组织内部实施持续交付的论点。第一个证据是,“持续交付只适合小型的项目,它不可能用于大型的项目”,看看谷歌的构建过程这个论点就不攻自破了。谷歌主要使用一个单独整体的代码库,针对每次提交运行持续构建和测试,这个库中有超过 1 亿行代码,每年有 6 千多万次的构建。

第二个论点是,“这风险太高了,发布始终是造成灾难的因素”,让我们看看亚马逊构建过程就可以回击这个论点。Farley 说 2006 到 2011 年间,在亚马逊上实现的持续交付将部署导致的运行中断降低了 75%,将部署导致的运行中断分钟数降低了 90%。

最后一个反对实施持续交付的论点是这么说的,“这种方式合适简单的网站,但我的技术太复杂了”。Farley 用惠普的故事进行了反驳,惠普转换了所有 HP LaserJet Firmware 产品开发方法,这是一个大型的、复杂的、基于硬件的项目,具有多个产品并历时 4 年。实施持续交付后开发人员生产力得到了 10 倍的增长。

Farley 最后的结论是实施持续交付会对商业产生积极的影响,并提出“持续交付改变软件交付的经济模式”。Farley 引用了企业管理协会(EMA)“DevOps 和持续交付”2014 年度报告大会的数据,有 87% 具有开发和运维职能的公司收入增长被评为“卓越的”,它们比 2013 年至少有 10% 的收入增长,与此相反,只有 13% 具有开发和运维职能的公司被评为只取得“普通的”或者是更糟的增长。

Farley 引用了 Puppet 实验室的“ DevOps 2014 年度状态报告”,说明持续交付促成更高的生产能力和更高的可靠性,故障发生时的 12 次服务都得到更加快速的恢复。Farley 再次引用 Puppet 实验室报告,说组织文化是 IT 性能和组织整体性能最重要的预测因子。

我们现在可以信心十足地断言,高的 IT 性能与强劲的经营业绩是分不开的,它有助于生产力、赢利能力和市场占有率的提升。

Dave Farley 演讲的幻灯片可以在伦敦 QCon 2015 大会网站日程页上找到,可点击“持续交付的基本原理(良好软件开发的文化与实践)”下载。

查看英文原文: Dave Farley on the Rationale for Continuous Delivery

2015-03-10 03:301732

评论

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

行业分析| 视频监控——AI自动巡检

anyRTC开发者

人工智能 音视频 视频监控 自动巡检

构建云边端一体的分布式云架构,软硬结合驱动边缘计算创新场景

百度开发者中心

云计算 存储 边缘云

MegEngine 使用小技巧:量化

MegEngineBot

量化 MegEngine

九科信息流程挖掘产品bit-Miner即将开放面向对象流程挖掘能力

九科Ninetech

流程挖掘

火山引擎DataLeap:在数据研发中,如何提升效率?

字节跳动数据平台

运维 数据研发 企业号 4 月 PK 榜 任务模板

vue 入门知识点有哪些?

海拥(haiyong.site)

三周年连更

iOS MachineLearning 系列(4)—— 静态图像分析之物体识别与分类

珲少

“精准测试” 在商家地址专项的探索 | 得物技术

得物技术

如何开发一个小程序自定义组件

Onegun

小程序 前端 小程序组件

手势识别:让你的手成为计算机的新界面

来自四九城儿

软件测试/测试开发丨自动化测试之读取配置文件

测试人

软件测试 自动化测试 测试开发

0Ω电阻在PCB板中的5大常见作用

华秋PCB

电路 元器件 PCB PCB设计 电阻

知名直播App被苹果商店下架,或涉及侵权问题

HIFIVE音加加

ios iphone 软件开发

世界读书日特辑 | 华为阅读深耕精品书,让读书变得赏心“悦目”

最新动态

AITO问界M5:最安全、智能的座驾

Geek_2d6073

智能感知编码优化与落地实践

百度开发者中心

人工智能 视频 百度智能云

烟雾弹?突然转变?如何看待微软发声:中国是主要的对手

加入高科技仿生人

人工智能 AI 数智化 ChatGPT

中国垂直行业SaaS,这样走可能是新出路

ToB行业头条

走进社区客户端测试 | 得物技术

得物技术

测试

北大GPT解题有数学老师内味了,用人话讲难题,从高中数学到高数都能搞定

Openlab_cosmoplat

人工智能 开源社区

视频大文件传输的演变:从“卷轴男孩”到自动化

镭速

如何写出CPU友好的代码,百倍提升性能?

阿里技术

cpu 代码优化

乌合之众再次上演,打工人将被AI一键淘汰?

引迈信息

人工智能 AI 低代码 AIGC ChatGPT

给广场舞大妈讲讲什么是大语言模型!

FN0

AIGC

低调且强大——JNPF低代码平台

这我可不懂

低代码 JNPF

您有一份直播回放待查收!

BinTools图尔兹

直播回放 版本发布

提交代码「前置处理」,向前一小步,效率提升「亿点点」

极狐GitLab

DevOps 极狐GitLab git hook lefthook 代码前置

2023年第十二届数据技术嘉年华(DTC)资料分享

墨天轮

数据库 oracle 云原生 智能运维 国产数据库

selenium源码通读·10 |webdriver/common/proxy.py-Proxy类分析

Python 测试 自动化测试 源码剖析 selenium

智慧园区数字转型下的移动App建设策略

Onegun

移动应用 智慧城市 智慧园区

面试还不懂JVM性能调优,看这篇文章就够了!

程序员小毕

程序员 面试 后端 JVM jvm调优

Dave Farley:持续交付的基本原理_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章