你处理过无数 Bug ,却不见得明白正确处理 Bug 的真正铁则。本文仅介绍作者一家之言,欢迎讨论。今日书单彩蛋:《数据科学家修炼之道》。 你处理了多少 Bug ?100个?200个?还是2000个? 可能你自己也不能说出准确的数字到底是多少,因为它始终在变化。 但我知道我们究竟有多少 Bug :0个。 你究竟参加过多少次 Bug 分拣会议?你在 Bug 管理上用了多少时间(还是仅仅将缺陷从这个版本带到下个版本)? 作为团队经理,我每月会花费半小时在 Bug 管理上。并且,同一个 Bug 从未在我眼中出现过第二次。 答案是使用0 Bug 规则。 这是基于我在过去的5年中,在不同scrum团队中实现不同产品的经验所得。 我们也尝试过其他的办法,但全部都失败了:例如说,我们曾尝试过提升 Bug 管理在产品待办事项中的优先级,但是这完全没有用。 客户总希望多开发一些功能,而不是解决 Bug 。所以在这种情况下, Bug 管理就会被推迟到下一次迭代。 但使用0 Bug 规则的话, Bug 管理就可以有条不紊地进行。 0 Bug 规则非常先进,但是它是处理 Bug 的非常简单的过程。 它强调了一个你需要遵循的简单规则——每当你遇到一个新的 Bug ,你可以选择立刻去修复它,或者你选择不再修复它,然后也不再去想到它。就是这么简单。 Bug 可以分为2类: 所以,让我们从理论上来讨论一下如何处理第二类 Bug ——非sprint Bug : 1. 你可以选择立刻修复它(或者在下一个sprint修复,但不能再晚了) 2. 如果修复这个 Bug 的价值不大,你可以选择不再修复它 3. 你可以将 Bug 推迟到之后处理(几个月后,或是下一个版本中) 请你永远,永远,永远不要推迟 Bug 。请尽力避免。如果你现在不修复它,那你永远都不会再修复它。 那我们该怎么办?我认为你只需要立刻修复它,或选择永远不修复。这是我们在文章一开始就讨论过的简单规则。 立刻需要修复的 Bug 包括:“两名用户不能同时进入UI。” 如果修复它需要超过2天,你可以选择不修复的 Bug 包括:“当屏幕分辨率为768X1280的用户使用Safari时,登录页面的帮助文本是模糊的。对于其他的浏览器,或者其他的屏幕分辨率来说就没有这个问题。” 《皇帝的新衣》故事中的小男孩哭着对皇帝说:“可是他什么都没有穿!”。对于这个问题他将会问,“为什么?为什么这些 Bug 不能推迟?为什么我不能等到以后再修复它?” 如果以后修复,你会用更多时间,非常多,大概是好几万倍时间! 嘘!这是一个大秘密!如果你选择几周后修复(这里说的不是下次版本发布时):
事实就是,你在未来需要用更多时间修复的这个 Bug 只是一个小问题。 第二部分是你需要维护、分类和管理推迟的 Bug 。无论它们是在产品待办事项中(在一些 Bug 分拣系统),还是在主要功能清单中。 无论是哪种,你都要对它们进行优先级排序,这也需要时间。越久远的缺陷要用越长的时间,因为你不能像对待新的缺陷一样这么了解它们。 这还不是全部。同时,分拣错误很烦人。你曾经参加过 Bug 分拣会议吗?相信我,这个会得开好久。 照我的经验来说,如果你的团队有几个经理,几个开发者,几个产品拥有者和几个架构师,他们坐在“ Bug 的法庭”中,讨论如何处理 Bug ,这场谈话最终会变成没有赢家的战争:
然后这将继续下去…… 大家已经知道这个秘密了,你将永远不再修复这个 Bug ,它将永远在你的系统里。 Bug 的数量会越来越多,无论你将系统部署在哪里,这些 Bug 都会跟着你。 你一次一次的分拣它们,在每周报告中提到它们,在质量指标中计算它们。但是,在任何情况下,这些 Bug 都不会被修复。 还记得《皇帝的新衣》中的孩子吗,他哭着说:“这是为什么?为什么?为什么呢?”
当我们选择混合 Bug 和用户故事列表时会发生以下这些事情: 我们和团队协商完毕,他们承诺会完成前三个用户故事,也会尽可能修复 Bug 。 Bug 并未得到解决。 类似的sprint又发生了,更多的 Bug 在积压,而新功能却都得到了处理。 我们现在也同意,0Bug原则是唯一的解决方法。 红包系统由三部分组成:信息 我可以诚实地告诉大家,使用0 Bug 规则对项目不是可有可无的,它非常有效。对我来说最难的一部分就是告诉产品经理,这个方法是唯一有效的正确方法。 这需要产品经理稍微放掉一些手中的权利,这可能不是一件很容易的事情。最好的事情,就是让他们了解到使用这个规则并没有拖延进度,反而能事半功倍。 0 Bug 规则的另外一个副作用,由于文化影响,现在开发者都尽自己所能追求高质量,没有一个开发者希望自己的代码中有 Bug 。 对大多数(优秀的)开发者来说,如果决定不解决 Bug ,就感觉自己的作品不完美了。由于这个文化,开发者和产品都转而追求高质量标准。 Gal Zellermayer是一位“万事通”。在过去的5年中,Gal在VMware公司中管理不同的R&D团队,所以他对于产品研发周期有很多经验。 通过创新,通过建立产品待办事项列表,领导团队实现项目的同时保持产品高质量,将产品满意地交付给客户。但他最追求的是建立完美的软件团队,一个可以快速交付高质量产品的团队。 Gal热爱新技术,新产品,以及过程。但是最让他兴奋的是和他一起工作的人,能看到他所辅导过的人在事业上取得进步是最令他感到骄傲的事情。 |
|