掌握发布管理你需要知道的一切

内容贡献者凯特Eby

2018年6月13日(2021年7月18日更新)

今天,软件工程是一个针对日益复杂的平台开发、测试、部署和支持新版本软件的快速循环。

虽然大多数组织都没有频繁地更新,但是协调软件版本的开发和发布是一项更具挑战性的任务。

这就是为什么发布管理是一门不断发展的学科。在本指南中,您将了解有关发布管理的所有信息,包括最新趋势和专家提示。您还将了解如何使用IT基础设施库(ITIL)/IT服务管理(ITSM)、敏捷、持续交付、自动化和其他方法来处理发布和部署管理。免费模板和检查表使资源更加丰富。欧宝体育app官方888

什么是软件工程中的发布?

在软件工程中,发布是一种新的或修改过的软件及其创建过程。发行版构成了软件的完整功能版本,它是软件开发和工程过程的高潮。软件的Alpha和beta版本通常先于发布。

虽然alpha和beta版本的发布也可以称为alpha或beta版本,但在单数形式下,发布通常是指软件的最终版本。您还可以看到发布被称为启动或增量。

大多数组织用一组唯一的数字或字母来标识版本,这些数字或字母按顺序更新。这个命名过程被称为软件版本控制.对于这些唯一标识符如何在不同版本之间变化,没有行业范围内的规则,但每个公司都始终遵循自己的内部标准。

什么是发布管理流程?

组织通过关注发布管理来提高构建或更新软件的质量、速度和效率。这是通过开发、测试、部署和支持版本的阶段来计划、调度和管理软件构建的过程。敏捷开发、持续交付、DevOps和发布自动化等技术已经帮助优化了发布管理。这一过程的速度最近有所加快,以至于几年前亚马逊已经超过了年的大关一年5千万的代码部署-每秒超过一个。

发布管理在软件工程中是一个相对较新的学科,但是由于技术的快速创新,它也在迅速发展。作为一门学科,它借鉴了传统的、以业务为中心的项目管理和系统开发生命周期(SDLC)的技术知识,以及it基础设施库(一组用于it服务管理的实践)。

发布管理的目标和好处

如果执行有效,发布管理将增加组织成功发布的数量,并减少质量问题。ob欧宝娱乐app手机下载生产力、沟通和协调得到了改善,并且组织可以在降低风险的同时更快地交付软件。

这些改进意味着团队可以在更短的时间内反复生产高质量的软件,这使得公司对操作环境更加敏感。

发布管理还有助于标准化和简化开发和操作过程。团队实现了可审计的发布控制,从而为整个生命周期中的所有发布创建了一个存储库。对于所有发布版本,拥有一个必须遵循的单一的、记录良好的过程可以提高组织的成熟度。增加的标准化和对产品的关注使团队能够从经验中吸取更多有用的教训,并将它们应用到未来的版ob欧宝娱乐app手机下载本中。

运营部门很欣赏与开发人员之间的协调,因为惊喜减少了。他们现在可以避免这样的感觉:一个发布版本只是从开发中“扔到墙外”,让操作人员去灭火,因为期限很短而“修补和祈祷”。还有更多的机会来解决开发环境和操作环境之间的配置问题。

简而言之,发布管理打破了IT组织中跨多个功能的团队障碍。因此,您可以全面地改进产品交付。ob欧宝娱乐app手机下载

加布里埃尔·古铁雷斯

加布里埃尔·古铁雷斯波音公司的解决方案架构师和Costco的前发布经理说,当执行一个发布时,充分考虑对组织其他领域的影响是很重要的。“公司必须提供一个公共论坛,在这个论坛上,变更可以被充分审查,并通过全面的架构和设计审查,最终导致集成测试。跨功能和技术审查对于最小化上线后不可避免的痛苦至关重要。平稳的上线后操作是任何版本成功的关键因素。”

发布管理简史

发布管理的兴起源于软件工程从基于项目到基于产品的转变。ob欧宝娱乐app手机下载在基于项目的开发范式下,软件开发人员将把每个版本视为一个项目,而不是一个产品;ob欧宝娱乐app手机下载完全开发的软件在很大程度上标志着开发人员角色的结束。

然而,随着时间的推移,软件开发过程越来越类似于产品周期,在这个周期中,产品得到支持、改进,并在很长的生命周期中反复重新发布。ob欧宝娱乐app手机下载在这个框架中,发行版不是开发的最终目标,而是支持和修订的过渡点。

随着复杂性的增加,更需要协调各个阶段。这就是为什么当前的发布管理实践在一定程度上受到以业务为中心的项目管理原则的启发,该原则扩展到售后支持和进一步的开发。

发布管理是更大的IT规程的一部分变更管理,它处理软件开发固有的动荡,其中利益相关者的需求似乎无穷无尽地流动,遵从性和法规的景观不断变化。为了驾驭这种环境,软件工程过程必须很好地同步,而发布管理有助于实现这一点。(注:不要把变革管理与组织变革混淆,后者是文化的重塑、人员的流动和组织内部的重组。)

Jen Dunbeck

“一个常见的陷阱是忽视了深思熟虑的变革管理过程的重要性,”他说Jen Dunbeck他是自动化IT服务提供商BitTitan的发布经理。“变更控制委员会或变更顾问委员会的重要性在发布中不可低估。他们工作的一个关键功能是帮助组织公正地评估风险和影响。它们还有助于消除技术依赖关系,这些依赖关系在部署中可能并不明显,”她补充道。

