在过去10年中,持续交付思想已经从最前沿的想法变为业界公认的智慧。每个追求卓越的科技公司都希望能够随时随地发布,而无须工程师在晚上或周末进行部署。能够快速、频繁且安全地发布软件,并实现小批量交付,意味着我们可以快速获得对我们的想法的反馈。我们可以构建原型并使用真实用户对其进行测试,从而避免开发那些对用户没有任何价值的功能。反过来,这也意味着产品更好,客户更满意,员工更快乐。这些能力对需要这种工作方式的每个组织来说,都是非常关键的。

然而,获得这种能力并不是一件容易的事情。组织需要对软件系统架构进行不断演进,使其支持尽快且有效的测试,以及快速部署,同时,还需要培养快速试验的文化。文化因素对于成功实施持续交付和通过持续交付实现产品管理实践至关重要。

乔梁曾与中国的各类组织合作,帮助它们实施持续交付并实现其效益。《持续交付》作者Jez Humble曾说:“我想不出比乔梁更合适的人选,来写一本关于如何根据实际经验实现这些想法的书。希望《持续交付2.0》的每位读者都能在提高软件交付能力的不断尝试中取得圆满成功,并利用这种能力来构建更好的产品和服务,以及更快乐、更高效的团队”。

今天,作者对持续交付的理解和认识,相比8年前,在广度和深度方面都有了较大的提升。今天我们有幸采访了《持续交付2.0:业务引领的DevOps精要》作者乔梁,来看看他的所思所想。同时有什么话想对作者说?

乔梁老师

异步社区:经典图书《持续交付》已出版8年,这本书在中国出版,您功不可没,可以说说您与《持续交付》和《持续交付2.0》的缘分吗?

乔梁:说到我与“持续交付”的渊源,可以追溯到11年前我与Jez Humble一起工作的时候。Jez Humble是《持续交付》的作者之一。

当时我与他正在为最早的一款开源持续集成工具CruiseControl贡献代码,但我们发现,它无法满足企业级持续快速发布软件的管理诉求。因此我们就决定开发一款新的持续集成与持续发布管理工具——Cruise,现在已经更名为GoCD,http://github.com/gocd/gocd。

2010年,此产品已经迭代发布了多个版本,而Jez Humble也完成了《持续交付》的写作。该书中提及的原则与实践绝大部分都在我们自己的团队实施过。我在多次看过该书的初稿后,决定在第一时间将其引入中国。于是,该书英文版还没有出版,我就开始自己联系国内出版社引进它的简体中文版权。

在过去的8年中,我也一直从事与持续交付相关的咨询工作,而且涉及多种不同类型的软件企业。在此过程中,也积累了自己的心得与体会,并对该领域有了一定的新认识。因此,才有了《持续交付2.0》这本书。

异步社区: 《持续交付2.0:业务引领的DevOps精要》为什么为您的图书取这个名字?这本书是《持续交付》的延续吗?这本书您最想推荐给谁看?

乔梁:之所以称其为《持续交付2.0》,主要是因为它既站在“巨人”的臂膀上,对《持续交付》一书中所述的原则与实践进行了更加详细的解释,也提出了新的模型,即“持续交付双环模型”,对原有的框架体系进行了补充。对于那些希望提升持续交付2.0能力的软件企业来说,本书会使其更容易了解它的全貌,并在能力提升的过程中少走弯路。

它的副标题用“业务引领的DevOps精要”,主要是想提醒广大读者,无论什么样的方法与实践,都应该为业务价值负责,而不能与业务相脱离。任何问题的起点都是业务问题,而非技术问题。我们最终要解决的是业务价值问题,而非技术方案或软件交付问题。

异步社区:持续交付2.0的指导思想、工作理念和核心原则是什么?2016年DevOps在软件行业火了以后,很多人都在重读经典。是否可以结合您自己的理解,谈谈《持续交付2.0》这本书的内容可能对行业带来的改变?

