敏捷开发最佳实践:发布管理实践案例之每周发布

发布管理是敏捷实践中交付价值的重要环节,本节敏捷实践案例将为大家分享:如何在增强业务感知的同时降低缺陷率,如何通过“缩短发布周期”解决需求交付时间较长和上线后缺陷较多的难题。

本实践节选自《2021中国企业敏捷实践白皮书》(点击可下载),分享者为黄世荣,是来自启迈检验(深圳)有限公司的 Scrum Master

问题:

业务侧经常反馈需求交付时间长、响应慢,上线后生产缺陷多。

问题成因:

1.多个团队做同一个产品研发,开发周期长容易导致代码冲突暴增,增加集成时间;

2.开发周期越长,代码量变更范围越多,集成测试时测试压力越大,容易出现潜在缺陷被漏测。

敏捷实践:

基于上述问题做出调整,并将该实践称之为“每周发布”:

  1. 把用户故事尽量细分,对于大而复杂的需求,要在更早期的分析和规划阶段就引入探针;

  2. 将开发、测试、验收环境独立,避免混用和争用;

  3. 通过 DevOps 平台快速建立持续发布流水线,自动集成、部署、逐步实施分层自动化测试;

  4. 业务频繁参与演示,及时纠偏;

  5. 持续监测发布后的生产情况。

实践结果:

需求可以做到每周发布,业务感知更明显、满意度也得到很大提升; 生产质量改善明显,生产缺陷减少了35%以上。

总结

持续发布实践很好地诠释了如下两条敏捷原则:“我们最重要的目标,是通过及早和持续不断地交付有价值的软件使客户满意。”、“经常地交付可工作的软件,相隔几星期或⼀两个月,倾向于采取较短的周期。”

持续发布提升企业竞争力

龚明杰

专家平安科技 敏捷教练

敏捷发布是研发团队把价值交付到用户手中的过程,用户可以真正体验产品、并获得能力。随着数字化时代的到来,企业寄希望借助数字技术提升竞争力的诉求更加迫切,而这直接体现就是快速、可靠的持续价值交付要求,因此,持续发布本质上体现了团队的持续集成、持续部署、自动化等工程能力,以及质量保障能力、风险控制能力、响应变化的能力等。

本次调研中,有三分之⼀的企业能够依照DevOps实践建立适合⾃身的持续发布能力,并正在持续深化。说明最近几年,很多企业都在大力投⼊构建持续交付方面的能力,但仍有近4成的企业团队相对落后不少。在上述案例中,“每周发布〞的实践成效较为显著也较为典型,一方面可以提升业务的价值感知、快速支持业务变化;另一方面也可以降低代码的复杂度、测试难度,改善生产质量,可谓一举两得。

根据以往实践经验,在如何提升持续发布能力方面有个不错的实践推荐——每日预发布:

  1. 首先准备一个类生产环境、数据是生产快照,代码采用主干开发,分支发布策略,每个版本创建一个预发布分支,通过Jenkins等工具建立预发布流水线;

  2. 然后,在开发过程中,将每天测试通过的新增代码,摘选合并到预发布分支,打包部署到测试环境进行测试,通过后发布至类生产环境,按需(未完全可用的功能通过特性开关关闭)对用户代表通知,用户可以随时登陆验证;

  3. 最后将发布过程中的耗时和质量问题记录下来,逐步解决,比如Sonar的代码扫描太耗时且问题发现靠后,就在IDE内置插件,编写时及时纠正,后端修改经常出现关联缺陷且测试工作量大,就将服务测试全部自动化,能力比较强后,服务平台直接发布生产黑启动等。

除此以外,建议大家也同时向前看,特别是传统企业,可引入Design Thinking、精益产品设计、用户故事地图等一些实践,让高价值需求先具备可持续发布性,然后构建起端到端的持续交付能力,否则,持续发布流水线可能会成为没有水的沟渠或者污水横流。

推荐阅读:

Scrum 开发指南: Scrum 框架详解  |  Scrum 四个会议及正确召开方式 |  正确的计划和执行Sprint的方式 |  做好迭代计划的4大关键点 |  做好这4点让每日站会更适配敏捷团队  |  开好迭代评审会的3个关键步骤  |  为什么要召开迭代回顾会  | Scrum 3大角色及其岗位的具体职责  |  Scrum三大工件在敏捷开发中的作用  |  2022年14个最佳 Scrum 敏捷项目管理软件  |  更多 

