写点什么

在 Agile/Scrum 项目中处理 Bug

  • 2009-07-23
  • 本文字数:1481 字

    阅读完需:约 5 分钟

Bugs人们常问这样一个问题:Scrum 建议一个团队如何处理 bug?Bug 是应当放在产品 backlog 中还是在一个单独的 bug 清单中?如果 bug 在产品 backlog 中,那么是由产品所 有者来确定 bug 优先级还是 bug 自动成为最重要的项目?是否应该有一个单独的 bug 修复 sprint?

Pascal Maugeri 的团队 ,即使在改善了对“完成”和正在做“正确的测试 / 单元测试”的定义之后 ,他们还是能发现从 sprint 中逃逸的 bug 。他问如何解决这个问题。

George Dinwiddie 敏捷教练, 建议团队在回顾时提出这个问题——他曾与只有微乎其微的bug 率的团队共事。 Mark Levison (本文记 者)建议: “我会问为什么没有在发现 bug 的 sprint 中修复它们?我的重点是减少发现(然后修正)问题所花费的 时间。毕竟,如果我们在一个 sprint 的故事中发现了一个 bug,那么产品负责人不应该同意该故事已经完成。此外, 早期发现 bug 将使人们更容易修复,因为开发团队的脑海中对相关代码依然有清晰的印象。

Jim Schiel Artisan 咨询 公司的认证 Scrum 训练师,认为只需把 bug 放在产品 backlog 中,由产品负责人确定优先级, “除非修复起来很简单,在这种情况下,你可以在 sprint 的规划会议中确定 解决方案并且在 sprint 中实施该方案。”

Bruce Kantelis 说,这一 切都与发展一种文化有关:“我们会把缺陷分类。让用户工作陷于停滞的 bug 会被设定为头等优先级,并且马上得 到注意,开发团队会中断当前工作来修复程序并打补丁。其他的缺陷都成为故事,放在下一个 sprint 的任务列表顶部 。随着时间的推移,团队认识到与质量相关的度量和行为真的会影响他们的日常工作,他们就会尽量减少缺陷及其 带来的干扰。”

Mike Cohn 提醒我们, 对于在 sprint 中发现的 bug,最好的处理方法是在整个团队房间里面大声喊出这个 bug。如果做不到这一点,可以用 一张卡片来描述该 bug 并添加到任务板上。然而对于在 sprint 中漏掉的 bug,他宁愿将它们添加到产品 backlog 中,由 产品负责人考虑它们的优先级。许多现有的团队仍然有 bug 数据库,他们还得继续使用该数据库。在这种情况下, 他建议保持一个独立的 bug backlog,产品负责人安排各个队列中任务的优先级:例如,头两个条目来自产品 backlog,接下来的条目是 bug,最终两个条目来自 backlog。

Kev lin Henney 不太认同这种做法,他认为这近乎等同于将 bug 看作会产生负面价值的特性:

如果缺陷被视为具有负面价值的特性,它们就会像特性一样 被管理。开发团队会把划分了优先级的 bug 存储起来,像对待用户故事一样对待 bug,把修复 bug 的工作外包,等等 做法都会冒出来。虽然这些做法对于处于过渡期或者危机的项目来说有些作用,但并不是一个应予以鼓励的长期观 点。毕竟,正如“敏捷软件开发宣言”所说: “可工作的软件是工作进展的首要度量方式。”一个功能特性中已经 存在已知的缺陷,还要把它看做是已完成和可工作的,这样的做法可有点不太诚实。——“是的,这个功能已经完 成了……但还有一些 bug。”

Ron Jeffries 认为:在功能特性开发结束后再修复其中的缺陷,这样做的代价总是比在刚发现的时候就去修复要昂贵。

所以,如果我们错误地编写软件然后修复它,客户会花费更多金钱:除了给付应有的,她还得为 bug 的修复 付出额外代价。 她真的应该责备我们。我愿意鼓励客户把所有的缺陷区分优先次序,这能让客户体验到团队不恰当的软件过 程所带来的痛苦。我确信客户会表达那种痛苦,从而使得团队明白把事情做好是更好的方式。