为了开发您的变更管理过程,您会发现拥有提出项目变更和记录变更的标准方法是很有帮助的。通过下载以下变更建议和变更管理日志的免费模板来快速启动工作。

更改建议模板

变更建议概述了变更的类型和规模,并且通常是变更管理过程中的第一步。描述为什么需要更改,预期的结果和影响,所需的时间和资源,以及任何其他需要审查的因素。欧宝体育app官方888该模板还包括用于添加描述性信息的空间,以及用于计算成本和收益的部分。

下载Excel模板
尝试Smartsheet模板

变更管理日志

变更管理日志是跟踪谁在何时请求了什么变更、变更请求的状态、其优先级和解决信息的文档。如果您需要更全面的记录,请包括其他细节,例如更改的类型和影响。此日志模板是为跟踪重要信息而设计的,以便更改请求可以轻松地确定优先级、处理和稍后引用。

下载Excel模板
尝试Smartsheet模板

发布管理如何工作:概述

并非所有的软件都是平等的。根据程序的功能和应用,软件工程过程在严格程度和强度上有所不同。

例如,设计用于飞机的软件要经过严格的测试。如果您不能满足狭窄的性能容忍,您将不得不创建大量的文档并实现多个修复。功能需求和质量指标都很严格,软件在接近飞机之前必须经过多层审批。

有纪律的发布管理过程将有助于确保软件是按照主要涉众的规定构建、测试和交付的。团队将检查软件,看看它是否能做它应该做的事情,以及它是否按时准备好。

发布管理将以下元素组合在一个中央存储库中:

  • 在客户需要的时候,为他们提供所需的业务需求
  • 质量保证和合规性的技术任务
  • 软件工件的管理

从存储库中,工件被释放到客户端生产环境中,用于应用程序部署。ob欧宝娱乐app手机下载因此,您可以将发布管理看作是将包含软件工程的相互关联但不同的任务结合在一起的粘合剂:设计、开发、测试、部署、维护,以及业务和客户需求。

发行版不仅仅包含核心软件工程功能。虽然开发人员明显地将发布视为成功交付完成的产品,但还涉及到一些支持业务活动,例如培训销售人员和客户支持人员,以及为新发布做广告和营销。ob欧宝娱乐app手机下载这些活动需要与发布节奏同步进行,这增加了发布管理过程的复杂性。

此外,发布管理不仅仅适用于新设计的软件。修改后的软件要经过相同的过程,以确保涉众得到他们想要的东西。

实际的发布可以手动完成,或者越来越多地,可以自动完成,这取决于发布管理过程的成熟程度。(亚马逊使用自动发布流程来实现每秒钟发布一个新版本。从历史上看,每周、每月和每季度的更新对于软件开发团队来说更加典型。)

发布可以有多种不同的形式:盒装的实体产品,从网站或服务器上下载的,从移动应用商店推送到设备上的,或者作为基于webob欧宝娱乐app手机下载的应用程序的无缝更新。

所有的软件工程团队——无论是大的还是小的,并且跨越所有的行业——都使用发布管理来平滑过程。他们可以将其应用于内部使用的软件或作为产品销售的软件。ob欧宝娱乐app手机下载大大小小的软件工程团队在所有行业中都采用发布管理,并且他们可以使用结果软件来运行他们自己的产品或系统,或者将其本身作为产品出售给客户。ob欧宝娱乐app手机下载

最有利于发布管理的开发方法之一被称为DevOps,一个由开发和运营结合而成的术语。顾名思义,DevOps试图通过在软件开发的所有阶段使用自动化和监控的组合来增加软件工程中开发人员和运维之间的协调,以缩短上市时间并提高客户满意度。

发布管理中的关键术语

要掌握发布管理,您需要了解常用的术语。

开发工作指令:这是开发或修改软件应用程序或系统的工作指令。

DevOps团队:由于DevOps的全部意义在于增加开发和运维功能之间的协调,因此创建一个单独的团队会使这个术语变得不恰当。尽管名称如此,这个术语通常指的是开发和运维方面协调这两个功能的关键团队成员。

安装工作顺序:与开发工作单类似,安装工作单用于安装软件应用程序、系统或基础设施组件。

ob欧宝娱乐app手机下载产品负责人:开发项目ob欧宝娱乐app手机下载中的产品负责人是主要的涉众。他们通常代表业务或产品的(最终)用户,并定义产品的愿景。ob欧宝娱乐app手机下载

项目经理:项目经理负责单个产品的方向。ob欧宝娱乐app手机下载他们负责定义产品路线图和愿景,并协商可交付成果。ob欧宝娱乐app手机下载通常,项目经理的核心职责不超出单个产品或密切相关的产品系列。ob欧宝娱乐app手机下载

发布:一个发布由一个或多个发布单元组成。

发布经理:发布经理的角色是计划、协调、管理和安排组成发布的所有项目。所有这些物品不一定来自同一种产品。ob欧宝娱乐app手机下载例如,该经理还必须协调设计与新版本集成的任何其他产品的工作。ob欧宝娱乐app手机下载

发布政策:这是一组关于如何将版本部署到实际操作环境的规则。不同的发布策略适用于不同的发布,这取决于影响和紧急程度等因素。

发布记录:发布记录记录了发布的历史,从计划到开发过程的结束。

发布单位:此术语指的是团队同时测试并发布到活动环境中以实现批准的更改的一组配置项。一个配置项,是底层基础设施的一个组成部分配置管理,即确保产品的属性和性能与其设计、需求和操作信息一致的过程。ob欧宝娱乐app手机下载

服务所有者:服务所有者承担特定IT服务的高级责任。他们不太关心提供服务所需的日常操作;这就是服务经理的角色。