Kanban 敏捷指南: 使用看板(Kanban)管理方法的5大好处  |  看板 VS Scrum:如何选择? |  看板和 Scrum 的混合模式适合在哪些场景使用  |  更多 

规模化敏捷: 规模化敏捷的价值及五大规模化敏捷框架  |  规模化敏捷之 Spotify 模型  |  规模化敏捷框架之LeSS框架  |  SAFe 规模化敏捷框架  |  Scrum@Scale 模型  |  敏捷项目组合管理  |  OKR与敏捷开发  | 更多 

产品管理: 如何构建合格的产品路线图  |  如何成为一个优秀的产品经理  |  敏捷路线图的重要性以及构建  |  如何构建简单有效的产品需求文档  |  利用 NPS 确定功能优先级  |  每个产品经理都需要了解的产品分析技能  |  更多 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16756.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Solidity 教程01 Remix IDE 初次见面

访问链接地址: https://remix.ethereum.org/ 文件管理器 文件资源管理器用于管理工作区和文件。此插件还包含许多快捷方式和命令。要快速浏览,请右键单击文件以获取弹出菜单,并检查插件右上角的汉堡菜单。 要找到文件资源管理器模块 - 单…

SQL注入绕过技术深度解析与防御策略

引言 在Web安全领域,SQL注入攻击一直是一个棘手的问题。攻击者通过SQL注入手段获取敏感数据、执行恶意操作,甚至完全控制系统。尽管许多防御措施已被广泛采用,但攻击者仍不断开发新的绕过技术。本文将深度解析SQL注入的绕过技术,…

rust语言初识

程序设计实践课上水一篇ing 来源:rust基础入门-1.初识rust-酷程网 (kucoding.com) rust作为一名新兴语言,与go又有些许不同,因为它的目标是对标系统级开发,也就是C、C这两位在编程界的位置。比如我们最常用的windows系统&#x…

001.数据分析_NumPy

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

【ai】pycharm设置软件仓库编译运行基于langchain的chatpdf

联想笔记本 y9000p创建python工程: 使用langchain支持openai的向量化embedding安装软件包 发现没有openai ,添加软件仓库打开工具窗口 点击设置

优先队列的pop与push

前言 个人小记 一、代码 #include<stdio.h> #include <stdlib.h> #define MAX_LEN 10 #define father(n) ((n)/2) #define left(n) (2*(n)) #define right(n) (2*(n)1) typedef struct Prequeue {int * __data,*data;int size,count; }Prequeue;Prequeue* ini…

Jlink卡死 JFlash keil 盗版JLINK

现象&#xff1a;用Keil打开Jlink配置页&#xff0c;会卡死。 解决方法&#xff1a;用旧版本的Jlink软件&#xff0c;因为淘宝买的很多JLINK下载器是盗版的&#xff0c;不支持新版本的JLINK软件。到https://www.segger.com/downloads/jlink下载旧版本的软件。 如果必须要用新版…

SQLI-labs-第二十五关和第二十五a关

目录 第二十五关 1、判断注入点 2、判断数据库 3、判断表名 4、判断字段名 5、获取数据库的数据 第二十五a关 1、判断注入点 2、判断数据库 第二十五关 知识点&#xff1a;绕过and、or过滤 思路&#xff1a; 通过分析源码和页面&#xff0c;我们可以知道对and和or 进…

基于Kubeeasy安装Kubernetes-v1.22.1版本(安装报错已解决)

基础环境准备 将提供的安装包 chinaskills_cloud_paas_v2.0.2.iso 上传至 master 节点 /root 目录&#xff0c;并解压 到 /opt 目录&#xff1a; [rootlocalhost ~]# ll total 7446736 -rw-------. 1 root root 1579 Mar 7 22:46 anaconda-ks.cfg -rw-r--r--. 1 root …

链表经典题目—相交链表和链表倒数第k个节点

&#x1f389;&#x1f389;&#x1f389;欢迎莅临我的博客空间&#xff0c;我是池央&#xff0c;一个对C和数据结构怀有无限热忱的探索者。&#x1f64c; &#x1f338;&#x1f338;&#x1f338;这里是我分享C/C编程、数据结构应用的乐园✨ &#x1f388;&#x1f388;&…

