聊聊Scrum三大角色的质量意识和文化建设

news2025/2/9 10:54:58

这是鼎叔的第六十三篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。

欢迎关注本专栏和微信公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。

参考前文:聊聊Scrum价值观与测试启发

本篇从Scrum的主要角色视角,来看怎么支持好质量内建活动,以及理解Scrum真正的价值,建立相应的团队文化。

Scrum三大角色应关注的测试活动

从Scrum的三个主要角色,也称三驾马车,即PO(Product Owner,产品负责人),SM(Scrum Master,教练),TL(技术leader。也有书上把这个角色称为team,自组织团队)。

从他们的职责出发,思考:哪些活动能有效帮助团队提高产品交付质量和全员质量意识。

PO应关注的测试活动

一、确认产品需求优先级的背后“故事”,是否同步给测试人员。

需求优先级由PO最终拍板,那PO实际上掌握了众多确定优先级的信息,以及决策的思考逻辑,这些信息如果能清晰的传递给测试人员,那么对于测试分析和制定策略也会非常有帮助。

二、确保业务产品信息对技术团队能及时更新,合理归档。

尽可能减少由于产品信息没有对齐,带来的无效开发和无效测试。有一部分产品反馈信息(包括埋点行为数据)是上市后才能获得,有一部分信息是客户单独传递的,它们对于测试人员优化测试覆盖策略可能非常有帮助,PO应该保障好这些数据的内部共享。

同时针对测试人员的质量反馈,PO应判断是否体现了产品设计的不合理,是否有必要作为品质改进需求加入产品代办列表。

三、传递产品愿景和关键词。

虽然愿景对于工程师个体而言很虚,但是如果团队对产品未来充满信心,对于产品的独特价值主张有共识,那测试能够从关键词中聚焦质量提升方向,提炼高优先级的确认标准。

SM应关注的测试活动

一、是否有意识的组织质量内建活动,将其固化为好的团队习惯。

如果SM对于质量内建活动不够关注,测试角色可以多加提醒。这些活动包括但不限于:DoR(需求准备好进入开发的标准)和DoD(需求完成开发的标准)中的质量达成纪律、Deskcheck桌面评审活动、代码质量评审和用例评审、确认验收测试,发布前的集体缺陷大扫除等。

二、是否能识别测试角色遇到的阻塞、打扰和依赖,并尽快协助处理。

帮忙各个角色(包括测试)搞定上述困难是SM的最核心职责,针对测试角色的干扰有:来自领导的与迭代无关的需求、非本项目的任务、测试环境和工具的阻塞、阻塞级缺陷(导致其他测试内容无法执行)。SM一旦判断阻塞了工作开展,当天就应商讨对策。

三、是否维护了尊重测试结论,鼓励测试新技术实践的研发氛围。

SM的重要义务是让团队处于互信和尊重的氛围,充满自管理的激情。警惕迫于发布的压力,逼迫测试人员修改测试结论和掩盖风险的现象。如果能够把启发创新的方法引入到团队的测试活动中,那就能激发更长久的价值。

团队的知识归档和刷新也是SM的关注重点,其中质量知识和测试技能也占有一席之地。

四、是否在迭代结束后,度量过程质量数据,选择最重要的短板进行持续改进。

有始有终,迭代完成的回顾会议,SM需要让大家对过程质量数据和发布质量进行分析,给出的改进措施一定要以预防为优先,明确下个迭代的改进动作是什么。

TL应关注的测试活动

一、关注测试技术债的偿还。

TL作为技术领导者,参与了产品规划会后,一定要尽早识别包括测试效能在内的技术债(可以通过缺陷趋势、代码评审报告、静态扫描结果、架构性问题等数据来判断),制定偿还技术债的方案,鼓励开发人员同测试一起共建高效的自动化测试工具链,并对工具链选型做决策。

消除测试技术债的成果可能是一个工具,如果开发人员也是该工具用户,可以邀请开发做验收测试。

TL需和PO达成共识,在迭代排期中充分考虑预留测试技术债的偿还时间,持续偿还,而不是发现问题严重的时候才仓促做一波。

二、在技术层面把控好质量内建。

质量内建如此重要,需要SM和TL一同承担,SM负责组织和氛围建设,TL负责技术上的把关,包括:

  • 组织团队解决疑难问题,完成根因分析,主导修复架构设计上的隐患。

  • 评审测试策略,督促持续集成的卡点纪律,组织代码审查和落实代码规范,帮助开发养成良好的编码习惯,出现流水线构建问题能确保有人第一时间响应。

