写点什么

移除“测试”任务栏,加快交付速度

2020 年 10 月 03 日

移除“测试”任务栏,加快交付速度

任务栏里的“测试中”一列通常会导致团队有更多在“进行中”的工作,而实际完成的工作会更少。移除这些列可以促进测试人员和开发人员之间的协作,并使团队能够更快地交付项目。


BBC iPlayer&Sounds 团队的首席测试员 Jit Gosai 在精益敏捷交流2020大会上谈到了团队如何通过取消任务栏里的“测试中”列来实现更快的交付。


通常,任务板里会有一个“测试中”列,表示测试人员正在完成的工作,另外一个“等待测试”列用来收集“已开发”的任务。Gosai 说,测试人员知道他们下一步需要做什么,开发人员可以在等待测试人员的同时进行其他工作,这样可以充分利用团队资源。


如果没有问题,任务就可以移到下一列,通常是“完成”或“等待发布”。但如果测试人员发现了问题或者需要获取更多的信息,会发生什么呢?这里有很多选择:是回到“开发中”列,推回到 backlog 中,还是创建一个“等待开发”列作为等待区域?Gosai 提到,这些选项中的任何一个都会给开发人员带来更多的工作量。


与此同时,测试人员要做什么?开始下一项任务,还是等待开发人员?Gosai 认为,无论团队做出何种选择,测试总是会成为团队完成任务的最大瓶颈,因为团队中的开发人员总是比测试人员多。


Gosai 说,在删除“测试中”这一列后,开发人员继续他们的开发工作,而测试人员则会进行测试,他们可以一起工作,直到产品发布。开发人员必须与测试人员协作,以便了解下一步需要做什么,并一起完成工作。


有了良好的过程改进实践,测试人员和开发人员可以更好地协作,降低风险。Gosai 总结说,在测试过程中发现的见解可以被加入到整个过程中,而不是通过 bug 报告塞给开发人员。


在 Jit Gosai 的演讲之后,InfoQ 采访了他。


InfoQ:在任务板上设置“测试中”列有什么问题?


Jit Gosai:“测试中”和“等待测试”列看起来很不错,但它们通常会导致更多的工作量和其他问题(更多细节,请参阅“测试中”列引发的问题)。

通常的应对办法是添加更多的测试人员(通常成本很高)或进行自动化测试(通常是端到端 UI 测试),这样会让开发人员养成坏习惯,比如编写更多的集成测试,而不是进行单元测试,因为他们认为测试已经成了别人的职责。而且这样会让测试变成开发生命周期的最后一环。你可以在我的文章“自动化UI测试的意外后果”中看到更多有关这些问题的信息。


InfoQ:我们怎样才能在保持测试质量的情况下移除测试列?


Gosai:移除测试列并不意味着测试不再重要或不再发生,它实际上是让团队专注于一个共同的目标,专注于完成工作,而不是制造更多的工作量。

更少的工作步骤意味着开发人员在工作中停留的时间更长。现在,这给了测试人员和开发人员一个机会,让他们开始了解其他人做了什么,以及还需要做哪些测试。


InfoQ:移除测试列如何让团队更快地交付?


Gosai:主要有两个方面。一方面,正在进行中的工作量减少了,这样就可以把更多的精力放在完成工作上。这自然会完成更多的工作,特别是如果由于缺陷或其他不可预见的情况而需要返工。另一方面,现在开发人员和测试人员正在一起工作,可以减少与代码变更相关的风险。

在这个阶段,协作内容就是分享信息,比如你对变更的了解程度以及在实施这些变更的过程中学到了什么。这使得个人能够在其他人的知识之上想出他们在单独工作时无法产生的新想法。现在是一个很好的机会,看看这些措施是否可以通过自动化或其他方式加入到开发流程中。这也是一个很好的时间点,看看任务是否真的返工了(例如,在现场环境中发现的问题),并从中总结经验教训,防止这个问题再次发生。

虽然这些改进带来的好处不会立即显现出来,但从长远来看,在交付项目方面可能会有相当大的影响,这将帮助团队在相同的时间框架内完成更多的工作,从而更快地交付。

在这些改进中有几个假设需要注意,其中两个最主要的假设是:开发人员和测试人员开始协作,以便了解对方已经做了/将要做什么,而不是变成一种隐晦的迷你开发/测试过程;另一个是有效的持续改进过程,从其他地方和在生产环境中出现的各种 bug 中学习总结。


InfoQ:我们如何利用任务板上可见的内容来改进测试?


Gosai:上述的协同工作对于团队来说是一件新鲜事,他们还没有形成持续改进的策略,所以可以通过一些技术来开始这个过程。如果测试确实成为团队发布项目的最大瓶颈,那么他们可以利用“测试中”列来发挥他们的优势。