乔梁:对于DevOps,目前行业内对其有很多种不同的定义,但其基石仍旧是持续交付能力。本书有很大篇幅讨论如何获得这样的能力,这也正是DevOps的精要部分。持续交付2.0是以精益思想为指导,以“识别并消除一切浪费”为工作理念,并坚持四项基本的工作原则,即“坚持少做”“持续分解”“坚持反馈”“持续改善”。我想这本书不会重要到对行业带来巨大的改变,但是正如我刚才提到的,我希望它能够让更多的企业少走一些弯路,以更少的资源投入得到持续交付能力的快速提升。

异步社区:我们了解到您曾先后就职于国内外知名移动设备公司和大型互联网公司,也担任了腾讯、搜狐畅游等多家互联网公司的高级管理顾问,每段工作经历带给您的收获分别是什么?可以具体说说吗?

乔梁有一种声音说:“持续交付(换成‘敏捷’也成立)只适合于互联网软件企业,变化不快、质量要求高的传统软件企业并不需要。”这句好像是说,互联网软件质量要求不高一样。这通常是望文生义的结果,事情并不是这么简单,这一点很容易判断。事实上,“敏捷开发方法”“持续交付”这些原则、方法和实践都诞生于传统软件开发环境。

尽管不同公司的不同类型的软件产品在不同生命节点上,面临很多不同的挑战,但是持续交付的原则与很多实践都是适用的。当我在移动设备公司做手机操作系统的开发工作时,使用本书中讲述的多种实践方法,仍旧可以比传统开发方式更快交付高质量的软件需求。

当然,我们也不能忽略所在环境上下文的不同。例如,对直接面向消费者的互联网分发软件企业来说,由于其软件运行环境复杂,传统软件开发方法中通过全面测试保障软件质量的方式根本无法覆盖很多应用场景,只能通过强大的监控能力和软件配置的灵活性,在版本发布后在用户发现之前收集问题,并快速修复。

另外,不同公司有不同的文化、环境和发展背景。因此,很多所谓的“不适合”可能是希望将其作为一整套严密的方法体系在较大范围“齐步走”。如果是这种情况的话,持续交付的确是不适合“共同致富”的。

异步社区:您在书中曾说:“我认为思想对每个人对事物的认知和理解至关重要。但咨询经历告诉我,对事物的正确理解,并不能确保正确的思想和理念在现实中落地,也不能确保对企业有大的和直接的帮助。”可以具体的聊聊为什么这么说吗?

乔梁这个问题可以算是上一个问题的延续。虽然在多年以前,我认为对“持续交付”有非常深入的理解,但那时我只是对“持续交付”本身有深入的理解而已,并不是对“它在企业中的落地”有很深入的理解。由人组成的企业是一个巨大的复杂系统,在这种环境中,两点之间的距离并不是直线最近,因此无法通过简单且相同的模式让其在企业内部落地生根。如果无法生根,就意味着无法成为组织的DNA,那么就很容易消逝。

异步社区:在创作《持续交付2.0:业务引领的DevOps精要》过程中遇到的最大困难是什么?您是如何平衡工作、写作和家庭的?

乔梁最大的困难是如何更好地组织这本书的结构。因为它的内容涉及软件产品研发过程的很多方面,我自己希望在书中能够全面覆盖,但又怕过于分散。最后还是把其中关于“组织建设”的很多内容删掉了,只留下了组织文化中的重点部分(希望以后能够再将其补充完整。)在写作期间,也有大约5个月的“完全停滞期”,感觉无法动笔继续写下去,是家人和朋友的鼓励才让我完成了这本书的写作。我的夫人不但为我校稿,还提出了很多建议。

异步社区:现在,每当人们提起DevOps时,总会联想到微服务、Docker技术、Kubernetes服务编排、部署流水线等。团队应用“持续交付2.0”理念,在保障交付质量的前提下,既提高交付频率又减少人力投入吗?可以具体聊聊吗?