三、明确质量保障的投入重心。

TL应该帮助测试人员改进测试方法,参与测试策略和自动化测试方案的评审,根据迭代过程的回顾,优化当前的测试资源投入。

三架马车对于团队的担当-树立Scrum文化,避免浪费

传统项目管理团队中,甘特图文化盛行,它体现了瀑布型研发团队的“命令与控制”文化,事实上,甘特图并不能阻止项目的延期。Scrum团队只有看到了团队的速度大小,才能判断准确的完工时间,用“检查和调整”消除障碍和浪费,这一点和HR宣传的PDCA模型是高度一致的。Scrum团队使用“冲刺”来定期展示成果和收集反馈,这种方式体现了戏剧化的效果。

把生命浪费在没有意义的工作上无异于犯罪。据统计,我们研发出的产品,有80%的价值来自于20%的功能,有85%的工作花费都被浪费掉了。日本人创造“Scrum”概念时,把它和避免“无理,无稳,无驮”联系在一起,无理即“超载”,无稳即“失去平衡”,无驮即“无价值”。

在一线团队,严重浪费导致的几种表现有:设定荒谬的目标,期待某个英雄出现拯救大家,负担大而无实际价值,员工充满负面情绪。

那如何让员工减少浪费呢?精益理论告诉我们,那就是一次只做一件事情,效率最高,并且一次性把它做好,交付的东西如果客户不能使用,就不能算“完成事项”。每一个员工都有权力在流水线出错后,马上按下暂停键,纠正它。每一次Scrum站会,SM都是让大家抛出阻塞问题,并在展会后立即解决问题。

在团队中移除隔板,让大家能互相看见对方。信息表格公开,透明化,让大家都能看到,哪些事做对了,哪些事做错了,能畅所欲言。

为什么米格战机性能更发达,但是总被美军战机击落?就是因为飞行员在座舱的视野很小,导致在采取行动前反应慢。

部门利益和管理者的私心,也有可能阻碍团队信息透明,尤其涉及资料在不同团队的移交,可能发生效率灾难。而头衔越多,越降低沟通饱和度,这就是有的大企业会用简单英文名取代头衔称呼的原因。

团队工作的流畅性源于纪律性,大家扪心自问,难道我们真的一直选择维持糟糕的现状么?

对于Scrum的更多理解

部分观点来自Jeff Sutherland,他是Scrum的创立人之一。

Scrum可以应用在任何领域

Scrum实践不止给技术团队带来效率的最大化,也适用于其他领域的项目:政府工程,环境保护,教育,扶贫,打击犯罪。

以建筑行业的著名成果-大教堂为例,动辄修了一百多年,如果当时采取Scrum的团队合作机制,是否会大幅提升修建速度呢?我想是的。我们可以让参与建筑的工作每天开Scrum立会,避免各工种的彼此等待依赖,而这是大多数时间被浪费掉的原因。

Scrum也可以用于孩子的学习教育,可以针对学习目标进行迭代计划,估算任务耗时,定时复盘,提炼教训,明确下一迭代的学习目标,等等。

火腿和鸡蛋的故事

这是Scrum培训最常出现的梗。母鸡找猪成立联合公司,卖火腿炒蛋这道炒菜。这个合作是难以持续的,因为双方对于火腿炒蛋这个菜,付出完全不对等。母鸡付出的是鸡蛋,相当于Scrum中了解项目进程的利益相关方,而猪是付出的生命,相当于全身心投入Scrum项目的负责人。要让Scrum团队保持旺盛的精力和长时间的合作,针对全职投入度进行高激励是很有必要的。

评估迭代的开发速率为什么不准?

提前做规划对于很多人而言太有诱惑了,传统研发团队花了大量精力做规划,甚至把实际情况和行动方案抛到了脑后。即使是Scrum的迭代短周期的规划估算,都存在不准确的老大难问题,未来也会有专门文章探讨这一点。

下面是一个不确定性圆锥,实际工作量既可能是之前评估的4倍,也可能是1/4,即,最初评估的最大工作量和最小工作量会呈现出16倍的差异。但随着项目的推进和完成的工作越来越多,评估的工作量会越来越接近于实际所需的工作量。

在评估会议上,其实每个人都有保留意见,只是不一定会表达出来。建议主持者利用匿名方法搜集各位的意见,避免从众效应和光环效应。注意:让真正做事的人去评估工作量,而不是专家。

PO和SM的职责差异

很多成员认为,PO和SM的职责边界并不是那么清晰,有一定的模糊交集。