测试人员不应该只是简单地从“测试”列中挑选任务,直到完成为止,他们应该与团队一起帮助他们理解如何进行测试、他们要测试什么以及在测试过程中发现的东西。如果任务不多,这样做可以帮助他们找到工作中的一些关键问题。例如,是否存在类似的故障原因,如可用性或可访问性问题,或某些硬件/软件问题总是导致错误发生?开发人员在做这些变更时需要注意些什么吗?这些问题可以被加入 backlog,然后团队开始处理这些任务,看看是否可以在开发生命周期的早期处理这些任务。

关注过程而不是人,可以更容易讨论测试人员在做什么、开发人员和测试人员如何在生命周期的早期减轻工作量,并逐渐形成持续改进策略。

在这个过程中,领导力是非常重要的。领导需要帮助测试人员意识到,他们不是团队的“问题”,而是解决方案,他们要让团队知道在测试时需要注意哪些风险。开发人员还需要通过指导沟通、形成同理心与其他规程紧密合作,他们的目的不是试图取代它们,而是一起努力改进过程。

团队领导的一个关键任务是创造一个心理安全的环境,让团队成员能够坦诚面对他们所面临的问题,甚至分享他们还没有完全形成的想法和解决方案,而不会感到尴尬,也不会害怕被认为自己不够强大。有持续改进的任务 backlog 固然很好,但如果人们不愿意在一起协作,只会得到平庸的结果。这意味着他们永远得不到应有的关注,创新的种子也会被扼杀在摇篮之中。你可能在团队中听到过这样的话:“我们之前已经尝试过了”或者“这永远不会成功,因为……”。


原文链接


Deliver Faster by Killing the Test Column


2020 年 10 月 03 日 10:001648

评论

发布
暂无评论
发现更多内容

c语言函数指针之回调函数

C语言与CPP编程

C语言 回调函数 函数 函数指针

在Rust里面嵌入python代码

lipi

Python rust

缓冲区溢出

C语言与CPP编程

c++ C语言 缓冲区 堆栈溢出

Elasticsearch初步认识

枫林

Java elasticsearch ES

实时数仓在滴滴的实践和落地

滴滴技术

大数据 滴滴技术 数据通道服务

自定义线程池来实现文档转码

架构师修行之路

架构师训练营0期 第十二周作业

WW

闲聊胡扯

C语言与CPP编程

随笔杂谈

滴滴数据仓库指标体系建设实践

滴滴技术

大数据 数据仓库 滴滴技术

物联网的银河,华为的桨,少年的歌

脑极体

数据分析之伯克森谬误:颜值和性格真成反比吗

KAMI

人生 数据分析 数据

C语言与C++常见面试题

C语言与CPP编程

c++ 面试题 C语言

1.Flink检查点算法-15

小知识点

scala 大数据 flink

我们一起学程序-五子棋

叫练

Java 多线程 游戏 websocket

AtmoicXXX与AtmoicXXXArray源码分析

Darren

源码 内存布局 CAS java 并发 AtmoicXXX

Docker -快速安装Elasticsearch

枫林

滴滴数据通道服务演进之路

滴滴技术

大数据 滴滴技术 数据服务通道

滴滴Ceph分布式存储系统优化之锁优化

滴滴技术

云计算 分布式存储 Ceph 滴滴技术

出自字节技术专家之手的SpringBoot全栈开发实战,真香

周老师

Java 编程 程序员 架构 面试

指针变量的传值和传址

C语言与CPP编程

c++ 指针 C语言

Docker 安装和简单使用

枫林

Docker

滴滴七层接入平台实践和探索

滴滴技术

运维 滴滴技术 微服务治理 七层接入

Redis做消息队列全攻略

架构师修行之路

redis MQ 消息队列

【Spring注解驱动开发】AOP核心类源码解析,这是最全的一篇了!!

冰河

spring aop ioc

浮点数比较的精度问题

C语言与CPP编程

c c++

你真的了解 Base64 吗

hepingfly

Java base64 编码

腾讯大牛半年心血高级编程PDF,帮你轻松构建企业级Web应用

周老师

Java 编程 程序员 架构 面试

Zeppelin SDK :Flink 平台建设的基石

Apache Flink

flink

【高并发】要想学好并发编程,关键是要理解这三个核心问题

冰河

写作 多线程 高并发 同步 分工

C/C++函数指针与指针函数

C语言与CPP编程

c++ C语言 函数指针

滴滴云平台事业群——就是稳!

滴滴技术

招聘 滴滴技术 滴滴云平台事业群分享月

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

移除“测试”任务栏,加快交付速度-InfoQ