2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:302328

评论

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

数据迁移丨借助 pg2mysql 从 PostgreSQL 到 GreatSQL

GreatSQL

文档图像矫正任务的前沿进展:引入Transformer框架、极坐标的思路

合合技术团队

图像识别 系统图像畸变、校准和矫正 #人工智能 #算法 文档解析

Bartender 5 for mac(菜单栏图标管理软件)v5.2.7中/英激活版

Rose

中国AI长卷(四):行业旷野

脑极体

AI

React Native 0.77发布,新样式特性,Android 16KB页面支持,Swift模板

凌宇之蓝

React Native

AI口语练习APP的功能测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI口语测试

GraphicConverter 12:Mac平台图像处理的全能选手

Rose

GForce Bass Station for mac(合成器插件) v1.0.0激活版

Rose

如何区分AI智能体、自动化工作流和PRA?

测试人

软件测试

Navicat Premium 16 全面的数据库管理软件 中文版安装包-Mac/win

Rose

2025-01-22:使二进制数组全部等于 1 的最少操作次数Ⅱ。用go语言,给定一个二进制数组 nums,你可以对数组进行以下操作任意次(包括0次): 选择任何一个下标 i,并将从该下标开始到数组末

福大大架构师每日一题

福大大架构师每日一题

数据分析和AI丨拒绝AI技术焦虑,工程领域AI应用的八大技巧

Altair RapidMiner

机器学习 AI 数据分析 知识图谱 制造

打造高效电商解决方案:淘宝API集成开发指南(商品详情速览与关键词搜索优化,支持高并发,助力自营商城快速上架)

代码忍者

淘宝API接口

研发效率低下?试试这些改进方法

敏捷开发

程序员 敏捷开发 研发效能 企业管理 职场成长

FeelYourSound HipHopEngine Pro for mac(创作专业的嘻哈和 Trap 音乐)

Rose

经典音频效果器合集:FabFilter Total Bundle 2019 mac破解版

Rose

为AI跨越 写在HDD迈向11碟的时代

极客天地

2025年企业必备的 6 款员工管理工具推荐

NocoBase

开源 AI HR 员工管理系统 员工管理

塑胶行业生产管理智能化转型

万界星空科技

制造业 mes 万界星空科技 塑胶地板行业 塑胶行业

音乐创作软件 Ableton Live 12 Suite许可证密钥分享-Mac/win

Rose

VNC Server for Mac:高效便捷的远程桌面管理解决方案

Rose

SPC统计过程管理系统(源码+文档+部署+讲解)

深圳亥时科技

我国数字经济规模不断稳定增长

芯盾时代

数字经济 数字安全

AI口语练习APP的场景测试

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

ACDSee Photo Studio 8:专业数字影像处理新标杆

Rose

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