我的观点是:PO决定“做什么”,SM主导“怎么做”的方式。PO需要更多产品业务的专业知识,拥有产品的自主决策权,通过和团队充分接触,对最终价值负责。

Scrum项目的合同变更

基于Scrum的敏捷研发,我们对合同中的需求变更是持乐观态度的,这和传统研发痛恨变更的态度完全不同。我们甚至希望合同中的需求变更能给甲方和乙方带来双赢。比如,客户希望在期望时间内增加新的需求,我们就有权根据其需求的点数,扣除原计划要交付的同等大小功能即可。

客户在任何时候都可以终止合同,除了已交付需求的费用,只需要再支付剩余合同需求价值点的一定比例,如20%。

优秀Scrum团队的样子

Scrum团队人数,8人以下最佳(开发者),超过8人的沟通效率会下降,沟通复杂度是N*(N-1)。

Scrum主管是“仆人”式主管,经常询问大家:我们如何才能做得更好。他让团队避免互相指责,以免把简单的纰漏搞成“归因错误”。他通过改良制度,奖励积极行为。

卓越Scrum团队体现出超越寻常的特质,自主性(如同突发新闻现场的记者),多功能性(每人都有多样化能力,就像特种部队)!

卓越团队能把快乐转化为绩效,善于“量化”快乐,比如在冲刺结束后把感受统计为“快乐指标”,它和未来的效能是正相关关系。

而人与人的联系越密切,快乐程度越高。因此,有的公司大楼只有一个出入口,厕所也集中在一起,这样就增加了员工交流交谈的频率。

当然,最大的快乐源自完成重要工作的成就感,而不是工作轻松。

Scrum的SM是一个“聪明的傻瓜”,他知道如何戳破团队自满的“快乐泡沫”,让团队直面不愿看到的现实。

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

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

相关文章

开关电源精确到每个元件-分解电源电路

本次讲解电源以一个13.2W电源为例 输入:AC90~264V 输出:3.3V/4A 原理图: 变压器是整个电源供应器的重要核心,所以变压器的计算及验证是很重要的。 1.决定变压器的材质及尺寸: 依据变压器计算公式 2.决定一次侧滤波电容&#…

第五章JMM内存模型

文章目录 计算机硬件存储体系为什么要弄一个 CPU 高速缓存呢?为什么缓存能提高速度呢?缓存带来的问题 Java之JMM模型JMM 是如何抽象线程和主内存之间的关系线程之间如何通信Java 内存区域和 JMM 有何区别 JMM规范下,三大特性原子性可见性有序…

000mysql常用资源推荐

官网 MySQL :: MySQL 8.0 Reference Manualhttps://dev.mysql.com/doc/refman/8.0/en/ 博客 一树一溪 侧重原理https://mp.weixin.qq.com/mp/homepage?__bizMzg3NTc3NjM4Nw&hid2&snb5d65ce17893a722b6748b471412eab0&scene1&devicetypeandroid-33&ver…

Spring-Boot的创建与配置文件

文章目录 前言Spring与SpringBoot的区别SpringBoot的创建与使用 更改国内源配置SpringBoot目录介绍SpringBoot配置文件配置⽂件的格式properties 基本语法yml的基本语法yml的注意事项 properties VS yml 好坏 前言 前面讲述了 ,Spring的概念与使用方法 , 接下来要介绍的是 Spr…

华为OD机试真题 JavaScript 实现【服务中心选址】【2023Q1 100分 】

