Categories
程式開發

持续交付未来10年会是什么样子?


Dave FarleyJez HumbleJez Humble在DeliveryConf上讨论了他们对未来10年持续交付(Continous Delivery,CD)的期望。CD要取得成功,IT行业需要关注三个方面的表现:技术、组织和文化——所有的这些都是相互关联的。DORA的报告显示,技术实践可以带来变化,但仅凭技术实践是不够的。

在Farley和Humble的《持续交付》出版十年之后,出现了很多的实践,比如分布式跟踪、混沌工程以及流量转移。他们的书重点关注了软件部署管道。他们看到很多组织已经有了针对每个环境的管道,但这是CD的一个反模式。他们的本意是要形成这样的一种机制,让变更从其中的一端进入,而可发布的软件从另一端输出。换句话说,持续交付的理念就是根据用户的快速反馈来校验输出。正如Farley所言:“团队需要有一个关于这些技术实践的伟大故事,从而实现优异的技术表现,这是CD的必要驱动力。”

持续交付未来10年会是什么样子? 1

除此之外,团队需要有一个更好的结构,这样的结构能够帮助他们更好地协作并给他们带来足够的自治性,从而能够实现持续交付,这就是Farley所定义的组织化方面的表现,对于任意规模的CD来说,要想取得成功,这都是至关重要的。此外,按照Farley的说法,在文化方面有良好的表现能够有助于关注团队的行为、多样化思考以及技术严谨性等方面。

所有的这些方面的表现,即技术、组织和文化,都是相互关联的。Farley说道:“没有其他方面的辅助,组织不可能在其中的某一个方面实现成功的CD。”为了强调这些方面的重要性,Farley引用了《哈佛商业评论》的一篇文章,在这篇文章中,作者讨论了拥抱敏捷的几个障碍:“最大的障碍并不是需要更好的方法论、显著效益的确切性证据或者敏捷能够在IT领域外可行的证明,而是主管们的行为”。

考虑软件交付问题的一种方式就是使用Stephen Bungay的《The Art of Action》一书中的模型。组织如果试图达到一个结果,那么他们需要一个计划,然后执行这个计划以达到预期的结果。尽管如此,在这个模型中仍然存在一些鸿沟,如知识水平、人员一致性和结果的影响。Farley说:“你不能消除这些鸿沟,但可以通过做一些事情来减弱它们”,比如限制工作的批次大小。

持续交付未来10年会是什么样子? 2

按照Farley的说法,软件开发是由学习和管理复杂性驱动的,组织需要根据这些驱动力来进行优化。例如,为了优化学习,组织可以借助反馈、渐进式工作和运行实验来学习。为了管理复杂性,组织可以实现架构化的属性,如模块化、关注点分离、内聚或松耦合。换句话说,Farley这样总结到,“这是与工程息息相关的,应用理性的科学思维来解决经济约束下的现实问题。”

另外,Humble强调了在CD中迅速获取反馈的重要性,因为“当组织在进行创新的时候,大多数的想法可能都是糟糕的想法”。在这种情况下,就判断这些想法是否正确来说,反馈就显得至关重要了,因为这些想法可能是可变和不确定的。除此之外,这种反馈有助于推动实验。在Humble、Nicole Forsgren和Gene Kim合著的《Accelerate》一书中,他们谈论了产品交付以及反馈的重要性:“产品交付会建立一个能迅速给我们质量反馈的引擎,该引擎能够让从开发到生产的关键性流程成为可能,这是产品创意所产生的引擎。”

最后,Humble对CD的一个期望是“人们以 CI(Continuous Integration,持续集成)所定义的方式来开展CI”。这意味着,开发人员每天至少要有一次提交至master分支或将特性分支集成至主分支。如果构建失败的话,通常需要在十分钟之内修复。并且,要有可靠的自动化测试,因为CI要依赖它们校验每次应用代码的变更。

在演讲的最后,有一个开放的空间来继续讨论未来十年CD将会变成什么样子。听众讨论了CD面临的挑战、业已取得的成功以及他们希望看到的变化。

DeliveryConf:有什么策略可以改变主管们的行为以适应CD呢?

听众:做一个成本分析(ROI),在里面放一些数字。这有助于在与主管交谈的时候提供一个凭据,这样他们能够看到CD的业务价值。

Farley:改变谈话的技巧很重要。在组织中,通过谈论技术策略和部署管道,我们并不能赢得组织中高级管理人员的青睐。我们需要讨论业务影响或发展能力。

听众:总体而言,你必须要产生一种改变业务的情感响应。我看到过很多次ROI的方式。虽然这样做可能是有价值的,但是这对于改变文化来讲还是不够的,就像通常我们所说的“文化把战略当饭吃掉了”。

DeliveryConf:在这方面,你们取得了哪些成功呢?

听众:在我们的组织中,我们曾经有一个巨大的脚本,每当我们在一个共享的地方构建时候,该脚本就开始执行交付。所以,我自愿花业余时间来改善这个管道。

听众:榜样的力量是很强大的,因为它会让更多的人参与进来。

DeliveryConf:在未来的2到5年内,你们希望看到什么变化?

听众:我建议重点培训公司内的员工,在这个方面进行投资。

听众:CEO们要让我们对财务结果负责,当我们证明更好的CD实践的收益时他们要接受这一点,并持续往前推进,而不是说“我们以前不是这样做的”。

你觉得未来的几年内,CD会是什么样子呢?

原文链接:

What Will the Next 10 Years of Continuous Delivery Look Like?