乔梁2018年5月,我与Jez Humble在北京再次相聚时还讨论过相关问题。我们一致认为,与8年前相比,持续交付的理念已经被更广泛地接受,而工具技术的发展也令持续交付实践的门槛低了一些。但是,从组织、人员、架构的角度来看,还有较长的路要走。值得庆幸的是,“持续交付”本身并不是目标,而是手段。如果我们可以使用其他低成本的手段达成相同的目标,那也是非常不错的。通过很多企业的实施过程,我们也不难发现,它是一个波浪式的过程,即“增加投入——享受收益——再增加投入——再享受收益”的过程。

异步社区:您作为国内最早的持续交付实践和推动者之一,遇到的最大阻力是什么?同时最想感谢哪些人?

乔梁我个人遇到的最大阻力吗?自己想学习的东西太多,总是感觉时间不够。这本书也让我重新认识了我自己。我自己也使用《持续交付2.0》中的工作原则,就是“坚持少做,持续分解,坚持反馈,持续改善”。我也是需要不断强化练习、不断提醒自己。我并不是一个我很聪明的人,我只想每天比昨天的我进步一点点就好了。不追求跨越,追求“复利”就好。

最想感谢的人,一是多年前在我面前打开大门,让我看到新的工作方式的那些朋友和同事;二是给我很多机会,让我参与到组织改进过程中的客户和朋友,让我有机会在不同类型的企业中,与聪明勤奋的人一起工作,收获不一样的经验,使我能够掌握更多“持续交付2.0的落地方式”。

异步社区:对您工作和生活帮助最大的三本书要推荐给大家的?

乔梁与15年前的我相比,我现在每年的读书量应该是当年的数倍。当然,有些书读了也很快忘记了。我的感觉是,在人一生中的不同阶段,需要的书也是不同的。在我需要花大量时间写代码的那个年代,《解析极限编程》《重构》《代码整洁之道》对我的影响比较大。现在的工程师应该都能熟练掌握这些了吧。听说《重构(第2版)》(中文版)也要马上出版了,我也期待一下。

《重构2 》计划2019年3月出版

乔梁老师著作

《持续交付2.0:业务引领的DevOps精要》

作者:乔梁

扫描二维码,一键当当购买

扫描二维码,一键京东购买

持续交付2.0不只是关于软件的交付模型,而是从业务问题出发,关注业务假设验证速度的双环业务模型。只有从业务目标出发的持续交付实践才有强大的创造力和生命力!

书中指出,持续交付2.0双环模型高速运转的三个支柱分别是组织机制、软件架构和软件交付基础设施,同时给出了提升价值探索环以及快速验证环运转速度的多种可行方法。

本书还为我们呈现了在企业内部改善持续交付2.0能力所需遵循的基本原则,包括组织文化建设、软件系统架构、业务协作、配置管理、构建集成、自动化测试、发布与监控七大板块,并指出各领域实践关键点,以及多种可实操性方法。同时,通过3个完整的实践案例过程分析,说明每个企业或团队都必须从自己的业务目标出发,根据自己的实际情况,制定自己的改善路线。

关注微信号

