跳转到主要内容

保存的文章

持续交付的价值是什么?

Dave Nicolette |领导敏捷
Dave Nicolette
阅读: 持续交付的价值是什么?

连续交付(CD)指的是将软件变更增量地、连续地(或几乎连续地)交付给内部生产或外部市场。近年来,CD已经成为IT行业的一种趋势,因为技术的进步使它成为许多组织的一个实际目标。

众所周知的成功故事正在流传,比如亚马逊每11秒就将代码推向生产。还是谷歌?或Twitter,可能吗?不管怎样,成功的故事正在流传。

传统的价值主张

CD通常的价值主张,对许多人来说唯一可以想象到的价值主张,是CD对于处于技术和文化前沿的企业来说是必要的。亚博vip9通道某些公司必须立即适应市场的变化,否则就会被更有能力做到这一点的竞争对手或初创公司取代。

根据领导指南针,这些公司都是在自适应-应变(AE)象限中运作的。他们的运作方式与精益创业组织类似。公司至少有一些亚博vip9通道也建议业务单元从自适应收敛(AC)象限转移到AE象限,以培养支持CD的能力。

但这里存在一个问题:人们没有考虑整个价值主张。

您的友好的社区,20世亚博vip9通道纪的庞然大物金融机构,是否有业务需要在一个持续的基础上交付小的软件变更到生产?你友好的社区服装制造商?货运公司吗?连锁超市吗?医院吗?设备制造商?嵌入式消防系统制造商?农业设备制造商?核电站吗?工业安全设备制造商?

回答:没有。

大多数正在考虑CD对其组织的价值的人在这一点上停止了分析。因此,这些组织继续依靠20世纪的方法来部署、发布和支持软件。他们应该考虑其他形式的价值定期存单吗?

答:是的。

弹性和业务敏捷性亚博vip9通道

使用20世纪传统的测试、打包、部署、发布、监控和支持业务关键型软件系统的方法,从管理部门发出发布通知的那一刻起,将软件发布版本投入生产可能需要几周到几个月的时间。亚博vip9通道

这篇文章是关于CD的,部署开始了代码已经被编写/修改并进行了功能测试。但是对代码进行更改需要多长时间呢?测试受更改影响的系统需要多长时间?升级基础设施以适应修改后的系统需要多长时间?发布后多久系统才会再次稳定?多慢慢?看起来挺慢的。

这可能声音当公司的发行计划要求每年发行一到两个产品时。我们已经确定,这个庞然大物不需要持续交付到生产。客户无法那么快、那么频繁地接受变化。即使是两三个月的释放节奏也与持续交付相去甚远。所以没有问题,对吧?

嗯…

你永远不知道什么时候会有紧急的事情发生。政府可以在短时间内更改与您的行业相关的规定。你必须在下个月的第一天之前遵守,否则就得每周支付五位数的罚款,否则就会被吊销执照。很遗憾你的发行周期是三个月(乐观地说)。竞争对手可能昨天就发布了你所有客户都想要的热门新功能。在一次重要的系统崩溃之后,您可能会经历惨痛的教训,知道您的备份数据库在过去的5年里已经被破坏了。你从来没有练习过修复它,因为你的员工用的是手工方法,没有时间去做那种事情。现在,所有人都在甲板上工作了三周,以使这艘船保持运转,而计划中的增值工作却搁浅了。

你会拼写“risk”吗?

如果您有适当的机制来确保发布的代码是干净的,能够快速地恢复损坏的系统,能够可靠地快速地恢复数据,并通过交付管道快速地促进代码更改,这不是很方便吗?即使你的正常释放周期是3个月,6个月,或9个月,这不是很方便吗?

您通常每六个月发布一次的事实,真的是构建只能以六个月的速度移动的IT流程的良好业务理由吗?亚博vip9通道

运行成本控制和可靠性

在代码被认为是“产品质量”之后,使用冗长、繁琐、主要是手工的过程来推进代码的公司锁定了可以用于构建市场份额、提高质量、提高客户满意度或交付所要求的特性的活动的资源。亚傅体育app重量级的手动部署和发布过程的成本不仅仅是单个活动的成本和排队等待流程中下一个手动步骤的时间损失的总和。由于机会成本,总成本是这个数字的两倍。

此外,这类过程几乎总是伴随着其他组织特征,从而提高运营成本。这些包括手动测试过程、次优软件工程实践、不充分的测试和分段环境、不适当的测试数据管理、硬的跨系统和跨组织依赖关系,以及没有足够的资金来修复刚才提到的任何问题。

所有这些次优做法的最终结果是全面提高成本。对软件进行更改的风险是很高的,因为没有适当的机制来防止引入缺陷。由于依赖于代码审查、测试、打包、部署、发布、监控和支持的手工方法,在批准软件发布之前审查软件所需的时间被延长了。大多数版本都会引入新问题,要求人们停止增值活动的工作,以解决发布后的问题。有时,一个发布必须完全撤销并重新执行。

随着交货期的延长,需要重复发布,成本继续增加。如果将软件从概念转换为现金需要9个月,那么该公司可能会建立三个重叠的版本,每三个月设定一个目标日期。这给必须完成的任何bug修复工作带来了极大的复杂性,并且在开发、测试和部署的每个阶段中使用的大量手工方法往往会引入大量的bug。

