Scrum团队在迭代中如何处理计划外的工作
认为 Scrum 团队不做计划其实是一个误区,实际上很多 Scrum 团队在冲刺计划会议以及在细化工作项时均会进行详细规划。此外,他们还会创建一个路线图,以便显示他们在多个冲刺中的计划。
Scrum 团队需要经常进行计划,以便在不断变化、信息不断涌现的复杂环境中不迷失方向。团队评估新的信息,并调整他们的工作方式以充分利用所获得的新知识。
当团队在冲刺进行中突然遇到未计划的工作时,应该如何处理?本文将分享一些最佳实践。
处理计划外工作的三个最佳实践
不可避免地,无论 Scrum 团队如何精心计划,总会有突如其来的需求要求团队在冲刺(Sprint)中途处理未计划的工作。
发生这种情况时,开发人员与产品负责人应立即拉起会议,讨论如何应对。为什么要由开发人员和产品负责人来处理?因为产品负责人负责对产品待办列表中的任务进行优先级安排,只有他们有权决定是否将这项突发工作加入产品待办列表,并判断其是否足够重要以至于需要在当前冲刺待办列表中加以考虑。

产品待办列表
另一方面,由开发人员负责完成冲刺待办列表,只有他们可以判断自己是否有能力接下这项额外工作,同时不影响冲刺目标的实现。
如果产品负责人确实希望在冲刺中添加新的工作项,开发团队可以选择拒绝,或者可以与产品负责人协商,决定为了容纳新的需求而从当前冲刺中移除哪些任务。不过不能因为需求变更而使冲刺目标受到威胁。
有些 Scrum 团队经常面临大量未计划的工作。例如许多 Scrum 团队不仅要负责新的开发任务,还要处理生产支持问题。
对许多组织而言,生产支持的工作是不可预测的,且不能推迟到下一个冲刺处理——必须立即处理这些请求。尽管这类工作属于未计划的,但它对于产品的成功至关重要。
下面是几种处理未计划工作的方法。
选择1:预留一定容量,将未计划的工作加入冲刺待办列表
在此方法中,开发团队在冲刺计划时会预估未来冲刺可能接收到的未计划工作量,并相应预留出一部分容量来处理这些突发事件。这个预测并不容易,因为这其中很多东西都是未知的。
虽然我们无法做到这一点,但可以通过回顾历史表现来做出有根据的预测。
比如,过去几次冲刺中,未计划工作占用了团队多少时间?这些突发任务的出现是高度不可预测的还是相对稳定的?通过这些问题的答案,我们可以预估出应为冲刺期间可能出现的临时需求留出多少空间。
一旦未计划的工作出现,如果产品负责人和开发团队同意将其加入冲刺,他们应将其包含在冲刺待办列表中,以确保工作的透明度,保证团队能够跟踪冲刺中所有任务的进展。
选择2:预留一定容量,但不将未计划的工作加入冲刺待办列表
如果未计划的工作由一系列较小的任务构成,Scrum 团队可能会考虑是否真的需要将这些任务加入冲刺待办列表,尽管不加入会导致缺乏透明度。但大量的小任务如果加入冲刺待办列表,可能会造成管理上的负担。
在这种情况下,团队仍可以选择不增加冲刺待办列表的负载,而是选择在冲刺范围之外处理这些未计划的工作。在这种做法下,团队会预留出部分能力,从而避免了将其加入冲刺待办列表所带来的管理负担。
选择3:设立专门团队处理未计划工作
如果未计划的工作量大且频繁,Scrum 团队可以考虑分设一个团队专门负责生产支持等任务。
限制计划外工作影响的策略
正如很多 Scrum 专家所分享的,每次冲刺都是组织和 Scrum 团队之间的一个约定。Scrum 团队需要尽可能地集中精力处理冲刺中的工作以及定期的优化工作,组织将定期获得可用的产品增量。
然而,在某些组织中,完全避免计划外的工作是比较困难的。如果您的团队经常面对意外工作,以下是几种我们可以采用的策略。
1.优先完成当前工作项
当遭遇计划外的工作时,立即停下手中的工作并转向紧急任务看起来很好。但最好不要这么做。应当先完成当前的工作,然后再着手处理下一个优先级最高的工作项。
原因是什么呢?
因为当我们暂停当前的工作,并在未完成先前任务之前开始另一项任务时,我们将留下许多未完成的工作,这会造成浪费。那些“未完成的工作”不能永久地搁置,否则会变得过时。而且,当我们最终回到最初的工作项时,由于需要重新组织思路,完成这项工作所需的时间将会更长。
2.限制进行中的工作
如果团队面临大量计划外的工作,限制进行中的工作变得更加重要。进行中的工作指的是我们在冲刺期间正在进行的任务数量。如果我们的进行中的工作很多,并且遇到计划外的工作,我们将需要在转向这些额外工作之前做很多调整。
通过限制进行中的工作,我们在将精力投入计划外工作之前,没有太多需要暂停或完成的任务。
3.将工作切割得更细
对于经常面临大量计划外工作的团队来说,另一个策略是将计划中的工作分解成更小的部分。这样做可以使我们更快地完成当前任务,并在出现计划外工作时更迅速地转换方向。
4.结对工作
与每位开发者分别承担各自的任务不同,配对工作涉及两位开发者共同完成同一项任务。这种策略带来两个好处:
一方面,实际上它限制了进行中的工作量。另一方面,当面对计划外的工作时,它为团队提供了更大的灵活性,因为他们可以更快地完成当前的工作项,或者安排其中一位开发者转向新任务,而另一位继续进行原有任务。
结论
无论 Scrum 团队如何精心计划,总有时候会在冲刺中途出现计划外的工作请求。出现这种情况时,开发者和产品负责人商量,确定是否将这些额外的工作添加到当前冲刺中。
Scrum 团队应事先决定如何处理计划外的工作——是将其加入冲刺待办列表,还是在冲刺范围之外完成它?
如果频繁出现意外工作,团队是否应预留一些容量来处理这些工作,或者是否应该由一个专门的团队来承担?只有 Scrum 团队能够回答这些问题,并且随着对客户需求的了解增加,他们的处理方法可能会发生变化。
推荐阅读:
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 确定功能优先级 | 每个产品经理都需要了解的产品分析技能 | 更多
相关文章:
Scrum团队在迭代中如何处理计划外的工作
认为 Scrum 团队不做计划其实是一个误区,实际上很多 Scrum 团队在冲刺计划会议以及在细化工作项时均会进行详细规划。此外,他们还会创建一个路线图,以便显示他们在多个冲刺中的计划。 Scrum 团队需要经常进行计划,以便在不断变化…...
桌面识别技术革新交互,展厅互动体验步入新时代!
在这股科技浪潮中,物体识别桌作为一种前沿的人机交互设备,其影响力尤为显著。它不仅颠覆了传统展厅内容的交互模式,更以科技之力为观众呈现了一场前所未有的视觉盛宴。那么,接下来,就让我们一起深入探索,物…...
书生·浦语大模型LagentAgentLego智能体应用搭建 第二期
文章目录 智能体概述智能体的定义智能体组成智能体范式 环境配置Lagent:轻量级智能体框架实战Lagent Web Demo用 Lagent 自定义工具 AgentLego:组装智能体“乐高”直接使用AgentLego作为智能体工具使用 用 AgentLego 自定义工具 智能体概述 智能体的定义…...
具有 Hudi、MinIO 和 HMS 的现代数据湖
Apache Hudi 已成为管理现代数据湖的领先开放表格式之一,直接在现代数据湖中提供核心仓库和数据库功能。这在很大程度上要归功于 Hudi 提供了表、事务、更新/删除、高级索引、流式摄取服务、数据聚类/压缩优化和并发控制等高级功能。 我们已经探讨了 MinIO 和 Hudi…...
32.基于分隔符解决黏包和半包
LineBasedFrameDecoder 基于换行/n (linux)或回车换行/r/n(windows)进行分割。 使用LIneBasedFrameDecoder构造方法,需要设定一个最大长度。 如果超过了最大长度,还是没有找到换行符,就这位这个数据段太长了,抛出ToolLongFrameException DelimiterBasedFrameDecoder …...
2024-6-19(沉默springboot)
1.spring开启事务支持 事务在逻辑上是一组操作,要么执行,要不都不执行。主要是针对数据库而言的,比如说 MySQL。 业务场景eg: public void savePosts(PostsParam postsParam) {// 保存文章save(posts);// 处理标签insertOrUpdateTag(posts…...
three.js 第八节 - gltf加载器、解码器
// ts-nocheck // 引入three.js import * as THREE from three // 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入hdr加载器(专门加载hdr的) import { RGBELoader } from three/examples/jsm/loaders…...
Aquila-Med LLM:开创性的全流程开源医疗语言模型
论文链接:https://arxiv.org/pdf/2406.12182 开源链接:https://huggingface.co/BAAI/AquilaMed-RL http://open.flopsera.com/flopsera-open/details/AquilaMed_SFT http://open.flopsera.com/flopsera-open/details/AquilaMed_DPO 近年来…...
快速排序总结
标准模版 交换法 单函数法 public static void quickSort(int[] arr, int start, int end) {if (start > end) {return;}int idx start;int pivot arr[idx];int left start, right end;while (left < right) {while (left < right && arr[right] > …...
探索Linux的奇妙世界:第二关---Linux的基本指令1
1. xshell与服务器的连接 想必大家在看过上一期视频时已经搭建好了Linux的环境了并且已经下好了终端---xshell了吧?让我来带大家看一看下好了是什么样子的: 第一次登陆会让你连接你的服务器,就是我们买的云服务器,买完之后需要把公网地址ip复制过来进行链接,需要用户名和密码连…...
荒野大镖客2启动找不到emp.dll的7个修复方法,轻松解决dll丢失的办法
一、emp.dll文件丢失的常见原因 安装或更新问题:在软件或游戏的安装过程中,可能由于安装程序未能正确复制文件到目标目录,或在更新过程中文件被意外覆盖或删除,导致emp.dll文件丢失。 安全软件误删:某些安全软件可能…...
数据库精选题(三)(SQL语言精选题)(按语句类型分类)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀数据库 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 前言 创建语句 创建表 创建视图 创建索引…...
Spring Boot + Apache Tika 实现文档内容解析
文章目录 1. 环境准备2. 创建 Spring Boot 项目2.1 初始化项目2.2 添加 Apache Tika 依赖 3. 创建文档解析服务3.1 创建服务类3.2 创建控制器类 4. 配置和运行4.1 配置 Apache Tika 数据文件4.2 运行应用程序 5. 测试和验证5.1 使用 Postman 或 cURL 进行测试 6. 注意事项和优化…...
AcWing 255. 第K小数
自己想出来的,感觉要容易想到,使用可持久化线段树,时间上要比y的慢一倍。大体思想就是,我们从小到大依次加入一个数,每加入一个就记录一个版本,线段树里记录区间里数的数量,在查询时,…...
Nginx - 反向代理、负载均衡、动静分离、底层原理(案例实战分析)
目录 Nginx 开始 概述 安装(非 Docker) 配置环境变量 常用命令 配置文件概述 location 路径匹配方式 配置反向代理 实现效果 准备工作 具体配置 效果演示 配置负载均衡 实现效果 准备工作 具体配置 实现效果 其他负载均衡策略 配置动…...
从零开始精通Onvif之用户管理
💡 如果想阅读最新的文章,或者有技术问题需要交流和沟通,可搜索并关注微信公众号“希望睿智”。 概述 用户管理是Onvif协议的重要组成部分,它允许系统管理员通过网络接口创建、删除、修改用户账户,并分配不同的权限&am…...
设计模式——设计模式原则
设计模式 设计模式示例代码库地址: https://gitee.com/Jasonpupil/designPatterns 设计模式原则 单一职责原则(SPS): 又称单一功能原则,面向对象五个基本原则(SOLID)之一 原则定义…...
链表中环的入口节点
链表中环的入口节点 描述 链表中环的入口节点 给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。 数据范围: n≤10000, 1<结点值<10000 要求:空间复杂度 O(1)…...
STL——函数对象,谓词
一、函数对象 1.函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象。 函数对象使用重载的()时,行为类似函数调用,也叫仿函数。 本质: 函数对象(仿函数)是一个类,不是一个函数。 2.函数对象…...
【区分vue2和vue3下的element UI Descriptions 描述列表组件,分别详细介绍属性,事件,方法如何使用,并举例】
在 Element UI(为 Vue 2 设计)和 Element Plus(为 Vue 3 设计)中,Descriptions(描述列表)组件通常用于展示一系列的结构化信息。然而,需要明确的是,Element UI 官方库中并…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
python爬虫——气象数据爬取
一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