质量经理:质量经理确保发布符合规定的标准。他们可能有发布经理向他们汇报。

发布管理中的关键概念

发布管理有时被描述为一个超级规程,因为它涉及监督几个相互关联但又不同的规程,配置管理专家指出萨尔曼·哈

发布管理中的核心实践之一是代码管理,这是管理计算机代码更改的过程。使用代码模块或代码行集合,代码管理简化并加快了对代码进行更改以及其他与代码相关的活动(如维护和调试)的过程。一种构成发布管理的重要方面的代码管理类型是版本控制。这指的是为了比较和参考而对同一软件的不同版本的代码进行管理。代码管理遵循的许多原则记录管理

为了有效地发挥他们的作用,发布经理必须促进促进和协作,主要是在团队之间,但也在团队内部。发布经理本身通常是经验丰富的专业人员,所以他们可能会被要求投入工作。

流程和策略对于有效的发布管理至关重要。问题必然会出现,当出现问题时,必须有解决这些问题的协议。发布管理人员还充当产品代码的看门人或监护人。ob欧宝娱乐app手机下载他们知道每次代码工件移出组织。

在许多版本中,度量生产力和吞吐量指标变得可能,这样发布管理的效率就变得可见了。ob欧宝娱乐app手机下载共同的标准包括速度和燃尽率。

发布管理的周期

发布管理通常遵循一个明确定义的路径。它从创建组织范围的发布计划开始。一些公司可能会不断发布软件更新,但其他公司更喜欢一个固定的时间表。接下来是产品或解决方案发布的调度。ob欧宝娱乐app手机下载

发布管理通常开始于开发周期的第一个阶段,当发布经理收到变更或新特性的请求时。在批准请求之后,团队设计新的发行版并开始计划。开发人员构建新软件。在开发之后,发行版进入测试,并且团队可以在发行版被接受之前进行修改。之后,发行版进入部署阶段,在部署阶段可以充分使用它。部署后阶段是支持,在这个阶段中,团队在这里记录的错误或用户描述可以作为新版本的材料反馈到开发周期中。

发布管理周期

简单发布计划模板

简单发布管理模板

使用下面的模板进行简单的发布计划。对于特别复杂和高预算的项目,可以下载由医疗补助服务中心开发的发布计划框架在这里,是一个很好的参考。

下载简单发布计划模板- Word

发布管理可以帮助解决的挑战

从历史上看,许多公司缺乏管理发布周期的流程。然而,因为问题可能代表对底线的打击,bug和崩溃会花费大量的时间和金钱(以及可靠性和声誉),所以发布管理作为解决一些常见挑战的规程而出现。

一些组织在将代码从开发部署到测试和生产环境方面遇到了困难,虽然这可能对底线的影响较小,但对于操作人员来说,这仍然是一个值得关注的问题。ob欧宝娱乐app手机下载

在其他时候,组织的内部结构可能会引起团队之间的冲突,而发布管理可以减少摩擦。同样地,当有许多交付团队协同工作时,一个团队的工作可能会破坏另一个团队的工作。一个有效的发布管理过程可以帮助组织避免许多问题。

敏捷世界中的发布管理和DevOps

基于流行软件开发的组织敏捷原则通常产生更频繁的发布。软件发布的敏捷方法被称为持续交付,该方法旨在创建可随时部署的代码。它几乎完全消除了传统的集成和测试阶段,并在非常短的周期内自动化发布过程。

乔恩•奎格利

软件产品开发专家和ob欧宝娱乐app手机下载作者Jon Quigley值转换注意到研究表明项目规模和成功之间呈反比关系。他还表示,研究表明,客户没有使用45%的开发功能。这些统计数据支持小型的、有重点的发布,优先考虑客户高度重视的功能。他说:“所有这一切的结果都推动了软件交付或软件增量的开发,越小越好。”

在持续交付中,发布管理仍然是开发和生产之间的关键连接器。ob欧宝娱乐app手机下载发布管理验证代码的完整性,并确保它按计划运行。敏捷方法打破了经常在瀑布式方法,但是敏捷需要完整的文档,所以过程是清晰的。

波音公司的古铁雷斯表示,持续交付和另一种流行做法存在很多困惑,持续部署.持续部署的概念是,如果管道的结果是成功的,那么在代码库中所做的每一个更改都将几乎立即部署到生产环境中。ob欧宝娱乐app手机下载持续交付的概念是,对代码库的每次更改都要经过管道,直到部署到非生产环境。ob欧宝娱乐app手机下载团队在计划发布代码库时立即发现并解决问题,而不是稍后。代码库始终处于可以安全发布的质量级别。何时将代码库发布到生产是由业务决定的,”他解释道。ob欧宝娱乐app手机下载

为了有效和高效地将代码库发布到生产环境,发布经理依赖于三件事:自动化、DevOps思维模式和ob欧宝娱乐app手机下载持续集成.自动化主要与测试功能有关,而DevOps思维模式极大地改善了开发和运维之间的协调(交付人员和基础设施人员可能是相同的),以平滑从前者到后者的潜在突然过渡。

与此同时,持续集成是开发人员频繁地将他们自己的工作代码副本更新到主线的实践——通常大约每天一次。持续集成依赖于严格的自动化测试系统,它倾向于快速清除错误并加快更改过程。

敏捷发布计划模板

敏捷发布计划模板