你能拼写“恶性循环”吗?

即使公司没有业务需要增量地、持续地向市场或内部生产交付亚博vip9通道软件变更能力这样做会自动带来大多数(如果不是所有的)问题的解决方案。

为了使持续交付成为可能,组织中负责不同系统的部分必须被结构化以最小化交叉依赖。开发/测试和生产环境之间必须有明确的分离,这样没有安全或隐私问题的工程测试数据就可以用于测试。必须有足够的测试环境来向前移动代码,而不暂停版本以等待共享测试环境可用。开发团队必须使用所展示的工程实践来最小化缺陷,以及协作方法,这些协作方法使得代码评审成为可能,而不需要单独的、事后的手动评审步骤。例行功能检查必须在所有抽象级别上完全自动化,探索性测试必须是开发过程和文化的例行部分。环境配置和配置、应用程序打包和部署过程必须完全自动化。生产系统监视必须是自动化的,并且必须至少使用某种程度的已知类型问题的自动恢复。

只要把这些部件放在适当的位置,就可以消除20世纪手工方法所固有的大多数问题。

还有更多。

能够支持持续交付的技术基础设施也可以支持到灾难恢复站点的无缝故障转移。从技术角度来看,故障转移相当于正常的生产版本。没有必要一年停几次火车来进行DR演练(大多数都没有完全锻炼DR程序)。实际上,每个发布周期都是容灾过程的全面实践运行。事实上,我说错了:每一次发布一个博士故障转移。对于CD, DR事件是非事件。

技术和社会变革

技术变革。在我们的职业生涯中,我们已经看到了这一点。社会变革。我们一生中都看到过这种情况。现在出现了连在一起的、不可分割的技术和社会变化。在过去的十年里,我们看到了这种情况。

我们倾向于利用技术进步来更好地支持旧世界。我们倾向于把社会变化看成是市场营销部的问题。现在我们必须理解并利用技术和社会的结合变化。

我相信我不需要提醒你出版业和零售图书销售,或者唱片业和音乐销售发生了什么。你认为改变会就此停止吗?(你准备把你的公司押在这上面了吗?)

技术和社会的变化已经在削弱像亚博vip9通道银行。您可以通过手机订购杂货,服装和家具。您可以支付账单并通过手机申请抵押贷款。即使是这样一个平凡的业务也是制造和销售亚博vip9通道床垫会被技术和社会变革所扰乱。

你能拼出“竞争”这个词吗?

你的公司不需要持续交付软件来维持业务亚博vip9通道昨天并不意味着你可以留在商业中亚博vip9通道明天没有它。如果您的技术组织处于较大、较老的企业的典型状态,那么您需要花费大量的时间来更新所有内容。如果你等到看到地板上的血迹才动手,那就太晚了。

技术人员的士气和保留

人们常说人是我们最宝贵的资产。从字面上看,这也是正确的。

这取决于你在管理生涯中晋升的高度,你可能还记得“发布派对”是什么,也可能不记得。这是一个持续整个晚上的聚会,如果不是整个周末的话。你所有最亲密的朋友都被邀请。在产品发布之前,任何人都不能离开。

这是一种没人开心的派对。

而且办这种派对很贵。

这不仅仅是披萨的价格。这不仅仅是员工从周末恢复后一周丢掉的工作。你的高级技术人员将会是第一个精疲力竭或厌倦这种情况的人。他们是最容易找到其他工作的人。他们是关注这个行业正在发生的事情的人;他们知道发行派对的时代已经结束,他们有了选择。

这就给你留下了相对较初级或能力较差的技术人员。反过来,情况导致手动程序中的更多错误,导致更长更昂贵的发行派对。您组织的口碑声誉为“汗水店”将在招聘人员努力寻找替代人员。

你会拼"死亡螺旋"吗? "

实行持续交付的组织往往也符合“人性化工作场所”的标签。技术人员有机会不断学习,因为他们跟上技术的进步。他们可以在40个小时的工作中创造出价值40个小时的成果。他们在一个充满挑战和奖励的环境中工作,而不会感到不必要的疲惫。他们有周末和假期,就像真正的人。他们不会很快离开。如果他们去一些地方,招聘人员可以轻松填补空缺;一群热切的候选人从门外拖到街上,即使下雨。

结论

只是因为你可以持续的释放并不代表你必须这样做。如果你的公司没有必要或不希望持续地提供服务,你仍然可以通过拥有能力在的地方。例行地部署到暂存环境。你想什么时候释放就什么时候释放,毫无痛苦。为什么要让事情变得比必要的更困难、更危险、更昂贵呢?

连续交付已经成为一个基本的操作功能。随着2017年的夕阳西下,2018年的黎明即将来临,问题不是“我们是否需要持续交付(我们如何证明避免交付是合理的)?”,而是“还有什么借口吗?实施持续送货?“

下一个;技术债务计划

Dave Nicolette自1977年以来一直是一名IT专业人员。他曾担任多种技术和管理职务。自1984年以来,他主要从事顾问工作,一只脚在技术阵营,一只脚在管理阵营。

留下你的评论

您的电子邮件地址将不会被公布。必填字段被标记