一、题目描述 一个快递公司希望在一条街道建立新的服务中心。公司统计了该街道中所有区域在地图上的位置,并希望能够以此为依据为新的服务中心选址,使服务中心到所有区域的距离的总和最小。 给你一个数组 positions,其中 positions[i] [le…

B+树:高效存储与索引的完美结合

目录 引言:一、定义:二、B树和B树三、特点:四、应用场景:总结: 引言: 在计算机科学领域中,数据结构的选择对于高效存储和索引数据至关重要。B树(B tree)作为一种自平衡的…

chatgpt赋能python:Python怎么并排输出

Python怎么并排输出 Python是一种高级编程语言,它受到了全球程序员的欢迎。在Python编程中,经常需要将多个变量或数据一起输出。 本文将介绍Python如何并排输出,使输出内容更加整齐美观,提高代码可读性和可维护性。 使用print(…

Chrome浏览器进程:了解多进程架构优劣的探索

文章目录 I. 介绍简述Chrome浏览器的进程模型和重要性 II. 多进程架构的优劣详述Chrome浏览器的多进程架构分析多进程架构对性能、安全性和稳定性的影响对比单进程架构的优缺点和Chrome浏览器多进程架构的差异 III. Chrome浏览器进程类型和作用解释Chrome浏览器中常见的进程类型…

OpenMMLab-AI实战营第二期——5-1.语义分割与MMSegmentation

文章目录 1. 基本概念1.1 案例演示1.2 应用1.3 语义分割概念 2. 语义分割算法2.1 语义分割基本思路2.1.1 按颜色2.1.2 逐像素分类 2.2 深度学习下的语义分割模型2.2.1 全卷积网络2.2.2 Unet2.2.3 上下文信息与PSPNet模型2.2.4 空洞卷积与DeepLab算法2.2.5 总结2.2.6 前言语义分…

我们该如何应对工作失误(How to Handle Failure at Work)

花时间反思 组织架构心理学家、Audrey Page & Associates执行服务总监,Penelope Faure博士表示:“人们在犯错后情绪往往会十分激动。”不论是因为老板在电子邮件中流露出对你的指责,还是因为你明显的疏忽导致客户利益受损,又…

Android 13(T) Media框架 - 智能指针

Android有一套自己的智能指针管理办法,并且将其运用在源码的各个角落,所以学习Media框架之前,我们有必要先了解下Android智能指针。 本节代码源自于Android 13(T),参考 (aospxref.com) 1 概述 与智能指针相关的总共有5个类&#…

前端加载超大图片(100M以上)实现秒开解决方案

前端加载超大图片(100M以上)实现秒开解决方案 前言 前端加载超大图片时,一般可以采取以下措施实现加速: 图片压缩:将图片进行压缩可以大幅减小图片的大小,从而缩短加载时间。压缩图片时需要注意保持图片质量,以免影响…

CSS基础学习--9 边框(Border)

一、CSS 边框属性 CSS边框属性允许你指定一个元素边框的样式和颜色。 二、边框的样式 边框样式属性指定要显示什么样的边界。 border-style属性用来定义边框的样式 border-style 值: <!DOCTYPE html> <html> <head> <meta charset"utf-8">…

【爬虫】4.5 实践项目——爬取当当网站图书数据

目录 1. 网站图书数据分析 2. 网站图书数据提取 3. 网站图书数据爬取 &#xff08;1&#xff09;创建 MySQL 数据库 &#xff08;2&#xff09;创建 scrapy 项目 &#xff08;3&#xff09;编写 items.py 中的数据项目类 &#xff08;4&#xff09;编写 pipelines_1.py …

一文走进 SQL 编译-语义解析

一、概述 SQL 引擎主要由三大部分构成&#xff1a;解析器、优化器和执行器。解析器的主要作用是将客户端传来的命令解析编译成数据库能识别运行的命令&#xff0c;其主要由词法解析、语法解析和语义解析三部分构成&#xff0c;如下图所示。 本文将重点介绍 KaiwuDB 语义解析部…

机器学习-11 BP神经网络

BP神经网络 神经网络介绍前馈神经网络BP神经网络BP神经网络的核心思想误差反向传播算法BP网络结构 反馈神经网络自组织神经网络 神经网络相关概念激活函数Sigmoid函数tanh双曲正切函数ReLU函数Leaky RuLU函数Maxout函数激活函数的选择 损失函数Softmax交叉熵均方差损失函数自定…

chatgpt赋能python:Python文件处理入门指南-如何将Python程序转化为文件

Python文件处理入门指南 - 如何将Python程序转化为文件 Python是一门广泛应用于机器学习、数据分析、网络编程等领域的高级编程语言。Python代码简洁易懂&#xff0c;具有良好的可移植性和跨平台性&#xff0c;因此备受程序员们的喜欢。然而&#xff0c;要想让代码得到更广泛的…

kotlin协程flow retry功能函数返回失败后重试(4)

kotlin协程flow retry功能函数返回失败后重试&#xff08;4&#xff09; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlockingfun main(args: Array<String>) {var count 0 //重试计数runBlocking {load().onEach…

chatgpt赋能python:Python怎么往表格里写数据

Python怎么往表格里写数据 在Python中&#xff0c;我们经常需要往表格里写入数据。表格是一种最基本的数据储存结构&#xff0c;而Python在处理表格数据方面非常出色。在这篇文章中&#xff0c;我们将介绍Python中常用的几种写入表格的方法。 方法一&#xff1a;使用CSV模块 …

MySQL-索引详解(二)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️树高千尺&#xff0c;落叶归根人生不易&…