敏捷发布计划发生在第一个sprint之前,因此您可以专注于发布目标、特性和资源分配。欧宝体育app官方888这个敏捷发布模板允许您列出所有的任务,将每个任务分配到一个sprint,并根据开始和结束日期计算持续时间。您还可以从下拉菜单中指示每个任务的状态,并定义每个相应的目标。

下载Excel模板

尝试Smartsheet模板

敏捷测试计划模板

敏捷测试工厂模板

在敏捷项目中,测试阶段是一个动态的、迭代的过程,旨在确保您使用最新的信息来定义测试,并避免任何范围误解。该测试计划模板为您提供了跟踪操作、预期结果、实际结果以及测试是否通过或失败的空间。

下载敏捷测试计划模板- Excel

发布管理与IT基础设施库/IT服务管理

IT服务管理是组织用于设计、计划、交付、操作和控制其提供的IT服务的活动的超集。其中包括一组详细的实践,称为信息技术基础设施库。在使用ITSM(特别是ITIL)管理IT运营的组织中,发布管理由ITIL原则指导。

在目前的形式中,ITIL被称为ITIL 2011,由五个卷组成。发布管理包含在这些卷的第三个卷中,即服务转换卷,它涉及到将服务交付到操作使用。正如您可能猜到的那样,发布和部署管理过程旨在“计划、调度和控制发布到测试环境和活动环境的移动”。变更管理也包括在第三卷中。

ITIL组织中发布的频率远低于敏捷组织。ITIL中的发布过程是使用ITSM票务系统进行管理的,并且不太强调自动化的发布过程。这并不是说它们的效果更差。实施ITIL实践的组织可以做的不仅仅是提高发布过程的效率;他们还可以实现财务收益,并增加他们所提供服务的商业价值。

企业发布管理

企业发布管理(ERM)在具有大型或复杂软件的实体(如医疗保健系统、大公司、大学等)的组织级别上管理发布的大图景。ERM处理单个软件发布的协调,以及它们如何适应组织更大的计划、策略和日历。

为什么这很重要?想象一个开发复杂软件系统的组织。多个开发小组在这些大型系统的不同组件上工作。这种结构在内部是有意义的,因为它允许开发人员专门化,增加关注点,并逐条构建组件。但最终,这些碎片必须汇聚到一个单一的、无缝集成的系统中。如果没有企业级的全面发布管理,组织的IT投资组合将缺乏凝聚力。

ERM使组织能够推出大型软件产品,这些产品作为一个集成的整体很好地工作,它帮助他们高效地做到这一点。ob欧宝娱乐app手机下载ERM工作通常要求许多发布管理人员协同工作,这样他们就可以同步各自的发布。

发布管理和PMI关键知识领域

在一个2000年的论文Franck Aguilh在项目管理学会年度研讨会和专题研讨会上,讨论了软件开发公司中出现的新认识,即需要一个专门专注于管理发布的专业规程。发布经理而不是项目经理将扮演这个角色,因为项目经理有更广泛的优先级。

Aguilh说,成功的发布管理是一个实现四个主要目标的过程:按时部署、按预算部署、对现有客户的影响可以忽略不计,以及满足新客户的需求,同时记住竞争压力和技术进步。他还将发布管理描述为一个包含由不同的“组织”执行的几个“主要任务”的过程。

发布管理要求在组织内的许多部门之间进行协调,每个部门都履行一个专门的角色。Aguilh的“组织”从销售和营销到研发、运营和系统工程,再到客户支持和法律。

BitTitan的邓贝克说:“一个成功的发布需要跨部门的同步。“开发人员必须在正确的地方检查代码。QA必须执行检查。操作人员必须管理分支并为部署做好准备。但这些只是技术上的组成部分。如果你没有办法在内部沟通这些变化,你的销售人员在向客户展示有功能或按钮变化的演示时会感到惊讶。你的支持团队将无法回答客户提出的问题,如果你没有通过发布说明、帮助中心文章等方式与他们沟通任何更改,你的客户将得不到他们需要的答案。”

“解决这些问题最简单的方法是清楚地确定您的发布涉众,并在整个项目周期中频繁地与他们接触。每个组织都有不同的沟通偏好。会议,聊天频道,维基页面,或者仅仅是电子邮件都是让人们保持动态的好方法。重要的是确定一个节奏,然后坚持下去,”邓贝克总结道。

根据Aguilh的观点,发布管理部分依赖于将项目管理原则应用到软件发布中。这些包括主要的项目管理过程域:启动、计划、执行、控制和结束。

然而,Aguilh也提出了9个特定于发布管理的过程。以下是这九个过程的描述以及它们发生的顺序:

  • 功能产品要求(FPR)ob欧宝娱乐app手机下载:这是“功能组”正式提出向软件添加新特性或功能的请求的机制。
  • 文档过程:该团队为即将发布的版本制定了信息共享协议。
  • 发行包装流程:在这个过程中,团队根据市场压力、成本、收入、开发时间和集成等因素,决定最终发布的内容。
  • 开发过程/变更控制过程:这两个步骤是同时进行的,它们是不言自明的。在开发过程中,质量闸门可以用来指示开发周期中的里程碑。变更控制继续进入实验室和现场测试,检查新功能是否按预期工作,以及它是否影响了现有功能。
  • 培训过程:这包括培训技术支持人员、直接销售和营销人员以及电话营销人员。
  • 客户测试:这一步是通过向客户发布beta版进行的。
  • 客户通知流程:部署之前的最后一个阶段包括通知客户即将发布一个版本。
  • 部署:部署本身是一个多阶段过程,包括部署前、实际部署和部署后。