艾体宝干货 | 教程:使用ntopng和nProbe监控网络流量

本教程旨在分享如何通过 ntopng 和 nProbe 这两款工具&#xff0c;深入了解和掌握网络流量监控的艺术。我们将提供从基本概念到高级应用的全面指导&#xff0c;涵盖了在多种平台和设备上的部署和配置步骤。不论您是专业人员还是技术爱好者&#xff0c;跟随本教程&#xff0c;都…

11thingsboard物联网网关接入ThingsBoard物联网平台的操作说明

本文包含关于如何配置ThingsBoard 平台和连接钡铼技术R40设备的说明。ThingsBoard平台是一个用于数据收集、处理、可视化和设备管理的开源物联网平台。它通过行业标准MQTT协议实现设备连接。ThingsBoard结合了可扩展性、容错性和性能&#xff0c;因此您永远不会丢失数据。 4G L…

【考研数学】线代除了「李永乐」,还能跟谁?

考研线代&#xff0c;除了利用了老师&#xff0c;我觉得还有一个宝藏老师的课程值得听&#xff01; 那就是喻老&#xff0c;这个是我在b站上面新发现的老师&#xff0c;听完他的课程发现真的喜欢 他不仅在B站上开设了课程&#xff0c;还编写了配套的线性代数辅导讲义&#xff…

Python图形界面(GUI)Tkinter笔记(十一):用【Entry()】实现单行文本输入(2)

Tkinter库中的单行文本输入框(Entry)与Pyhton中最常的get()方法有机结合在一起能实现各种各样的功能。get()不只是与Entry()方法配合使用,还可以与其它方法配合使用,例如还可以与前面的Button()方法使用等等。总之,不同的工具不同的组合产生的反应是充满各种梦幻与想象,妙趣…

NIO的ByteBuffer和Netty的ByteBuf的性能

在讨论Java NIO的ByteBuffer与Netty的ByteBuf的性能时&#xff0c;需要考虑几个主要的因素&#xff0c;因为性能表现并不是绝对的&#xff0c;而是依赖于具体的使用场景。Netty的ByteBuf设计更加现代&#xff0c;针对网络编程的需求进行了优化&#xff0c;包含了许多ByteBuffer…

网络安全面临的最大的威胁是什么

网络安全面临的威胁概述 网络安全威胁是指可能对网络系统造成损害、干扰或未经授权访问的各种风险和威胁。随着数字化进程的加快&#xff0c;网络安全问题愈发凸显&#xff0c;企业和个人都面临着来自多方面的威胁。这些威胁包括但不限于恶意软件、网络钓鱼、零日漏洞、拒绝服务…

Python中的SSH、SFTP和FTP操作详解

大家好&#xff0c;在网络编程中&#xff0c;安全地连接到远程服务器并执行操作是一项常见任务。Python 提供了多种库来实现这一目标&#xff0c;其中 Paramiko 是一个功能强大的工具&#xff0c;可以轻松地在 Python 中执行 SSH、SFTP 和 FTP 操作。本文将介绍如何使用 Parami…

企业选择定制化MES管理系统时需要考虑的核心功能

在当今制造业的数字化转型浪潮中&#xff0c;企业对于实现生产现场透明管理的需求愈发迫切。为了满足这一需求&#xff0c;MES管理系统成为了众多企业的首选解决方案。MES管理系统以其高度的灵活性和可定制性&#xff0c;能够根据不同行业的特性&#xff0c;为企业提供量身定制…

php质量工具系列之paslm

Psalm是一个静态分析工具&#xff0c;深入程序&#xff0c;尽可能多地找到与类型相关的bug 混合类型警告 Intelligent logic checks 属性初始化检查 Taint analysis Language Server Automatic fixes Automatic refactoring 安装 composer global require --dev vimeo/psalm …

看潮成长日程表用户手册(上)

看潮成长日程表用户手册&#xff08;上&#xff09; 一、特色功能1、以每周日程表为主要形式2、全时管控的时间管理3、持续的日程管理4、分期间时间表5、按日排程&#xff0c;按周输出6、夏季作息时间处理7、年度假日处理8、休息日处理9、弹性日程10、完成记录11、多种输出形式…