专访乔梁:“持续交付”本身并不是目标,而是手段。相关推荐

  1. 【华为敏捷/DevOps实践】8. 持续交付,持续部署,傻傻分不清楚

    文:姚冬(华为云DevCloud首席技术布道师,资深DevOps与精益/敏捷专家,金融解决方案技术Leader,中国DevOpsDays社区核心组织者) 前言 "持续交付与持续部署,到底谁应 ...

  2. 剖析“持续交付”:五个核心实践

    ​ 原文发表于 InformIT 持续交付 是一种软件开发策略,用于优化软件交付流程,以尽快得到高质量.有价值的软件.这种方法让你能更快地验证业务想法,通过直接在用户那里进行试验,做到快速迭代. 尽管 ...

  3. 乔梁老师的持续交付七巧板和三步法思维实践

    乔梁,<持续交付>中文版译者,腾讯高级管理顾问,"轻敏捷"方法创始人,持续交付先行者,映客.卷皮.墨迹天气等多家移动互联网公司高级管理顾问,也为魅族.上汽.平安等不同类 ...

  4. EASYOPS系列|谨慎!勿让持续交付变成bug自动化发布

    你的持续交付能力用得还好吗,比如频繁发布移动或云应用的特性增强?还是恰好相反,快速发布了带漏洞的版本? - Joel Shore 持续交付能让交付流程跑得更快,但持续交付本身并不能为发布质量打包票.国 ...

  5. 针对Java开发者的持续交付完整实施指南 | 内含福利

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作为一名开发者,您在开发完自己的应用之后,是否有去了解过 ...

  6. 从持续交付看敏捷开发的自相似性(敏捷开发的心跳)

    作者:陈勇 出处:blog.csdn.net/cheny_com 自相似性是指一个事物的局部与其更大的局部乃至整体具有相似性. 从大的方面看,敏捷开发具有重视客户价值,提倡持续交付等思想.但一般而言, ...

  7. 与专门团队一起持续交付

    BCG Digital Ventures的首席工程师Robin Weston 最近在伦敦持续生命周期大会(Continuous Lifecycle London)上发布了一份经验报告,在该报告中称,外 ...

  8. 优维科技联合广发证券发起「CD持续交付一期项目复盘会」

    2023年3月16日,由优维科技联合广发证券共同发起的「广发证券CD持续交付一期项目复盘会」在广发总部大厦闭幕. 复盘目的 为了对广发证券CD持续交付一期项目的总体执行请看落实"回头看&qu ...

  9. 乔梁:“持续交付”不是守业者的游戏

    非商业转载请注明作译者.出处,并保留本文的原始链接:http://www.ituring.com.cn/article/207218 乔梁,腾讯高级管理顾问,负责指导IEG .MIG和SNG团队提高组 ...

最新文章

  1. [WCF编程]10.操作:回调操作
  2. eclipse常用设置之自动格式化
  3. 用YII实现多重查询(基于tag)
  4. when will ifm open?
  5. 啊,我南非时间上午10点看成了。。
  6. unity3d 的Quaternion.identity和transform.rotation区别是什么
  7. 微信公众平台开发之微信access_token如何有效长期保存
  8. Memcached常用操作
  9. 多播委托(multicast delegate)
  10. 政府门户应该怎样建设?——解读中国政府网站绩效评估标准
  11. java unicode32_【JAVA SE基础篇】32.String类入门
  12. pytest使用入门
  13. 中年程序员真的只能坐等被裁吗?
  14. 【Python-3.3】字典中存储字典
  15. mysql 时间戳 bigint_MySQL时间类型datetime、bigint及timestamp的查询效率
  16. python入门之排序,文件操作
  17. 图文详解YUV420数据格式
  18. 17.CRT的绿色版安装和使用。
  19. 机器认知、人机交互、边缘计算……在这里,他们谈论了关于AI的关键议题
  20. 颜值即正义,这个蓝色爱心不好看吗

热门文章

  1. 压缩感知学习总结及Matlab代码实现
  2. 服务器芯片背后的故事:从理想到现实
  3. 古诗写入文件(python)
  4. Linux: crash: invalid kernel virtual address: ffffffffb54b75b0 type: “cpu_possible_mask“
  5. wyy课堂cmos模拟设计课学习笔记-gm/Id设计方法介绍及曲线仿真
  6. vs2013调试c语言,怎么使用VisualStudio2013编写和调试c语言程序
  7. Spring 注解 hibernate 实体方法 property name=packagesToScan value=com.sise.domain/
  8. 定制oh my zsh主题
  9. EasyCVR对接华为eSDK IVS,1400查询采集系统列表和详细信息
  10. 网站站内优化三大标签