Aguilh建议,发布管理的过程与项目管理的过程非常接近。例如,FPR和发布包装基本上是范围和计划的考虑,而质量对应于文档、开发、变更控制和培训。执行和控制依次对应于培训、客户测试、客户通知和部署。当然,关闭映射到部署。因此,很明显,可以在项目管理和发布管理之间画出有用的相似之处,并且有效的发布经理需要拥有与项目经理相同的技能。

软件开发生命周期中各个阶段的发布管理过程

您已经看到了发布管理过程如何与核心项目管理过程保持一致。现在,让我们看看发布管理过程是如何与软件开发生命周期(SDLC)中的各个阶段相匹配的。SDLC通常分为六个阶段:

  1. 需求收集和分析
  2. 设计
  3. 实现或编码
  4. 测试
  5. 部署
  6. 维护

软件开发生命周期

在开发过程中,经理们布置了一个发布的政策,定义发布管理过程的范围、原则和最终目标的文档。它使用组织的战略目标来告知和指导发布管理过程。要查看示例,请查看发布的政策他是Apache软件基金会的主席,该基金会致力于为公众利益推广开源软件项目。

发布经理起草发布计划基于发布策略。这些计划是部署多个版本的广泛指导方针。

在设计阶段,发布经理确保设计和配置了支持发布的硬件和软件资产。然后,开始编码。

在实现过程中,开发人员构建和配置代码。在测试期间,测试人员在操作环境中测试代码。在部署期间,工作人员推出软件的实时版本,质量保证团队进行质量审查,以确定发布版本满足其规定的需求。如果发行版通过了质量评审,那么它将被验证并计划投入生产;ob欧宝娱乐app手机下载这种认可的印章被称为释放了.如果bug仍然存在,团队将拒绝发布。一个被接受的版本有一个包含部署细节的推出计划,公司通知客户和最终用户即将发布的版本。培训可能是必要的。

发布单元被部署到生产环境中进行全面发布。ob欧宝娱乐app手机下载一些组织选择在这个阶段验证实现,以确定发布版本在正式发布时是否能够顺利运行。

在维护阶段,开发人员对要在下一个版本中解决的发行版和日志问题进行审查。

发布管理时间表模板

发行管理时间表

要为所有的发布活动制定清晰的时间表,请创建一个发布管理计划。使用这个模板来跟踪关键的交付成果和截止日期,让每个人都在同一页上。

下载发布管理进度模板

Excel||PDF

名称的含义:部署、发布和发布

这个词部署这个词经常与“发布”和“发货”交替使用,但它们的意思并不完全相同。部署表示在服务器上安装或运行一个新版本的代码——与软件一起“上线”。这种部署可能发生在测试服务器上,而不是生产服务器上。ob欧宝娱乐app手机下载发行版是这个新版本的软件形式。它面向开发人员以外的受众,包括组织中的其他人或客户。发行版通常带有版本号。当客户部署一个版本时,它通常被描述为软件的安装。发布描述了在整个构建、测试和部署循环中获取代码的过程。

部署是软件开发生命周期和发布管理周期中的一个关键节点。部署标志着新软件版本可供使用和新版本上线的时刻。用爱丁堡大学信息学学院的保罗·杰克逊说在美国,部署就是“将软件从开发人员手中转移到用户手中”。在这个阶段,最终用户可能需要培训。

Jackson指出,部署通常是有问题的:超过50%的委托软件没有被使用,主要是因为它在部署时失败了。如果软件在部署时遇到问题,开发人员将“回滚”到以前的版本,直到问题得到解决。

Jackson还报告说,80%的委托软件支出发生在部署时和部署后。当然,这并不一定意味着部署本身就是失败的;开发中的问题可能只是在部署时才浮出水面。

但有时候,部署就是个问题。也许,客户只是没有为产品体验的变化做好准备,就像大型系统发布经常需要的那样。ob欧宝娱乐app手机下载缺乏软件采用还可能导致其他一些因素:客户的硬件无法处理新版本;客户在安装软件时遇到问题;缺乏训练是一个障碍;或者新安装“破坏”了客户的其他已有软件。

许多与部署直接相关的问题都可以通过自动化和培训来解决,因此最终用户不必考虑系统兼容性之类的问题。依赖于发布管理中的最佳实践,使这些解决方案成为标准操作过程。

什么是发布部署流程?

发布部署过程的重点是使软件在活动环境中可操作。为了实现这一点,软件必须经过测试,并被产品所有者或其他业务涉众正式接受。ob欧宝娱乐app手机下载在部署过程中,用户接受关于软件更新的培训,团队成员对其执行情况和部署情况进行评估或审查。

发布管理的最佳实践

在发布管理中,最佳实践是由已经成功实施ITIL的公司创建和改进的指导方针。该指南由英国内阁办公室拥有并出版。ITIL发布管理流程已被空间项目、卫生服务、银行和娱乐公司使用,并取得了良好的效果。各组织必须修改准则,以满足其自身的要求和能力。但是,请记住:这些只是一个开始框架,而不是福音。

尽管发布管理在从开发到生产的过渡过程中最为重要,但它始于开发期间的发布计划。ob欧宝娱乐app手机下载例如,建立一个变更顾问委员会来监督整个组织的变更是个好主意。设计一个可以在整个SDLC中使用的单一发布管理系统也是明智的。

类似地,创建发布过程检查表鼓励透明度,以及对发布管理过程及其如何创建业务价值的共享理解。与Atul Gawande的书《Checklist Manifesto》相辅相成的是,使用清单还可以更容易地控制发布过程,特别是在有指标需要监控的情况下。此外,拥有一位活跃的资深赞助商也会有所帮助。

