写点什么

在 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:063116
用户头像

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

关注

评论

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

PingCAP 入选 CB Insights 中国「数据链路安全领航者」榜单,保障全球用户存储安全

PingCAP

华为硬件配置命令,建议收藏

Ethereal

网络工程师 网络技术 华为设备 厂商设备 运维技术

简述移动端IM开发的那些坑:架构设计、通信协议和客户端

BeeWorks

元气部落盲盒系统开发元气部落app开发

风行无疆

重磅|腾讯云开源业界首个 etcd 一站式治理平台 Kstone

腾源会

开源 cncf Kstone

资讯|WebRTC M95 更新

网易云信

WebRTC

超细!细说Zookeeper选举的一个案例(上)

恒生LIGHT云社区

golang zookeeper Go 语言

Java 集合框架面试问题集锦

编程江湖

面试题 JAVA开发 java编程

神器来袭,手把手教你使用 Milvus_cli

Zilliz

数据库 命令行

Nebula Graph 源码解读系列 | Vol.06 MATCH 中变长 Pattern 的实现

NebulaGraph

图数据库 知识图谱 分布式图数据库

开源投资回报率高达4倍!欧盟委员会全力推动开源软件发展

腾源会

开源

给弟弟的信第15封|情绪控制的重要性

大菠萝

28天写作

WAVE SUMMIT+2021深度学习开发者峰会举办,开源共建助力飞桨生态发展

科技热闻

中石化信息化数字化首席专家李剑峰:数字化转型中关键基础软件的国产化应用

OceanBase 数据库

开源 国产化 oceanbase 中石化

AI 收藏夹 Vol.004:虚拟爱豆出道!

Zilliz

人工智能 神经网络 AI

手写清除console的loader

编程江湖

前端开发

Linux 基金会发布 2021 年度报告,预测今年收入为 1.77 亿美元

腾源会

Linux 开源

联邦学习在光大科技的落地应用

博文视点Broadview

今夜无眠

Tiger

28天写作

“十四五”规划,开源重塑软件发展新生态,获国家重点扶持

腾源会

开源

跟着动画学Go数据结构之插入排序

宇宙之一粟

golang 数据结构 插入排序 12月日更

前端开发之Vue框架的优势

@零度

前端开发 Vue优势

东汉末年,他们把「服务雪崩」玩到了极致

悟空聊架构

熔断 28天写作 服务雪崩 悟空聊架构 12月日更

【漫画】数据云,真香在哪?

星环科技

大数据

从前端到全栈 -- 最全面向对象总结

程序员海军

Java 面向对象

万字教你如何用 Python 实现线性规划

华为云开发者联盟

Python 函数 线性规划 求解器 单纯形法

5G专网+区块链:构筑智慧政务“安全信任基石”

CECBC

未来企业如何应对人才之争

BeeWorks

一文讲述数仓组件SysCache

华为云开发者联盟

事务 存储 GaussDB(DWS) SysCache 缓存信息

Java Web开发之API Boy的进阶之路

@零度

Java web API boy

解决rabbitmq消息队列的顺序及重复消费问题

编程江湖

大数据

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