你总是避免 bug 么?将 bug 放在产品 backlog 中?你发现 Kevlin 指出的问题了么?

查看英文原文: Coping with Bugs on an Agile/Scrum Project

2009-07-23 08:062926
用户头像

发布了 47 篇内容, 共 11.4 次阅读, 收获喜欢 3 次。

关注

评论

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

伙伴大会报名截止倒计时3天!

明道云

时间紧资金少人才缺?8位产业专家带你破局AI智能化升级

百度大脑

人工智能

Hoo虎符研究院 | 币海寻珠——2021年区块链投融大事记

区块链前沿News

区块链 虎符 Hoo虎符 Hoo 虎符交易所

我们一起,盘点 2021 十大技术领域的全部精彩

InfoQ写作社区官方

大数据 云原生 编程语言 话题讨论 2021年度技术盘点与展望

性能基础之CPU、物理核、逻辑核概念与关系

zuozewei

Linux 性能测试 基础 签约计划第二季

即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.7web端一键部署

OpenIM

架构实战营第 4 期 -- 模块二作业

烈火干柴烛灭田边残月

架构实战营

JavaScript 中8 个最佳电子邮件库

devpoint

JavaScript nodejs 12月日更 email pop3

性能分析之构建 Linux 操作系统分析决策树

zuozewei

Linux 性能测试 性能分析 签约计划第二季

TypeScript 之模块

冴羽

JavaScript typescript 翻译 前端 web前端

记录-最骄傲的事(3)

将军-技术演讲力教练

当诗人遇到熟读2600亿中文参数的大模型

白洞计划

Android单页应用如何在Activity与Fragment中共享状态

Changing Lin

12月日更

下周上海见!超越商业,创业邦100未来独角兽峰会议程抢先看

创业邦

【Promise 源码学习】第十六篇 - 了解 co 库

Brave

源码 Promise 12月日更

睁眼、耸肩、觉醒:人形机器人的吊诡与最终幻想

脑极体

深度揭秘技术创新:全球首个知识增强千亿大模型是怎样炼成的?

百度大脑

人工智能

工业4.0时代:低代码的兴起,或将掀起制造业格局的变革

优秀

低代码 工业4.0

数据库大赛50强之「华东师范大学」:恰同学少年,代码激扬!

OceanBase 数据库

数据库 学习 开源 oceanbase

使用 Apache APISIX serverless 能力快速拦截 Apache Log4j2 的高危漏洞

API7.ai 技术团队

Serverless log4j APISIX

性能工具之Java分析工具BTrace入门

zuozewei

Java 性能测试 性能分析 签约计划第二季

性能分析之单条SQL查询案例分析(mysql)

zuozewei

MySQL 性能测试 性能分析 签约计划第二季

Volatile 原理(二)

悟空聊架构

volatile 28天写作 可见性 悟空聊架构 12月日更

记录docker,k8s,oneops,.netcore搭建个人博客过程

哔啵哔啵

.net Docker k8s .net core oneops

Linux之ls命令

入门小站

Linux

40 K8S之Calico网络插件

穿过生命散发芬芳

k8s 28天写作 12月日更

盘点2021:一年读完的50本书

石云升

书单 年终总结 28天写作 12月日更 盘点2021

性能工具之常见性能工具一览

zuozewei

工具 性能测试 签约计划第二季

iKuai与DNSPod合作,搞了一个大动作!

网络安全 DNS DNS劫持

什么是网络安全?网络安全威胁存在哪些?

喀拉峻

网络安全

Spring AOP(二) 修饰者模式和JDK Proxy

程序员历小冰

spring Java、 28天写作 spring aop 12月日更

在Agile/Scrum项目中处理Bug_研发效能_Mark Levison_InfoQ精选文章