克里斯·哈丁

“发布管理最常见的缺陷是没有遵循发布清单,”他说克里斯·哈丁他是微软的发布经理。“发行清单中的细节是关键。你可能有一个休息日,或者当你在配置一个产品时,一些事情可能会分散你的注意力,但清单从来不会说谎,”他指出。ob欧宝娱乐app手机下载

哈丁认为,2018年5月,加拿大沃尔玛在一次行业会议上正式亮相之前,在其网站上发布了几款电子游戏,这是一个简单的错误,本可以用清单来弥补。“产品页面的发布时间可能设置错误,在推向公众之前没有人发现。ob欧宝娱乐app手机下载在医学界,检查表可以挽救生命。发布管理没有那么引人注目,但它可能会挽救你的工作。”

软件发布清单模板

发布管理检查表模板

为了跟踪所有发布活动,可以考虑使用清单。该模板以Microsoft Word、Excel和PDF格式提供,包括列出关于营销、产品开发、QA、工程/DevOps、用户体验、技术支持、服务和法律任务的注释和状态的空间。ob欧宝娱乐app手机下载编辑表单以反映项目的需求。

下载软件发布清单模板

|Excel|PDF

一些最佳实践实际上只是常识。例如,持续集成通过快速捕获错误来提高最终发布的质量。而且,在周五发布版本并不是一个好主意,因为如果出现故障,在工作周内就没有时间进行故障排除。在流量较低的时期安排发布也是值得的——你必须知道你的客户什么时候是活跃的——这样如果出了问题,你就可以更好地控制损失。另一种选择是分阶段推出,即每次只向少数用户提供功能。当然,在发布之前需要备份数据库。

最后,请记住,实现发布管理过程本身就是一个过程。发布管理可以迭代,并且每次可以实现一点点的自动化。不要试图强迫这个过程。

发布管理的软件工具

软件工具可以加快和促进发布管理过程。

例如,现代软件产品被构建为支持少数平台,从互联网浏览器到应用服务器和操ob欧宝娱乐app手机下载作系统。因此,它们需要在发布之前在这些环境中进行测试。创建和维护测试所需的所有环境是一个问题。但是,有一个简单的解决方法:使用虚拟化和云服务,如Selenium和SmartBear,它们通过为每个测试创建模拟环境来简化为目标平台部署配置的过程。

Brian White

“一个常见的挑战是自动化发布,但没有良好的自动化测试,”指出Brian White,定制软件开发公司Small Footprint的高级解决方案架构师。他说:“如果你对自己发布的版本的质量没有信心,那么当有人开始使用它时,它总是会崩溃,那么它的部署速度再快也没用。”

为了简化整个发布管理过程,软件开发平台和发布管理系统(如GitHub、Jira和许多其他系统)提供了成功发布所需组件的紧密集成。这些可以在整个SDLC中使用,从发布计划到生产。ob欧宝娱乐app手机下载

这些工具通常是可扩展的,基于组织的需要,它们将集中更新和管理功能,当它们作为SaaS(软件即服务)工具通过互联网访问时,这一点特别有用。最好的工具还将支持管理组件的测试和部署,以及变更管理和与第三方服务管理组件的集成,这允许端到端交付系统。寻找符合IT服务管理论坛ITIL V3指南的工具。

允许至少部分自动化发布过程的工具是一个巨大的帮助。可以将软件交付一直自动化到生产,或者通过批准和按需部署建立一系列半自动化的过程。ob欧宝娱乐app手机下载

其他有用的特性包括跨版本跟踪更改的能力,因此很容易找到问题的根源,并且有一个结构,可以减少回滚到上一个工作版本的痛苦。记录应用程序反馈,这个功能可以移动到即将发布的版本的待办事项中,也很有帮助。

此外,考虑能够支持持续集成和持续部署的工具。持续部署比持续交付更进一步,可以在变更通过生产管道时立即进行部署。ob欧宝娱乐app手机下载这种方法加速了反馈过程,极大地提高了效率。

发布管理指标和kpi

一旦一个发布管理过程成熟了,发布经理就可以将他们的注意力转向以改进过程为目标的性能度量。让我们来看一些:

  • 发布时间:这是第一个重要的指标。任何软件发布都有宕机的风险,宕机时间从几分钟到几个小时甚至几天不等。停机时间本身并不是坏事;这通常是必须的。也就是说,区分不同类型的停机时间是很重要的。例如,估计的停机时间是必要的,并且是构建在发布计划中的停机时间,将其与实际停机时间进行比较是一个好主意,实际停机时间是在发布后测量的。还有计划外的停机时间,这在几个版本中可能是根本问题没有得到解决的迹象。
  • 发行类型及优先级:每个版本被分类为主要、次要或介于两者之间,并被分配优先级:高、中或低。在许多版本中,按类型和优先级查看您的版本的分解。应该在大小和优先级上很好地混合发行版。同一产品的太多主要版本可能表明质量保证存在严重问题,而拥有太多高优先级版本ob欧宝娱乐app手机下载则表明您的团队陷入了永久的灭火模式,这往往会耗尽每个人的精力。
  • 准时上映数量:由于不能保证按时发布,所以发布延迟也是一个问题。有相当多有趣的信息有待收集。例如,一些开发团队是否比其他团队有更多的延迟或按时发布?是否存在基于发布优先级的延迟或按时交付模式?反复延迟发布的根本原因是什么?

您还可以在企业级别跟踪一些有趣的指标。这包括从三个不同的角度(项目、系统部署和特性)来衡量企业版本的规模。另一组有用的度量标准跟踪项目、系统和特性的数量。(De-scoping是指计划发布的某些东西未能通过发布门,因此被从企业发布中取出,以免耽误它。)

发布管理的案例研究

到目前为止,我们已经讨论了很多理论,您可能想知道发布管理在现实世界中是如何工作的。微软是个不错的选择。

微软的核心服务工程(CSE)依赖于持续集成、持续交付和名为Visual Studio Team Services (VSTS)的云托管平台的组合。他们的开发方法,他们称之为“现代工程”,基于敏捷开发和DevOps的原则。

看看微软是如何围绕持续交付构建其开发的,您就会明白它是如何从更好的发布管理中获益良多。微软的软件工程师专注于创造一个最低限度可行的产品,吸引早期的采用者,同时允许开发人员为以后的版本收集反馈。ob欧宝娱乐app手机下载

微软开发人员可以在任何时候在任何部署环境中尝试代码,他们使用组件化使代码更容易构建。在微软的发布管理流程下,他们可以开始无人值守的构建和无人值守的部署,这只需要几分钟,而不需要争夺资源。欧宝体育app官方888另外,他们的部署验证过程是自动化的。

CSE还包括迭代设计和快速原型的敏捷原则,同时使用自动化来削减测试时间。这意味着CSE可以加快其发布周期,快速纠正问题,并以更小的块交付持续的更新和增强-最后一点也降低了风险,因为开发每个特性花费的时间更少。

而且,不仅仅是科技公司从发布管理中受益。在2008年到2010年之间土耳其中央证券存管处的信息技术部门承担了配置管理、依赖关系管理、基础设施管理、变更管理、数据库管理和应用程序配置管理的广泛自动化,以“完全消除”发布中的问题,缩短发布时间,并从根本上减少与部署相关的错误。

在联合航空公司,发布的四步模型包括计划、协调、执行和自动化——所有这些都由大量数据提供信息——帮助公司从以电子表格为中心的发布管理转向集中的仪表板发布跟踪和管理系统。

如何改进发布管理

改进组织的发布管理能力需要理解发布管理过程的当前状态。你应该用两种方法来做到这一点:定量和定性。

定量地说,您应该收集一些基本的度量,包括平均发布时间、发布的类型和优先级、错误数量和延迟发布的数量。它们既用于识别发布管理的当前状态,也用于计算性能基线。

定性地说,与作为发布管理过程一部分的人交谈,特别是在开发与运维交互的地方,并了解他们的想法。他们将能够指出数字中没有显示的现实。

您可以通过建立一个定期的发布周期来掌握发布管理,这有助于建立一致性。(当然,这并不适用于所有版本,但对于大型的、预先计划好的版本,您可以这样做。)将轻量级发布过程置于适当的位置,而不是试图从一开始就开发一种文化。这允许您在早期建立发布的基础结构,并在必要时对其进行测试和修改。

随着时间的推移,运行良好的流程将成为标准实践。基于您对发布管理的最初调查,您现在可以开始实施更严格的质量需求并改进效率基准。您可以通过消除停机时间和测试回归来最小化发布对用户的影响。在这个阶段,您还可以开始考虑规范化和自动化流程,例如测试和验证。

真正的协作发布文化需要时间来发展,它需要一个发布基础设施来发展。您可以通过投资于您的员工和投资于发布管理工具和技术来培养这种文化,这些工具和技术鼓励人们对整个发布管理过程采取全面的观点。

改善沟通和信息获取将促进协调。让人们知道发行版本会变得更好,因为设定积极的期望很重要。“团队面临的一个挑战是,当他们将发布视为纯粹的技术障碍时,他们忘记了在公司内部和与利益相关者的良好沟通。为了克服这个问题,确保团队中的每个人都理解目标和风险,并确保与最终用户沟通变更,以避免意外。”

发布经理的工作

如果带领开发人员和运营人员朝着最终目标和生产截止日期前进听起来很有趣,那么可以考虑成为一名发布经理。ob欧宝娱乐app手机下载

发布经理必须在项目、开发方法、基础设施和涉众的复杂环境中导航,同时协调对企业发布做出贡献的每个人的工作。发布经理还必须向组织中的最高管理人员报告,一直到CEO(尽管对于更成熟的组织,发布管理可能是一个更自主的功能),并且当发布出错时,他们会受到很多批评。

微软的Harding说,对于发布经理来说,拥有广泛的项目管理技能是很重要的。“为其他项目利益相关者提供培训和访问机会是减少对个人依赖的关键。发布经理通常有一套非常具体的解决问题的技能,但是他们可以依靠其他pm来拥有产品配置和过程的元素,”他解释道。ob欧宝娱乐app手机下载

那么,一个好的发布经理的素质是什么呢?他们非常熟悉开发和运维的工作方式——即技术工作方式和人们一起工作的方式。在工作、时间、尤其是人的管理方面,他们拥有出色的管理能力。他们致力于质量、效率和流程。他们是自动化的倡导者,而且在技术方面,他们必须精通源代码存储库的操作。而且,他们精通定义企业版本的无数项目间、功能间和部门间依赖关系。

他们也知道关于发布管理应该相信什么(不相信什么)。

软件发布和发布管理的神话

有很多关于发布管理的传统智慧,但是其中有多少是值得的呢?幸运的是,Slinger Jansen和Sjaak Brinkkemper来自荷兰乌得勒支大学的两名研究人员已经进行了尝试回答通过比较成本和价值来提问。他们发现许多神话和误解盛行。

误解1:客户想要跟上时代。实际上,客户只关心提供有用功能的更新。如果发行版本不能让他们的体验变得更好,他们也不会在乎。

误解2:客户必须(从供应商的角度)保持更新。这是一个供应商比客户更关心客户使用最新版本软件的例子。正如我们已经提到的,客户在他们想要更新的时候更新,否则他们仍然乐于使用旧版本。

误解3:最新发布的总是最好的。根据客户的用例,旧的(或古老的)版本可能工作得很好,而新的版本可能需要他们花时间学习新的界面或新功能。

误区4:修复可以等到下一个主要版本。不幸的是,“下一个主要版本”很少按时发布。而且,在最终发布之前,这些问题将一直存在,困扰着客户。

误解5:必须不惜一切代价避免变通方法。有时,人们不介意简单的变通方法,而替代方案是昂贵、耗时的升级到新版本。

误解6:客户总是想要新功能。如果新功能妨碍了他们既定的、舒适的工作流程,他们就不想要它们。

误解7:经常释放并不好。只要你不是每次都向外部客户发布,频繁的发布并没有害处。频繁发布可以缩短反馈周期,但将大多数反馈限制在内部用户和试点客户。

误解8:安静的顾客才是快乐的顾客在使用的早期阶段最常联系技术支持的客户被证明是对产品最满意的。ob欧宝娱乐app手机下载接触你的客户。

误解9:客户阅读发行说明。当然,他们不会。如果必须的话,他们会这样做——也就是说,如果他们的选择受到限制,正在选择专业的软件——但他们更喜欢有针对性的信息,这些信息总结了他们作为特定类别的客户所需要知道的东西。

误解10:在同一领域发布许多不同的版本是不好的。如果供应商为使用旧版本的客户提供持续支持,这可能是一个问题,但即使这样,这也是一个数字游戏。在旧版本上拥有少量客户并不是一个无法解决的问题。

发布管理领域的大趋势

敏捷实践和自动化正逐渐成为发布管理的核心原则,这是有充分理由的。自动化缩短了发布时间,并可以大大降低错误的风险。敏捷实践推动采用构建自动化、测试自动化、部署自动化和反馈自动化,所有这些都减轻了开发团队的负担。

波音公司发布经理Gabriel Gutierrez说:“自动化和虚拟化/云平台的使用都支持发布管理中的另一个热门趋势:持续交付。”“通过持续交付,每个新的软件版本都会自动构建、测试并为部署做好准备,从而将想法快速转化为现实。持续交付允许更频繁的部署,这意味着来自客户的更频繁的反馈。因此,如果你正在做出客户需要和关心的改变,那么通过快速学习可以减少浪费的时间。”他补充道。

另一个趋势是使用分布式版本控制系统(DVCS),比如GIT、Mercurial和Perforce,它们从根本上改变了团队协作的方式。DVCS允许用户在本地计算机上保存自包含的存储库,并提供完整版本的历史记录。这种功能使得脱机工作和只向本地设置提交更改成为可能。开发人员可以在不影响中心代码的情况下进行更改,这对于实验来说是非常好的。

我们相信DevOps文化和实践将成为大公司的主流,所有阶段的自动化是一个可实现的目标。与此同时,初创公司很可能从一开始就开始采用DevOps方法。这在一定程度上是因为DevOps操作得当,意味着更少的故障次数、更快的恢复速度和更多的部署数量,这反过来又意味着(非常昂贵的)停机时间的减少。随着DevOps采用的增加,的过程也会增加将离开,即自动化测试和性能监视发生在生命周期的早期,安全验证成为交付管道的一部分。

“虽然不是新趋势,但更频繁和快速的部署已经从技术挑战变成了利益相关者的期望,”Small Footprint的White补充道。“随着涉众更多地了解更频繁部署的可能性和好处,他们不再满足于在发布之间等待数周,并推动开发团队更频繁地发布。如果团队没有可靠的持续集成/持续交付基础设施,就会给团队带来巨大的压力。”

Quigley说,成功执行这些快速且定义良好的软件内容增量需要“对配置管理和随着时间的推移跟踪产品增长的勤勉程度,因为有更多的迭代交付给客户。”ob欧宝娱乐app手机下载

关于发布管理的进欧宝体育app官方888一步资源

有关发布管理的更多技术介绍,请查看这篇文章白皮书作者是ThoughtWorks Studios的Jez Humble。一旦你完成了这些,Electric Cloud有一个大量的发布管理资源欧宝体育app官方888深入研究细节。

如果您正在考虑将发布管理作为一种职业,并且您已经在从事敏捷工作,请查看这篇文章短期课程简-埃里克·桑德伯格在Pluralsight上的文章。而且,如果你认为获得ITIL认证是一个好主意,粉红大象提供官方ITIL认证课程,从基础级别开始。

最后,如果您只是想马上动手进行发布管理,请看看如何操作哈佛信息技术它。

使用Smartsheet改进软件开发的发布管理

为您的员工提供一个灵活的平台,以满足您团队的需求,并根据这些需求的变化进行调整,使他们能够超越自我。

Smartsheet平台可以轻松地在任何地方计划、捕获、管理和报告工作,帮助您的团队更有效地完成更多工作。通过汇总报告、仪表板和自动化工作流,报告关键指标,实时了解工作情况,使您的团队保持联系和信息灵通。

当团队清楚地知道要完成的工作时,没有人知道他们在相同的时间内能完成多少工作。今天就可以免费试用Smartsheet。

发现为什么超过90%的财富100强公司信任Smartsheet完成工作。

免费试用Smartsheet 获得一个免费的Smartsheet演示